J2EE同域中跨项目session共享实现

有时开发项目时或实施的项目有需要同域不同J2EE项目之间session共享,所以现将自己使用的方案共享给大家,本文是原创。

J2EE同域中跨项目session共享实现

1、 背景

一个tomcat下跑两个web项目:appA,appB

2、 目的

appA项目中的session设置值能被appB项目获取,反之亦然。

3、 实现思路(以下假设项目appA的session被项目appB共享获取)

1)      设置servlet容器(即tomcat)全局变量,封装项目的session对象集合(是对象,非属性值),一个项目一个全局变量,便于其他项目能获取此全局变量。使用ServletContext对象;

2)      配置servlet容器各项目上下文允许交叉访问,即tomcat\conf\server.xml文件;

3)      Session对象集合使用map封装,map集合对象设置进ServletContext全局变量中;

4)      设置Cookie对象,域设置为“/”(即根目录,不能是/appA),保存各登陆用户的sessionID;便于在map集合中能得到该id对应的session对象;

5)      项目appB中利用容器的ServletContext对象获得map集合;

6)    项目appB中读取用户端使用appA项目设置的Cookie集合,找到设置的cookie,得到appA设置的sessionID;

7)    利用从cookie中获得的sessionID遍历map集合,得到appA项目中的session对象;

8)    项目appB完成对项目appA的session共享。

4、 主要代码及设置(以纯jsp方式实现)

1)      server.xml


2)      项目结构


3)      项目appA设置session及cookie




4)      项目appB从cookie间接获得appA的session对象及值



5)      效果图

用户1:user_1




用户2:user_2




完成session共享(以上IE不同用户均使用自己的IE)。

作者:xcg9593

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值