各位社区的大虾,新手开发遇到一个比较棘手的问题,项目经理要求我解决,我似乎找到了问题所在,但是几乎找不到技术解释。
最近在开发当中遇到一件较为奇怪且值得深思的问题,那就是在一台服务器上有两个tomcat,每个tomcat部署一个项目,这两个项目属于前后台关系,在然后再同一个浏览器向这台主机的不同端口进行访问,我发现了每当访问一个项目的时候,另一个项目的连接就会失效,例如,我首先登陆一下后台进入管理页面,然后刷新前台的首页,再去后台进行操作已经不能响应,声明一下,我检查前后台的联系,发现首页仅仅是一个html静态页面,于是我又去查找web.xml的过滤所有资源的filter(<url-pattern>/*</url-pattern>),然后找到过滤器,发现也没有与后台进行联系。在同一台机器上使用两款浏览器访问,两个web项目相互没有影响。
如果说这个前后台的内容管理系统(群集的)还不能说明情况,那么我再找了一个easyui的doc作为一个项目和另外一个web项目,同样是部署在本机上的两个tomcat,每个tomcat占用不同端口,首先登陆web项目,然后刷新easyui的doc首页,再去对登陆上去的web项目操作,web项目不能操作,且会定向到登陆页面。然后再次使用两款浏览器一对一进行访问两个web项目,发现登陆上去的web项目不受easyui doc项目的影响。
最后大胆得出一个结论或者巧合:浏览器为了减少连接数对内存的损耗,对于一台机器(不管端口)仅仅进行一条连接,部署在同一台机器不同端口的项目进行访问,浏览器会重置连接端口,保持一台机器只有一条连接。
发帖时想请各位驰骋技术界的各路精英指点迷津,发表高见,如有吐槽的,请文明用语,我会谦虚接受浏览器网络连接项目部署
最近在开发当中遇到一件较为奇怪且值得深思的问题,那就是在一台服务器上有两个tomcat,每个tomcat部署一个项目,这两个项目属于前后台关系,在然后再同一个浏览器向这台主机的不同端口进行访问,我发现了每当访问一个项目的时候,另一个项目的连接就会失效,例如,我首先登陆一下后台进入管理页面,然后刷新前台的首页,再去后台进行操作已经不能响应,声明一下,我检查前后台的联系,发现首页仅仅是一个html静态页面,于是我又去查找web.xml的过滤所有资源的filter(<url-pattern>/*</url-pattern>),然后找到过滤器,发现也没有与后台进行联系。在同一台机器上使用两款浏览器访问,两个web项目相互没有影响。
如果说这个前后台的内容管理系统(群集的)还不能说明情况,那么我再找了一个easyui的doc作为一个项目和另外一个web项目,同样是部署在本机上的两个tomcat,每个tomcat占用不同端口,首先登陆web项目,然后刷新easyui的doc首页,再去对登陆上去的web项目操作,web项目不能操作,且会定向到登陆页面。然后再次使用两款浏览器一对一进行访问两个web项目,发现登陆上去的web项目不受easyui doc项目的影响。
最后大胆得出一个结论或者巧合:浏览器为了减少连接数对内存的损耗,对于一台机器(不管端口)仅仅进行一条连接,部署在同一台机器不同端口的项目进行访问,浏览器会重置连接端口,保持一台机器只有一条连接。
发帖时想请各位驰骋技术界的各路精英指点迷津,发表高见,如有吐槽的,请文明用语,我会谦虚接受浏览器网络连接项目部署
解决方案 »
- 数组存储问题 SSH 后台怎样存储
- popup日期控件问题
- 重复新开页面问题,急!!!
- js的级联 浏览器兼容问题
- 我有一段代码,是javascrip对表格每一行自动求和的,但我想时实反映求和的结果,写如表格的最右一列。我该如何写
- 大家帮帮忙,写一个卡挂失的jsp程序?就和网上银行那样的。
- 时间的javascript判断
- jsp页面中如何调用本地exe程序(税务系统),在线等待中~~
- 如何用java创建目录
- 如何向数据库中插入系统的当前时间?
- Lock wait timeout exceeded; try restarting transaction 是什么原因造成的
- 为什么我的GRID列表在网页又没显示- -,郁闷,自学好难呀。
tomcat6和tomcat7修改方法相同
在Context容器标签上增加sessionCookieName参数 <Context path=”/” docBase=”webapp” reloadable=”false”sessionCookieName=”yoursessionname”></Context>
在最后再次大胆猜测一下,由于浏览器每开一个页面(tab)都会保存cookie,第一次向部署第一个项目的tomcat发送请求,页面的cookie保存了第一个tomcat返回来的seesionid名称和值,在新开一个页面,向第二个部署第二个项目的tomcat发送请求,tomcat再次返回sessionid变量名称和值,第二个页面的cookie就保存了两个tomcat返回来的sessionid变量名称和值(在返irebug网络栏下可以查看cookie),由此可以推测浏览器的cookie应该是默认一台主机的连接一个cookie。所以第二个页面发送请求的时候把两个seesionid变量名称和值都发送到第二个tomcat去,第二个tomcat根据自己定义的sessionid名取其值进行匹配。
敬请各位继续发表高见,毕竟上面还有一些知识还不是很肯定。