会话跟踪案例-用户登录-Cookie

会话跟踪案例-用户登录-Cookie

// LoginServlet.java
@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet {
    private UserService service = new UserService();
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 1. 获取用户名和密码
        String username = request.getParameter("username");
        String password = request.getParameter("password");

        // 2. 调用service查询
        User user = service.login(username, password);

        // 3. 判断
        if (user != null){
            // 登录成功,跳转到查询所有的BrandServlet

            // 将登录成功后的user对象,存储到session
            HttpSession session = request.getSession();
            session.setAttribute("user", user);

            String contextPath = request.getContextPath();  // 动态获取虚拟目录 /brand-demo
            response.sendRedirect(contextPath + "/selectAllServlet");
        } else {
            // 登录失败

            // 存储错误信息到request
            request.setAttribute("login_msg", "用户名或密码错误");

            // 跳转到login.jsp
            // 在request域中存储的数据只能用getRequestDispatcher
            // 为什么不用session,因为不需要每次请求都显示该信息
            request.getRequestDispatcher("/login.jsp").forward(request, response);

        }
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}