2
我有登錄後顯示的用戶信息頁面。如何阻止用戶直接訪問用戶信息頁面?我如何通過會話來實現?JSP拒絕未登錄用戶直接訪問URL
我有登錄後顯示的用戶信息頁面。如何阻止用戶直接訪問用戶信息頁面?我如何通過會話來實現?JSP拒絕未登錄用戶直接訪問URL
在登錄時,將找到的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()
。