tomcat在server.xml修改默认的session名称

来源:互联网 发布:网络本科学位证有用吗 编辑:程序博客网 时间:2024/05/18 03:12

问题描述:

我们程序因为某种原因需要调用另一个程序新打开一个页面。于是在一台主机中架了两个tomcat,现在后台管理需要加一个预览按钮,于是用window.open打开显示相关界面也就是说http://192.168.0.200:8080中有一个网页用window.open打开http://192.168.0.200:8081的一个界面。会出现session丢失的情况,(父窗口的session会丢失)。当我把外网移动到另一台服务器上比如http://192.168.0.159:8081(ip不同),就不会出现问题。 


原因分析:

因为sessionid 在客户端是存储在cookie中的
cookie 用 域 来控制对cookie的访问
和端口无关
当你用以个ip来访问不同端口的时候
实际域是相同的 也就是说
http://192.168.0.200:8080 http://192.168.0.200:8081
域是一样的

所以你在预览的时候 session 被覆盖成http://192.168.0.200:8081的session
原来的http://192.168.0.200:8080 session 也就消失了

当你用不同的ip地址访问时 域分别为 192.168.0.200 和192.168.0.159
cookie 分别为这两个域建立了sessionid 而 sessionid 是用来标示session的

所有就正常 


解决方案:

在server.xml中加入<Context path="" docBase="webapp" debug="0" reloadable="false" sessionCookiePath="/" sessionCookieName="MYSELF_SESSION"/>给每个tomcat起不同的session名称

0 0
原创粉丝点击