2010-07-15 176 views

回答

4

在登录时,将找到的User对象放在会话中。

String username = request.getParameter("username"); 
String password = request.getParameter("password"); 
User user = userDAO.find(username, password); 
if (user != null) { 
    request.getSession().setAttribute("user", user); 
    response.sendRedirect("secured/userpage"); 
} else { 
    request.setAttribute("error", "Unknown username/password combo, please try again"); 
    request.getRequestDispatcher("/WEB-INF/login.jsp").forward(request, response); 
} 

然后实现一个Filter其中只检查在会话中登录的用户的存在。

if (((HttpServletRequest) request).getSession().getAttribute("user") != null) { 
    chain.doFilter(request, response); // Logged in, so just continue. 
} else { 
    response.sendRedirect("login"); // Not logged in, redirect to login page. 
} 

地图这个过滤器上的/secured/*(或别的任何你想要的)的URL模式,并把喜欢的用户信息页面的安全网页在同一文件夹。

要注销用户,只需执行session.removeAttribute("user")或更为彻底的session.invalidate()