HttpSession原理及Session冲突】的更多相关文章

一.摘要         本文讨论了web服务器靠session id识别客户端.以及透过原理分析session冲突的原因,发现session冲突的原因是保存session id信息的cookie发生了冲突.         以下说到的Session特指Web应用下的Session会话. 二.Session原理 1.什么是Session         Session是一个服务端会话技术,利用这个技术,服务器能够识别与之通讯的客户端.该客户端与服务端交互过程中,一些信息可以保存在Session中…
同IP不同端口Session冲突问题 分类: tomcat2013-09-24 11:19 1146人阅读 评论(0) 收藏 举报 一个服务器上搭建了多个tomcat或者weblogic,端口不一样,同时启动访问时session丢失.如:A,B两个服务,在浏览器中登录访问A后,当前打开的浏览器上在开一个选项卡访问B服务后,回过来点击访问A时session丢失,需要重新登录A才可以访问.经过资料查找,发现问题是因为:IP相同认为是同一个域,接收了B的set-cookie指令,把对应的cookie内…
当HttpSession中止(通过显示地失效或超时)时,Web容器会把HttpSession属性从HttpSession中清除. javax.servlet.http.HttpSessionBindingListener接口定义如下: public interface HttpSessionBindingListener { public void valueUnbound(HttpSessionBindingEvent hsbe); public void valueBound(HttpSes…
在项目的开发阶段,我们经常会遇到几个站点共用同一个IP用不同端口号区分的形式!但是,这样很容易导致一个问题,session冲突丢失!即两个站点具有相同的session变量,清除session的时候即全部清除,这样给开发阶段中的测试带来不便!那么,怎么解决这个问题呢?第1个办法就是用不同的域名绑定的不同站点:第2个办法就是为不同的站点设置不同的session作用域,今天主要描述第2个办法的实施过程. 项目场景:同一个项目同时包含三个站点(商城端.商户端.总控端),对应的IP访问分别是:120.77…
在局域网内使用IP加端口的访问方式搭了两个相同程序的站,结果发现用户在一个站下登录后,在另一个站也同时登录了,在一个退出后,另一个站也同时退出了.看了下程序发现两个站都是使用纯session方式记录登录状态,Cookie中只保存有PHPSESSID这个数据,而且由于使用的IP加端口形式,发现他们两个站的Cookie作用域是相同的,都是属于该服务器IP,这也就是导致这个问题的原因了. 解决办法: 在程序的common文件或是公用文件中加入一句php代码,如下: ini_set('session.n…
一.现象: 在WebLogic中,有两个不同域A(端口:9000)和B(端口:8000),应用CA在域A中,应用CB在域B中,进行如下操作: 1.先登录应用CA,再登录应用CB,然后,切换回应用CA,发现应用CA的Session丢失: 2.应用CA中有指向应用CB的链接,登录应用CA,点击指向应用CB的链接,应用CA的Session丢失: 二.原因: 因Cookie冲突导致Session丢失. Cookie的覆盖机制: 如果一个新的cookie与一个已存在的cookie的NAME.Domain和…
由于一台服务器上需要部署多个项目,而我们的WEB项目因为用到框架都是一样的,导致同时运行,session相互冲突,这个登录后,那个就得重新登录,造成了使用不方便,原因是IP相同认为是同一个域,接收了B的set-cookie指令,把对应的cookie内容覆盖了,其中包括jsessionid,造成A的session丢失. 如果IP不同,则不会发生这个问题.IP相同的两个session对应的cookie是一样的,而不幸的是sessionID就保存在cookie中,这样先访问A,再访问B的时候,B的se…
一.javax.servlet.http.HttpSession是一个抽象接口   它的产生:J2EE的Web程序在运行的时候,会给每一个新的访问者建立一个HttpSession,这个Session是用户身份的唯一表示.注意,是容器(Tomcat,Resin)自动创建的.   用途:存放这个用户的一些经常被用到的信息,例如:用户名,权限.例如在购物车程序里,存放用户买的商品.   销毁:一定时间(跟容器有关)内,用户无任何动作,session自动销毁.   得到的方法: HttpSession…
由于一台服务器上使用Tomcat部署多个WEB项目,而项目因为用到框架都是一样的,导致同时运行,session相互冲突,这个登录后,那个就得重新登录,造成了使用不方便,解决办法如下: 在server.xml文件,host的标签页下,加上Context标签,标签内容可以这样写: <Context path=”” docBase=”ROOT” sessionCookieName=”myprojectname”></Context> 对上面几个属性做一些说明: path属性指的是项目的名…
一直在使用session存储数据,一直没有好好总结一下session的使用方式以及其工作原理,今天在这里做一下梳理. 这里的介绍主要是基于php语言,其他的语言操作可能会有差别,但基本的原理不变. 1.在php中如何操作session: session_start();   //使用该函数打开session功能 $_session      //使用预定义全局变量操作数据 使用unset($_session['key']) //销毁一个session的值 简单地操作,一切都是由服务器实现:由于处…