《同一服务器上两个不同web项目共享session的简单方法.doc》由会员分享,可在线阅读,更多相关《同一服务器上两个不同web项目共享session的简单方法.doc(1页珍藏版)》请在三一文库上搜索。
1、Tomcat 同一服务器上两个不同web项目共享session的简单方法 Tomcat 同一服务器上两个不同web项目共享session的简单方法常常有这样的情况,一个大项目被分割成若干小项目开发,为了能够互不干扰,要求每个小项目作为一个单独的web应用程序开发,可是到了最后突然发现某几个小项目之间需要共享一些信息,或者想使用session来实现SSO (single sign on),在session中保存login的用户信息,最自然的要求是应用程序间能够访问彼此的session。 然而按照Servlet规范,session的作用范围应该仅仅限于当前应用程序下,不同的应用程序之间是不能够互相
2、访问对方的session的。各个应用服务器从实际效果上都遵守了这一规范,但是实现的细节却可能各有不同,因此解决跨应用程序session共享的方法也各不相同。 有一种较为方便的做法,就是把一个应用程序的session放到 ServletContext中,这样另外一个应用程序就可以从ServletContext中取得前一个应用程序的引用。示例代码如下, 应用程序A context.setAttribute(appA, session); 应用程序B contextA = context.getContext(/appA); HttpSession sessionA = (HttpSession)contextA.getAttribute(appA); 值得注意的是这种用法不可移植,因为根据ServletContext的JavaDoc,应用服务器可以处于安全的原因对于context.getContext(/appA);返回空值,以上做法在Weblogic Server 8.1/ tomcat4.1x 中通过