我在登录页面上设置并获取会话属性,当我退出页面并按下后退按钮时,它会再次进入主页。
这是我的代码,
::::::::::::::::::::::::::**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>
请指导我。
答案 0 :(得分:2)
设置缓存标头
response.setHeader("Cache-Control","private, no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
另外
如果需要用于Cache-Control的元标记
答案 1 :(得分:2)
尝试:
if (session.getAttribute("sessUserName") == null)
答案 2 :(得分:1)
我认为,根本原因是已经被用户sje397 建议(接受他的回答),我只在这里详细阐述。原因是您的会话失效与login.jsp中的代码不同步。
您正在从会话中删除该属性,这意味着以下代码
if(session.getAttribute("sessUserName").equals(""))
应改为
if(session.getAttribute("sessUserName")==null)
其他: 后退按钮可能只是从其本地缓存显示主页。试试disabling the cache,看看它是否有效。