• [转]tomcat中的session管理


    转载地址:http://blog.csdn.net/iloveqing/article/details/1544958

    当一个sesson开始时,Servlet容器会创建一个HttpSession对象,在某些情况下把这些Httpsession对象从内存中转移到文件 系统中或数据库中,需要访问的时候在把它们载入到内存中来。这样做的好处有两点:节约了内存的消耗,当web服务器产生故障时,还可以从文件系统或数据库 中恢复Session的数据。
    对于Session的管理,小猫提供了两个实现类:org.apache.catalina.session.StandardManager和org.apache.catalina.session.PersistentManager。
    StandardManager -是默认的方法,当Tomcat服务器重启或重载的时候,会把Session对象保存到
    <%CATALINA_HOME%>/work/Catalina/honstname/applicatonname/SESSIONS.ser(默认值)文件中,每个对象对应一个文件,以Session ID为文件名,例如:

    <Context path="/helloapp" docBase="helloapp" debug="0" reloadable="true">
    <Manager className="org.apache.catalina.session.StandardManager" debug="0"
    maxActiveSessions="-1" checkInterval="60" />
    </Context>
    参数说明:checkInterval-检查session是否过期的时间间隔,以秒为单位,缺省值是60秒;
    maxActiveSessions-可处于活动状态的session数。

    PersistentManager -提供了更加灵活的管理方式,具有容错能力,可以及时把Session备份到Session Store中,可以控制内存中Session的数量。
    小猫还提供了实现持久化Session Store的接口,org.apache.catalina.Store,目前提供了两个具体实现类:org.apache.catalina.FileStore和org.apache.catalina.JDBCStore。
    server.xml中的配置File Store -

    <Context path="/helloapp" docBase="helloapp" debug="0" reloadable="true">
    <Manager className="org.apache.catalina.session.PersistentManager" debug="0" saveOnRestart="true"
    maxActiveSessions="-1" minIdleSwap="-1" maxIdleSwap="-1" maxIdleBackup="-1" >
    <Store className="org.apache.catalina.session.FileStore" directory="mydir"/>
    </Manager>
    </Context>
    参数说明:saveOnRestart-服务器关闭时,是否将所有的session保存到文件中;
    maxActiveSessions-可处于活动状态的session数;
    minIdleSwap/maxIdleSwap-session处于不活动状态最短/长时间(s),sesson对象转移到File Store中;
    maxIdleBackup-超过这一时间,将session备份。(-1表示没有限制) 

  • 相关阅读:
    最优匹配问题
    树的最大独立集
    koa2学习(一)
    vue源码阅读(一)
    一直以为错的一个问题,记录一下
    关于 vuex 的使用忠告
    《javascript设计模式与开发实践》--- (单一职责原则)
    心累
    node 学习(二)
    node 学习(一)
  • 原文地址:https://www.cnblogs.com/csshaw/p/3819583.html
Copyright © 2020-2023  润新知