首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

同一个tomcat多个web运用共享session

2012-06-30 
同一个tomcat多个web应用共享sessiontomcat版本:apache-tomcat-6.0.29(次方tomcat6和tomcat7支持)?1.修改D

同一个tomcat多个web应用共享session

tomcat版本:apache-tomcat-6.0.29(次方tomcat6和tomcat7支持)

?

1.修改D:\apache-tomcat-6.0.29\conf\server.xml文件

?

同一个tomcat多个web运用共享session


由于每个app都有一个唯一的一个ServletContext 实例对象,下面的所有的servlet 共享此ServletContext。
利用ServletContext 中的setAttribute() 方法把Session 传递过去 然后在另外一个app中拿到session实例。


设置为true 说明你可以调用另外一个WEB应用程序 通过ServletContext.getContext() 获得ServletContext ;
然后再调用其getattribute() 得到你要的对象。

?

?

?

2.创建两个web项目

两个项目访问URL为:

??????? http://localhost:8080/app1/

??????? http://localhost:8080/app2/

?

app1的index.jsp代码如下:

同一个tomcat多个web运用共享session

app2的index.jsp代码如下:

同一个tomcat多个web运用共享session

3.访问项目:

同一个tomcat多个web运用共享session

同一个tomcat多个web运用共享session

?

4.原理(个人浅见)

全局只用app1的session!

app1使用session时,直接使用;其他app使用session的时候通过application获取app1的session,然后使用。

当浏览器关闭,app1的session也就关闭。application的globalSession的value为null。


获取application

application为jsp的九大内置对象,在jsp里面可以直接使用。在servlet或者struts2的action里面可以通过request.getSession.getServletContext()获取!

?

APP1的角色

一般app1扮演“首页”角色,初始化。后面的项目使用其session。

?

?

热点排行