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

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

 

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

 


由于每个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代码如下:

app2的index.jsp代码如下:

3.访问项目:

 

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。

 

 

posted @ 2014-07-25 10:38  哈特中尉  阅读(478)  评论(0编辑  收藏  举报