【问题标题】:How can I prevent page from being added to browser's history using JSP/Java?如何使用 JSP/Java 防止页面被添加到浏览器的历史记录中?
【发布时间】:2012-04-23 00:47:33
【问题描述】:

我有一个jsp 页面——我们称之为index.jsp。用户单击此页面中的一个链接——我们将链接称为 section1.jsp。在 section1.jsp 中,存在一个表单。当用户提交表单时,它会打开另一个名为 portal.aspx 的页面。

当用户点击浏览器中的后退按钮时,我希望页面回到 index.jsp。

我的想法是:从 request.getHeader('referer') 创建一个会话来记录 index.jsp 页面。这将在用户输入 section1.jsp 时设置。这个想法是当用户在 portal.aspx 中并单击后退按钮时,我希望它检查会话变量,如果已设置,则重定向到引用 URL。然后我试了一下,还是不行。

有没有什么方法可以完成我刚才描述的事情,而不会让浏览器在其历史记录中记录 secton1.jsp,这样当用户单击浏览器的后退按钮时,用户会从 portal.aspx 转到 index.jsp?请理解我正在寻找服务器端解决方案,我必须使用表单打开门户。

感谢您的帮助。

【问题讨论】:

    标签: java forms jsp redirect browser-history


    【解决方案1】:

    如果您要使用纯服务器端,则没有解决方案。 作为替代方案,您可以使用 cookie 来存储返回 URL,这将确保您的页面流量在未来发生变化时不会丢失。唯一的问题,现在你的两个后端需要共享同一个域。

    我个人会借助一点前端帮助,这些确实是用于处理页面历史的 API JS api。

    https://github.com/browserstate/history.js

    【讨论】:

    • 非常感谢奥利弗,感谢您的帮助。好吧,实际上,截至今天,两个后端确实共享同一个顶级域(必须为第二台服务器放置一个 DNS 条目)。 history.js 文件看起来不错,但我很谨慎,因为我需要支持某些较旧的浏览器(即 IE7)。如果我不使用history.js,我可以尝试cookies,或者,也许,一个AJAX 例程来检查是否设置了会话变量并重定向页面。我相信即使用户点击后退按钮,javascript 仍然会执行。
    猜你喜欢
    • 2012-04-14
    • 1970-01-01
    • 2012-08-19
    • 1970-01-01
    • 2015-02-05
    • 2019-09-27
    • 1970-01-01
    • 2012-05-19
    • 1970-01-01
    相关资源
    最近更新 更多