我正在使用過濾器檢查用戶是否登錄,然後不緩存上一頁。造成這種情況的代碼是什麼樣子,如何避免按鈕或鏈接點擊頁面過期。當我爲表單上的任何按鈕單擊或鏈接返回null時頁面過期
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)
throws IOException, ServletException {
....
if (isRegisteredUser.equalsIgnoreCase(("1"))) {
sessionID = UUID.randomUUID().toString();
session.setMaxInactiveInterval(1800);
Cookie userCookie = new Cookie("userCookie", "loginUser");
userCookie.setPath("/");
httpServletResponse.addCookie(userCookie);
Cookie sessionCookie = new Cookie("WITSessionCookie", sessionID);
sessionCookie.setMaxAge(60*30);
sessionCookie.setPath("/");
httpServletResponse.addCookie(sessionCookie);
if (!httpServletRequest.getRequestURI().startsWith(httpServletRequest.getContextPath() + ResourceHandler.RESOURCE_IDENTIFIER)) { // Skip JSF resources (CSS/JS/Images/etc)
httpServletResponse.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
httpServletResponse.setHeader("Pragma", "no-cache"); // HTTP 1.0.
httpServletResponse.setDateHeader("Expires", 0); // Proxies.
}
filterChain.doFilter(httpServletRequest, httpServletResponse);
}
...
} //end of doFilter()
但問題是,如果對任何按鈕或鏈接任何網頁的用戶點擊,我的那個動作返回null,然後我點擊瀏覽器的後退按鈕,然後將其說頁面過期。 我該如何預防?這很好,該頁面沒有緩存,但爲什麼當我點擊任何按鈕或任何鏈接並返回null時,它會到期我的頁面?
感謝
您的會話和cookie處理方式很奇怪。你似乎很想念一些基本概念。 – BalusC 2012-04-19 12:00:08
... :)你是什麼意思的基本概念?你能告訴我關於這些基本概念嗎?你是對的。其實我只是從章節中讀到它。但那是針對servlet和JSP的。現在我正在使用JSF。顯然會話跟蹤是一樣的,但是我缺乏概念.. – Basit 2012-04-19 12:52:19