2010-12-15 114 views
0

我在登錄頁面上設置和獲取會話屬性,當我註銷頁面並按下後退按鈕時,它會再次返回主頁面。JSP中的會話問題

這裏是我的代碼,

::::::::::::::::::::::::::**sessionaction.jsp**:::::::::::::::::::::::::::::::::::::: 

<%@page import="java.util.*" %> 
<% 
    String str = request.getParameter("UserName"); 
    session.setAttribute("sessUserName", request.getParameter("Password")); 
%> 

<% 
    if (session.getAttribute("sessUserName").equals("")) 
    { 
     response.sendRedirect("login.jsp"); 
%> 

<% 
    } 
else 
    { 
     response.sendRedirect("home.jsp"); 
    } 
%> 


::::::::::::::::::::::::::**logout.jsp**:::::::::::::::::::::::::::::::::::::: 
<%@page import="java.util.*" %> 

<% 
//session.invalidate(); 
session.removeAttribute("sessUserName"); 
%> 

You have logged out. Please 
<a href="login.jsp"><b>Login</b></a> 

請指引我。

回答

2

嘗試:

if (session.getAttribute("sessUserName") == null) 
2

設置緩存頭

response.setHeader("Cache-Control","private, no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); 

而且

如果緩存控制所需的meta標籤

+0

@thanks Asaph。需要習慣使用snippets – 2010-12-15 06:03:24

1

根本原因,我認爲,是已經建議由用戶sje397(接受他的回答),我只是在這裏闡述。原因是您的會話失效與login.jsp中的代碼不同步。

您將要從會議,這意味着下面的代碼

if(session.getAttribute("sessUserName").equals("")) 

應改爲

if(session.getAttribute("sessUserName")==null) 

其他屬性: 後退按鈕可能只是顯示其本地主頁緩存。嘗試disabling the cache並查看它是否有效。