2010-12-15 75 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并查看它是否有效。