所以这就是问题所在。当用户退出我的网站时,他们仍然可以点击后退按钮并继续使用该网站。为了跟踪用户是否登录,我创建了一个会话属性“isActive”。该属性在用户登录时设置为 true,并且在会话在注销时失效之前(冗余)被删除。同样在每个页面上,我都会检查该属性是否存在。
我还指定页面不应缓存在其头部标签中。
尽管如此,用户仍然可以回击浏览器,并继续使用该网站,就好像他们从未注销过一样。
关于如何解决这个问题的任何想法?
这是代码:
登录小服务程序:
...
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");
内头标签:
<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">
谢谢