在使用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>
将以下代码复制到JSP页面(testpage.jsp
),将该文件部署在服务器上现有Web应用程序的上下文中(我使用Apache Tomcat),然后使用正确的URL(localhost/context1/testpage.jsp
)在浏览器(FF、IE7或Opera)中打开,输入您的名字并提交表单。接着在同一浏览器中打开一个新标签页,您就可以看到您的名字(从会话中获取)。请注意浏览器缓存,有时它似乎没有发生变化,但实际上已被缓存在其中,请刷新第二个选项卡。
谢谢。