我正在開發一個需要用戶登錄和註銷的Java應用程序。我想從回去阻止用戶:註銷 防止用戶在登錄後返回登錄表單並退出後返回會話頁面?
我已經看了看StackOverflow的一些問題,分別回答了這些問題後,登錄
- 登錄頁面,我不知道是否爲他們兩個實現單獨的過濾器?
此外,我應該使用會話檢查還是非會話頁面緩存或兩者?
有人可以提供這個問題的代碼樣本?
謝謝
我正在開發一個需要用戶登錄和註銷的Java應用程序。我想從回去阻止用戶:註銷 防止用戶在登錄後返回登錄表單並退出後返回會話頁面?
我已經看了看StackOverflow的一些問題,分別回答了這些問題後,登錄
此外,我應該使用會話檢查還是非會話頁面緩存或兩者?
有人可以提供這個問題的代碼樣本?
謝謝
重定向後的技術可以防止在瀏覽器中回去。 請記住,只有客戶端瀏覽器的視覺效果,而不是一個安全功能,以避免用戶回到受保護的頁面!
我終於用這個代碼,似乎運作良好。
public class SessionFilter implements Filter {
/**
* Default constructor.
*/
public SessionFilter() {
}
/**
* @see Filter#destroy()
*/
public void destroy() {
}
/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest hRequest = (HttpServletRequest) request;
HttpServletResponse hResponse = (HttpServletResponse) response;
HttpSession session = hRequest.getSession(false); // returns existing or
// null
if (session == null || session.getAttribute("user_email") == null) {
hResponse.sendRedirect(hRequest.getContextPath() + "/login.jsp");
// return;
} else {
hResponse.setHeader("Cache-Control",
"no-cache, no-store, must-revalidate"); // HTTP 1.1.
hResponse.setHeader("Pragma", "no-cache"); // HTTP 1.0.
hResponse.setDateHeader("Expires", 0);
chain.doFilter(request, response);
}
}
/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
}
}
_I不知道是否執行不同的過濾器對他們倆的或不?_ **首先實現,看看,如果你面對任何問題張貼。** – Rembo