2个不同的web项目,如何实现session共享

uk8692 2013-10-17 10:55:25
同时启动了2个web项目,如何让它们实现session共享啊。在一个项目中登录之后跳到另一个项目,能直接获取登录名。我通过更改tomcat下面的server.xml配置文件,在程序中通过把session存放在ServletContext,然后在另一个项目中来获得session,但是总是在第二个项目中无法获得ServletContext。

server.xml配置如下:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<context path="/szdai" reloadable="true" crossContext="true"></context>
<context path="/bbs" reloadable="true" crossContext="true"></context>
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->

<!-- Access log processes all example.
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
-->
</Host>

java代码如下:
在szdai项目中,request.getSession().setAttribute("member", memberInfo);
ServletContext contextSzd = request.getSession().getServletContext();
contextSzd.setAttribute("appSzd", request.getSession());

注:memberInfo是一个实体对象
在bbs项目中,ServletContext context = request.getSession().getServletContext();
ServletContext context1 = context.getContext("/szdai");
MemberInfoEO memberInfo=null;
if(context1!=null && !"".equals(context1)){
HttpSession sess = (HttpSession) context1.getAttribute("appSzd");
memberInfo = (MemberInfoEO) sess.getAttribute("member");
}
...全文
799 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
KK3K2005 2013-10-17
  • 打赏
  • 举报
回复
引用 4 楼 uk8692 的回复:
[quote=引用 3 楼 KK3K2005 的回复:] session配置数据库读写 使用url后面直接加访问标示
大哥,能详细的指导一下吗? [/quote] 我看错你的需求了 你应该用 想用 子域来 共享cookie document.domain设置成相同的主域名
uk8692 2013-10-17
  • 打赏
  • 举报
回复
引用 3 楼 KK3K2005 的回复:
session配置数据库读写 使用url后面直接加访问标示
大哥,能详细的指导一下吗?
KK3K2005 2013-10-17
  • 打赏
  • 举报
回复
session配置数据库读写 使用url后面直接加访问标示
uk8692 2013-10-17
  • 打赏
  • 举报
回复
引用 1 楼 NIHAOX1 的回复:
跨域了 直接的共享session是不可能的。。。 其它的变通方法倒是有 比如 同一台服务器的话 写缓存什么的。。
网上有人说在tomcat配置文件里面更改一下,然后用application去存取session,但我怎么就获取不到
萧萧可乐 2013-10-17
  • 打赏
  • 举报
回复
跨域了 直接的共享session是不可能的。。。 其它的变通方法倒是有 比如 同一台服务器的话 写缓存什么的。。

24,923

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Apache
社区管理员
  • Apache
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧