package net.slipp.user.web;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import net.slipp.user.PasswordMismatchException;
import net.slipp.user.User;
import net.slipp.user.UserNotFoundException;
@WebServlet("/users/login")
public class LoginServlet extends HttpServlet {
public static final String SESSION_USER_ID = "userId";
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String userId = request.getParameter("userId");
String password = request.getParameter("password");
try {
User.login(userId, password);
HttpSession session = request.getSession();
session.setAttribute(SESSION_USER_ID, userId);
response.sendRedirect("/");
} catch (UserNotFoundException e) {
forwardJSP(request, response, "존재하지 않는 사용자 입니다. 다시 로그인하세요.");
} catch (PasswordMismatchException e) {
forwardJSP(request, response, "비밀번호가 틀립니다. 다시 로그인하세요.");
}
}
private void forwardJSP(HttpServletRequest request,
HttpServletResponse response, String errorMessage) throws ServletException, IOException {
request.setAttribute("errorMessage", errorMessage);
RequestDispatcher rd = request.getRequestDispatcher("/login.jsp");
rd.forward(request, response);
}
}