dengwen3 发表于 2017-2-3 10:41:40

同一个tomcat多个web应用共享session

  tomcat版本:apache-tomcat-6.0.29(次方tomcat6和tomcat7支持)
  1.修改D:\apache-tomcat-6.0.29\conf\server.xml文件

  

  由于每个app都有一个唯一的一个ServletContext 实例对象,下面的所有的servlet 共享此ServletContext。
利用ServletContext 中的setAttribute() 方法把Session 传递过去 然后在另外一个app中拿到session实例。
  
设置为true 说明你可以调用另外一个WEB应用程序 通过ServletContext.getContext() 获得ServletContext ;
然后再调用其getattribute() 得到你要的对象。
  2.创建两个web项目
  两个项目访问URL为:
  http://localhost:8080/app1/
  http://localhost:8080/app2/
  app1的index.jsp代码如下:

  app2的index.jsp代码如下:

  3.访问项目:


  4.原理(个人浅见)
  全局只用app1的session!
  app1使用session时,直接使用;其他app使用session的时候通过application获取app1的session,然后使用。
  当浏览器关闭,app1的session也就关闭。application的globalSession的value为null。
  
  获取application
  application为jsp的九大内置对象,在jsp里面可以直接使用。在servlet或者struts2的action里面可以通过request.getSession.getServletContext()获取!
  APP1的角色
  一般app1扮演“首页”角色,初始化。后面的项目使用其session。
页: [1]
查看完整版本: 同一个tomcat多个web应用共享session