Tomcat多应用共享Session 朱雀 2021-06-24 14:35 347阅读 0赞 1. 新建两个应用: **test1** |------WEB-INF | |------web.xml |------test.jsp **test.jsp代码** 1. <% 2. session.setAttribute("test1Session","test1Session"); 3. session.getServletContext().setAttribute("t1\_session",session); 4. out.println("Application /test1 is ok!<br>"); 5. 6. **if**(session.getServletContext().getContext("/test2")!=**null**)\{ 7. HttpSession t2\_session = (HttpSession)session.getServletContext().getContext("/test2").getAttribute("t2\_session"); 8. **if**(t2\_session!=**null**)\{ 9. String str = (String)t2\_session.getAttribute("test2Session"); 10. String path = request.getContextPath(); 11. out.println("Application "\+path +":"\+str+"<br>"); 12. \}**else**\{ 13. out.println("Application /test2 no data!"); 14. \} 15. \} 16. %> **test2** |------WEB-INF | |------web.xml |------test.jsp test.jsp代码 1. <% 2. session.setAttribute("test2Session","test2Session"); 3. session.getServletContext().setAttribute("t2\_session",session); 4. out.println("Application /test2 is ok!<br>"); 5. 6. **if**(session.getServletContext().getContext("/test1")!=**null**)\{ 7. HttpSession t1\_session = (HttpSession)session.getServletContext().getContext("/test1").getAttribute("t1\_session"); 8. **if**(t1\_session!=**null**)\{ 9. String str = (String)t1\_session.getAttribute("test1Session"); 10. String path = request.getContextPath(); 11. out.println("Application "\+path +":"\+str+"<br>"); 12. \}**else**\{ 13. out.println("Application /test1 no data!"); 14. \} 15. \} 16. %> 2. 配置tomcat,设置crossContext = true,让两个应用可以在tomcat中交叉使用上下文环境。 <Context path="/test1" docBase="C:/test1" reloadable="true" crossContext="true"></Context> <Context path="/test2" docBase="C:/test2" reloadable="true" crossContext="true"></Context> 3. 启动Tomcat,访问http://localhost:8080/test1/test.jsp 页面输出:Application /test1 is ok!------------------------test1存储session成功 Application /test2 no data!--------------------test2还没有被访问,所以test2的session中没有数据 访问http://localhost:8080/test2/test.jsp 页面输出:Application /test2 is ok!------------------------test2存储session成功 Application /test2:test1Session-------------test1Session来自test1应用中session 刷新http://localhost:8080/test1/test.jsp 页面输出:Application /test1 is ok!------------------------test1存储session成功 Application /test1:test2Session-------------test2Session来自test2应用中session 应用test1和test2成功共享session,可以互相访问另一个应用中的session和session中的数据。
还没有评论,来说两句吧...