一尘不染

如果会话无效,请禁用浏览器的后退按钮

jsp

我正在开发JSP。我知道有很多关于该主题的帖子,但是对我来说没有任何用处。我有一个登录页面,该页面指向一个欢迎页面。当用户单击注销并随后重定向到登录页面时,该会话无效。但是,如果用户单击浏览器的后退按钮,则他将再次进入欢迎页面,尽管如果他按下任何其他按钮或刷新页面,则由于会话已过期,他将被带到登录页面。但是,我不希望用户注销后能够通过单击浏览器的后退按钮来访问欢迎页面。我尝试使用以下内容:

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />

但它不起作用。

我尝试使用:

window.history.forward(1);

它工作正常,但会导致另一个问题。如果用户登录并进入欢迎页面。然后用户按下按钮,说“显示用户详细信息”,然后用户进入“显示用户详细信息”页面。现在,如果用户单击“后退”按钮返回到欢迎页面。由于window.history.forward(1)欢迎页面上的,他停留在同一“显示用户详细信息”页面上。

我希望如果会话有效,则用户应该能够使用浏览器的后退按钮。如果会话无效,则他将不能使用浏览器的后退按钮。


阅读 264

收藏
2020-06-08

共1个答案

一尘不染

这很正常。我使用以下内容清除缓存。并且我使logout.jsp中的会话无效,当单击该会话时,它将检查一些令牌属性(在用户登录时设置),如果找不到,则将其重定向到登录页面。

<%

response.setHeader("Cache-Control","no-cache");
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragma","no-cache");
response.setDateHeader ("Expires", 0);
    if(session.getAttribute("token")==null){
    response.sendRedirect(request.getContextPath() + "/LogOut.jsp");

}
%>

还是)感谢你的建议。我一定会付诸行动。每个帮助和建议,我们表示赞赏。

2020-06-08