在使用 JSP 和 Servlet 以 java 实现的 Web 应用程序中;如果我在用户会话中存储信息,则同一浏览器的所有选项卡都会共享该信息。如何在浏览器选项卡中区分会话?
在这个例子中:
<%@page language="java"%>
<%
String user = request.getParameter("user");
user = (user == null ? (String)session.getAttribute("SESSIONS_USER") : user);
session.setAttribute("SESSIONS_USER",user);
%>
<html><head></head><body>
<%=user %>
<form method="post">
User:<input name="user" value="">
<input type="submit" value="send">
</form>
</body></html>
将此代码复制到 jsp 页面中(testpage.jsp
),将此文件部署到服务器上 Web 应用程序的现有上下文中(我使用 Apache Tomcat),然后使用正确的 URL 打开浏览器(FF、IE7 或 Opera)(localhost/context1/testpage.jsp
),在输入框中输入您的姓名并提交表单。然后在同一浏览器中打开一个新选项卡,然后您可以在新选项卡上看到您的名字(从会话中获取)。小心浏览器缓存,有时似乎没有发生,但它在缓存中,刷新第二个选项卡。
Thanks.
您可以使用 HTML5 SessionStorage (window.sessionStorage)。您将生成一个随机 ID 并保存在每个浏览器选项卡的会话存储中。
然后每个浏览器选项卡都有自己的 Id。
使用 sessionStorage 存储的数据不会跨浏览器选项卡持续存在,
即使两个选项卡都包含来自同一域源的网页。在
换句话说,sessionStorage 中的数据不仅限于
调用页面的域和目录,但浏览器选项卡
该页面包含在其中。将其与会话 cookie 进行对比,
它确实将数据从一个选项卡保存到另一个选项卡。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)