gpt4 book ai didi

jsp - 如何区分浏览器选项卡中的 session ?

转载 作者:行者123 更新时间:2023-12-03 04:29:51 26 4
gpt4 key购买 nike

在使用 JSP 和 Servlet 以 java 实现的 Web 应用程序中;如果我在用户 session 中存储信息,则同一浏览器的所有选项卡都会共享该信息。如何在浏览器选项卡中区分 session ?在此示例中:

<%@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),然后打开浏览器 (FF 、IE7 或 Opera)使用正确的 URL (localhost/context1/testpage.jsp),在输入中键入您的姓名并提交表单。然后在同一浏览器中打开一个新选项卡,然后您可以在新选项卡上看到您的名字(从 session 中获取)。小心浏览器缓存,有时看似没有发生,但它在缓存中,刷新第二个选项卡。

谢谢。

最佳答案

您可以使用 HTML5 SessionStorage (window.sessionStorage)。您将生成一个随机 ID 并保存在每个浏览器选项卡的 session 存储中。然后每个浏览器选项卡都有自己的 Id。

Data stored using sessionStorage do not persist across browser tabs, even if two tabs both contain webpages from the same domain origin. In other words, data inside sessionStorage is confined to not just the domain and directory of the invoking page, but the browser tab in which the page is contained in. Contrast that to session cookies, which do persist data from tab to tab.

关于jsp - 如何区分浏览器选项卡中的 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/368653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com