在使用JSP和Servlets在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>
Run Code Online (Sandbox Code Playgroud)
将此代码复制到jsp页面(testpage.jsp)中,将此文件部署在服务器上的Web应用程序的现有上下文中(我使用Apache Tomcat),然后使用正确的URL(localhost/context1/testpage.jsp)打开浏览器(FF,IE7或Opera ),键入您在输入中的姓名并提交表格.然后在同一浏览器中打开一个新选项卡,然后您可以在新选项卡上看到您的名称(从会话中获取).小心浏览器缓存,有时似乎不会发生,但它在缓存中,刷新第二个选项卡.
谢谢.
我有JAVA Web应用程序,我需要停止在浏览器选项卡之间共享会话,这意味着
用户打开浏览器,登录到他的帐户并在同一浏览器的新选项卡中打开特定页面.根据默认设置,会话将共享到新选项卡,用户将自动登录到新选项卡.任何人都可以告诉我这是如何停止的,所以我至少可以在几个敏感页面中限制它,如果不是整个应用程序.
HttpSession session=request.getSession(true);我在www.someurl.com的控制器中注意到,会话ID在步骤2和步骤4中是不同的.看起来Spring Security创建了一个新会话,该会话现在附加到公共页面请求.为什么会发生这种情况,我是否可以强制Spring Security使用现有会话?
jsp ×2
browser ×1
browser-tab ×1
httpsession ×1
java-ee ×1
security ×1
servlets ×1
session ×1
sessionid ×1
spring ×1