2010-07-15 178 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()