每个IP地址或每个浏览器的JSP会话

时间:2010-06-18 12:23:57

标签: http jsp session

我想知道是为每个IP地址还是为每个浏览器实例创建了一个会话?

我在三个浏览器窗口中打开了我的JSP应用程序。它会创建三个不同的会话? 假设我想为多个浏览器实例使用单个会话,是否可能?

1 个答案:

答案 0 :(得分:1)

不,那是不可能的(实际上,这取决于你如何定义“浏览器实例”)。该会议由HTTP cookie支持。这样的cookie是特定于浏览器实例的。每个浏览器实例都有自己的一组cookie,分别保存在磁盘文件系统中。它不能在不同的浏览器制作(IE,FF,Chrome等)之间共享。然而,它在同一浏览器实例的不同选项卡/窗口之间共享。

但是,您可以使用HttpServletRequest#getRemoteAddr()获取IP地址,并将信息保存在IP地址作为密钥的更广范围内,例如应用程序范围或数据库。然而,这有一些问题:这不会区分同一IP地址后面的多个用户,例如代理后面的大公司网络。对于拥有动态IP地址而非静态IP地址的人来说,这也不适用。

cookie或用户身份验证机制(注册,登录等)是在不同HTTP请求中跟踪唯一用户和个人用户的最可靠方式。