关闭

关于Tomcat同源跨项目中session共享问题

标签: tomcatjavasession开发人员
381人阅读 评论(0) 收藏 举报
分类:

关于Tomcat同源跨项目中session共享问题

前言:本人Java后台开发者,工作中遇到session共享的问题,查完资料解决问题后总结一下,方便日后工作。

  • 首先条件是同源,在此基础上不同的项目之间session共享
  • 简而言之就是projectB需要有使用projectB的session,登录信息,用户信息之类

第一步,修改tomcat中conf目录下的serve.xml文件

  • 修改前:<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" mlValidation="false">
    </Host>

  • 修改后:<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" mlValidation="false">
    <Context path="/grass" reloadable="true" crossContext="true"></Context>
    <Context path="/webapp" reloadable="true" crossContext="true"></Context>
    </Host>

第二步,将所需共享的session存放至application中

  • 在projectA中设置,这是在java类方法中使用session的例子,jsp直接调用:request.getSession().setAttribute("uid", userinfo.get("UID"));
    request.getSession().setAttribute("phone", phone);
    request.getSession().getServletContext().setAttribute("session", request.getSession());

第三步,在projectB中使用A创建的session

  • 在projectB中获取session中的信息,这是在jsp中调用的示例代码:<%=((HttpSession)application.getContext("/grass").getAttribute("session")).getAttribute("uid") %>
    <%=((HttpSession)application.getContext("/grass").getAttribute("session")).getAttribute("phone") %>

最后

  • 希望可以帮助到有需要的同学,加油,没有调通的话可以联系我的邮箱:dongtongxue@aliyun.com
1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:384次
    • 积分:14
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档