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


    tomcat版本:apache-tomcat-6.0.29(次方tomcat6和tomcat7支持)

    1.修改D:apache-tomcat-6.0.29confserver.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。

  • 相关阅读:
    P5318 【深基18.例3】查找文献 —— 图的两种遍历
    电子合同有效性需要解决的问题
    软件测试流程
    浅析HTTP与HTTPS的区别
    输入URL到网页显示的全过程
    TCP协议详细讲解
    Git操作
    robot framework环境搭建及注意事项
    测试面试问题总汇
    python之random模块详解
  • 原文地址:https://www.cnblogs.com/pengyan5945/p/5218344.html
Copyright © 2020-2023  润新知