javascript - 如果 session 无效,则禁用浏览器后退按钮

标签 javascript html jsp back-button

<分区>

我正在研究 JSP。我知道有很多关于这个主题的帖子,但没有一个对我有用。我有一个指向欢迎页面的登录页面。当用户单击注销然后重定向到登录页面时, session 将失效。但是,如果用户单击浏览器的后退按钮,他将再次被带到欢迎页面,尽管如果他按下任何其他按钮或刷新页面,他将被带到登录页面,因为 session 已过期。但是我不希望用户在注销后能够通过单击浏览器的后退按钮来访问欢迎页面。我尝试使用以下内容:

<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),他停留在同一个“显示用户详细信息”页面上。

如果 session 有效,我希望用户能够使用浏览器的后退按钮。如果 session 无效,他将无法使用浏览器的后退按钮。

最佳答案

您可以禁用注销 页面上的后退按钮。这样用户一旦点击注销就无法返回。 将此脚本添加到页面,

<SCRIPT type="text/javascript">
    window.history.forward();
    function noBack() { window.history.forward(); }
</SCRIPT>

还有在你的 jsp 中,

   <BODY onload="noBack();"
    onpageshow="if (event.persisted) noBack();" onunload="">

另一个建议是,如果 session 过期,不要盲目地将用户重定向到登录页面。只需在您的注销页面中有一个登录链接

希望对您有所帮助!!

关于javascript - 如果 session 无效,则禁用浏览器后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23357394/

相关文章:

javascript - 函数什么时候应该在 hapijs 路由调用中返回

javascript - Javascript 中存在哪些类型的作用域?

javascript - 用于移动开发的最佳性能 JavaScript MVC 框架

javascript - 使用 jquery Draggable UI 使项目可拖动

java - Spring Boot中使用Userole访问JSP页面的权限

javascript - 如何使用 JavaScript 离线读取 JSON 文件?

html - 使div成为视口(viewport)的高度

javascript - 使用 PHP 或 JavaScript 访问和打印 HTML 源代码

java - DispatchActionServletException : Request does not contain handler parameter named 'method'

java - 如果用户未登录struts2,如何防止加载任何页面