【发布时间】:2016-07-25 07:15:24
【问题描述】:
我遇到了会话问题,即在我的 Web 应用程序中,不同的用户登录,然后在多个选项卡之间共享同一个会话。问题是我在浏览器中跟踪单个会话以执行此类过程。是否有任何可能的方法来保持 JSP 和 Servlet 中选项卡的会话。当重复或其他用户登录到同一应用程序时,我不能使会话无效。我被这个困住了。
【问题讨论】:
标签: jsp session servlets browser tabs
我遇到了会话问题,即在我的 Web 应用程序中,不同的用户登录,然后在多个选项卡之间共享同一个会话。问题是我在浏览器中跟踪单个会话以执行此类过程。是否有任何可能的方法来保持 JSP 和 Servlet 中选项卡的会话。当重复或其他用户登录到同一应用程序时,我不能使会话无效。我被这个困住了。
【问题讨论】:
标签: jsp session servlets browser tabs
服务器(您的 jsp/servlet 所在的位置)通常无法判断链接是在同一窗口中打开还是在新选项卡/窗口中打开;当然,除非客户端(在这种情况下是 Web 浏览器)告诉它。简单的说;一些客户端代码就可以了。
您可以使用HTML5 window.sessionStorage 对象。为每个选项卡/窗口创建此对象的新实例。因此生成一个随机 id 并保存在每个浏览器选项卡的会话存储中。然后每个浏览器选项卡都有自己的 ID。将此 id 传递给服务器...
See this answerGonzalo Galloti
希望对你有帮助
【讨论】:
sessionStorage.setItem('country', '<%= country %>'); 中尝试了如下操作,但据我所知,它仅适用于客户端。这就是为什么当我稍后在 Action 类中尝试获取它时,如下所示:request.getSession().getAttribute("country") 它不起作用:(。