所以这里的问题是,当用户退出我的网站时,他们仍然可以点击返回按钮并继续使用该网站。为了跟踪用户是否已登录,我创建了一个会话属性“isActive”。当用户登录时,该属性设置为true,并在注销时在会话无效之前(冗余地)删除。此外,在每个页面上,我都检查属性是否存在。
我还在头标签中指定了页面不应被缓存。
尽管如此,用户仍然能够在浏览器上点击返回,并继续使用网站,就好像他们从未注销过一样。
有没有想法如何解决这个问题?
以下是代码:
登录Servlet:
我还在头标签中指定了页面不应被缓存。
尽管如此,用户仍然能够在浏览器上点击返回,并继续使用网站,就好像他们从未注销过一样。
有没有想法如何解决这个问题?
以下是代码:
登录Servlet:
...
session.setAttribute("isActive", true);
//Redirect to home page.
检查已登录的JSP页面:
<c:if test='${empty sessionScope.isActive || sessionScope.isActive != true}'>
<c:redirect url="/index.jsp?message=Session Timed Out."/>
</c:if>
注销Servlet:
request.getSession().removeAttribute("isActive");
request.getSession().invalidate();
response.sendRedirect("index.jsp");
在 Head 标签内:
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="Sat, 01 Dec 2001 00:00:00 GMT">
谢谢