精华内容
下载资源
问答
  • 通过Tomcat的会话持久化配置实现 可以在重启服务器的过程中,保证Session也能被恢复 主要通过修改tomcat配置文件中的conf中的context.xml文件 主要有两种方式 1. 去除原本注释 将其如下的注释去掉 将如下的配置的...

    前言

    通过Tomcat的会话持久化配置实现
    可以在重启服务器的过程中,保证Session也能被恢复

    创建SESSION.ser文件存储该webapp的session数据。在session超时时间内Tomcat重启或re-deploy,将会加载该文件中的数据,恢复用户原来的session运行环境

    主要通过修改tomcat配置文件中的conf中的context.xml文件
    主要有两种方式

    1. 去除原本注释

    将其如下的注释去掉在这里插入图片描述
    将如下的配置的注释去掉
    变成

    
        <Manager pathname="加入所想要的文件名" />
      
    

    2. 存储到本地文件

    第一种方案也可以执行
    或者将其替换为第二种方案

    <Manager className="org.apache.catalina.session.PersistentManager" >
        debug=0
        saveOnRestart="true"
        maxActiveSession="-1"
        minIdleSwap="-1"
        maxIdleSwap="-1"
        maxIdleBackup="-1"
        <Store className="org.apache.catalina.session.FileStore" directory="指定目录" />
    </Manager>
    
    
    • saveOnRestart:(true/false)配置服务重启工程中对session的处理,若为true,则关闭前把有效的session保存,启动后重新载入
    • maxActiveSession:可以活动的session的最大数。如果设置为-1,则表示不受限制,超过最大限制会将session对象转移到Session Store中。
    • minIdleSwap:一个session不活动的最短时间,单位为秒。如果设置为-1,则表示不受限制,超过该时间会将session对象转移到Session Store中。
    • maxIdleSwap:一个session不活动的最长时间,单位为秒。如果设置为-1,则表示不受限制,超过该时间会将session对象转移到Session Store中,该session不再内存中保存。
    • maxIdleBackup:session的最长时间,单位为秒。如果设置为-1,则表示不受限制,超过该时间会将session对象备份到Session Store中,但该session对象依然存在于内存中。
    • Store:指定实现持久化的类和Session存放的文件位置,如该例子中指定的类是:org.apache.catalina.session.FileStore,而Session对象存放的目录则是tomcat根目录下的 session文件夹

    3. 存储到数据库

    或者试试第三种持久化的配置

    <StorecalssName="org.apache.catalina.JDBCStore"
    driverName="com.mysql.jdbc.Driver"
    connectionURL="jdbc:mysql://localhost/sessionusename=xxx&password=xxx"
    sessionTable="session"
    sessionIdCol="session_id"
    sessionDataCol="session_data"
    sessionValidCol="sessionValid"
    sessionMaxInactiveCol="maxInactive"
    sessionLastAccessedCol="lastAccess"
    sessionAppCol="appName"
    checkInterval="60"
    debug="99"/>
    
    
    • className:Session的管理类,tomcat将会通过定义的接口来应用该类生成的对象。
    • debug:Session管理器的跟踪级别。
    展开全文
  • Tomcat Session 持久化

    2021-03-25 09:09:15
    Session的主要数据被存储在服务器内存中,而服务器会为每个在线用户创建一个...Session钝化机制的本质就在于把服务器中不经常使用的Session对象暂时序列到系统文件系统或是数据库系统中,当被使用时反序列到内存...

    Session的主要数据被存储在服务器内存中,而服务器会为每个在线用户创建一个Session对象,当在线用户很多时,例如同时有几万或是几十万在线的情况下,Session内存的开销将会十分巨大,会影响Web服务器性能。而Session的钝化机制刚好可解决此问题。Session钝化机制的本质就在于把服务器中不经常使用的Session对象暂时序列化到系统文件系统或是数据库系统中,当被使用时反序列化到内存中,整个过程由服务器自动完成。

    实现:

    要完成session持久化,存放在session里的对象必须要实现java.io.Serializable接口。

    Tomcat通过两个session管理类实现session持久化,StandardManager (默认),PersistentManager

    StandardManager:不使用任何的Store,当Tomcat正常关闭,重启或Web应用重新加载时,它会将内存中的session序列化到Tomcat目录下

    /work/Catalina/host_name/webappname/SESSIONS.ser文件中。当Tomcat重启或应用加载完成后,tomcat会将文件中的session重新还原到内存中。

    注:如果突然终止该服务器,则所有会话都将丧失,因为StandardManager没有机会实现存盘处理。

    PersistentManager:通过使用Store,将内存中的session备份到文件或数据库中。当备份一个session对象时,该session对象会被复制到存储器中,而原对象仍然留在内存中。因此如果服务器崩溃,就可以从存储器中获取活动的session对象。当session被换出时,他会被移动到存储器中,因为当前活动的session对象超过了上限值,或者session对象闲置了过长时间。换出session节省内存空间。

    配置:

    Tomcat默认是已经启用持久化配置,若要禁用持久化功能,则只需要在节点里配置

    持久化配置可进行全局配置和针对某一站点进行配置。全局配置需要在cof文件夹context.xml的

    节点中配置,若要针对某一站点配置则需要在cof文件夹server.xml的

    节点中添加配置。

    StandardManager:

    className=”org.apache.catalina.session.StandardManager”

    debug=”0”

    maxInactiveInterval=”-1″

    />

    PersistentManager:

    方式1:

    className="org.apache.catalina.session.PersistentManager"

    saveOnRestart="true"

    maxActiveSession="-1"

    minIdleSwap="0"

    maxIdleSwap="30"

    maxIdleBackup="0"

    >

    className="org.apache.catalina.session.FileStore"

    checkInterval=”60”

    directory="../session"/>

    方式2:

    和方式1的区别:

    calssName="org.apache.catalina.JDBCStore"

    driverName="com.mysql.jdbc.Driver"

    connectionURL="jdbc:mysql://localhost/tomsessionDB?user=root&password="

    sessionTable="tomcat_session"

    sessionIdCol="session_id"

    sessionDataCol="session_data"

    sessionValidCol="session_valid"

    sessionMaxInactiveCol="max_inactive"

    sessionLastAccessedCol="last_access"

    sessionAppCol="app_name"

    checkInterval="60"

    debug="99" />

    参数说明:

    maxActiveSessions-可处于活动状态的session数,default -1不限制

    checkInterval-检查session是否过期的时间间隔,default 60s

    saveOnRestart-服务器关闭时,是否将所有的session保存到文件中;minIdleSwap/maxIdleSwap-session处于不活动状态最短/长时间(s),sesson对象转移到File Store中;(-1表示没有限制)

    maxIdleBackup-超过这一时间,将session备份。(-1表示没有限制)

    directory-文件存储位置work\Catalina\host name\web app\session\文件名.session

    展开全文
  • 博文链接:https://wangxuliangboy.iteye.com/blog/237534
  • tomcatsession持久化配置

    千次阅读 2017-01-11 14:07:57
    修改tomcat配置文件:conf/context.mxl <Manager className="org.apache.catalina.session.PersistentManager" > debug=0 saveOnRestart="true" maxActiveSession="-1" minIdleSwap="-1
    • 修改tomcat配置文件:conf/context.mxl
    <Manager className="org.apache.catalina.session.PersistentManager" >
            debug=0
            saveOnRestart="true"
            maxActiveSession="-1"
            minIdleSwap="-1"
            maxIdleSwap="-1"
            maxIdleBackup="-1"
            <Store className="org.apache.catalina.session.FileStore" directory="../session" />
    </Manager>
     1. maxActiveSession:可以活动的session的最大数。如果设置为-1,则表示不受限制,超过最大限制会将session对象转移到Session Store中。 
     2. minIdleSwap:一个session不活动的最短时间,单位为秒。如果设置为-1,则表示不受限制,超过该时间会将session对象转移到Session Store中。
     3. maxIdleSwap:一个session不活动的最长时间,单位为秒。如果设置为-1,则表示不受限制,超过该时间会将session对象转移到Session Store中,该session不再内存中保存。
     4. maxIdleBackup:session的最长时间,单位为秒。如果设置为-1,则表示不受限制,超过该时间会将session对象备份到Session Store中,但该session对象依然存在于内存中。
    
    展开全文
  • Tomcat7 session 持久化关闭

    千次阅读 2018-05-08 16:46:47
    Tomcat7 session 持久化关闭tomcat 7默认开启session持久化功能,这样当你的tomcat重启之后,会自动重新加载session,但是有时候我们不需要这个功能。

    Tomcat7 session 持久化关闭

    tomcat 7默认开启session持久化功能,这样当你的tomcat重启之后,会自动重新加载session,这样当tomcat重启了保存在session里面的信息也不会丢失,但是有时候我们并不需要这个功能。

    所以我们就有了关闭session持久化的需求。

    不过这个持久化在使用eclipse加载tomcat的时候是没有效果的,但是部署在服务器就产生效果了,也不知道是为啥。

    打开tomcat目录>conf>context.xml,这是所有web应用共享的配置信息。
    找到下面的一段话

        <!-- Uncomment this to disable session persistence across Tomcat restarts -->
        <!--
        <Manager pathname="" />
        -->

    注释翻译过来就是“取消注释以禁用session持久化当tomcat重启的时候”,所以只要将<Manager pathname="" />注释取消,那么tomcat重启的时候就不会进行持久化了。

    默认情况下,tomcat使用StandardManager来管理session,当tomcat关闭,或者web应用被重新加载的时候,会对内存中的HttpSession对象进行持久化,把它们保存在文件系统中,默认的文件是(比如:host name是localhost,app name是test):
    work\Catalina\localhost\test\SESSIONS.ser

    展开全文
  • Tomcat_Session持久化

    2014-05-15 16:23:37
    Tomcat_Session持久化,详细讲解tomcatsession管理的原理和持久化原理
  • 关于在线人数统计,大都使用SessionListener监听器实现。 SessionListener 触发源: 1、Session Create 时 2、Session timeout 时 3、显式调用session的invalidate方法 时 4、在Tomcat设置Session...
  • Session的主要数据被存储在服务器内存中,而服务器会为每个在线用户创建一个Session对象,当在线用户很多时,例如同时有几万或是几十万在线的情况下,...springboot2.x对session持久化是默认禁用的 如果想打开
  • 最近同事在做Session外置的功能,我对Session持久化、共享也不太了解,学习一下。 一般来说,Tomcat原生的持久化Session方式,有StandardManager和PersistentManager。 版本说明:apache...
  • 为了避免这样的情况,在某些场合可以将服务器的Session数据存放在文件系统或数据库中,这样的操作称为 Session对象的持久化Session对象在持久化时,存放在其中的对象以序列化的形式存放,这就是为什...
  • 前言:本项目是基于jcoleman的tomcat-redis-session-manager二次开发版本1、修改了小部分实现逻辑2、去除对juni.jar包的依赖3、去除无效代码和老版本tomcat操作API4、支持tomcat 8 ,更高版本未测试感谢jcoleman的...
  • 要完成session持久化,存放在session里的对象必须要实现java.io.Serializable接口。 Session的持久化是由Session Manager来管理的。 Tomcat提供了两个实现类: org.apache.catalina.session.StandardManager ...
  • 自定义实现session持久化使用场景对于有登录校验的网站,tomcat 重启之后,刷新页面又得重新登录,影响用户体验.原因:tomcat 的session 在内存中,tomcat重启之后,内存中的session就销毁了.导致登录信息丢失session持久...
  • tomcat7+ jdk1.7及以上+redis session共享所有依赖包: tomcat-redis-session-manager.jar jedis.jar commons-pool.jar 以及Tomcat对应的配置示例,亲测可用
  • 1、首先,对tomcat文件夹下conf/context.xml文件进行修改 在其根节点下添加以下内容,帐号,密码,数据库自行修改&lt;Manager className="org.apache.catalina.session.PersistentManager" ...
  • Session持久化

    2012-07-25 11:06:03
    tomcat实现对session持久化,如果浏览的用户过大,避免服务器的内存消耗太大,影响性能。
  • Tomcat默认的Session持久化的配置(默认是开启的)  在默认的情况下,Tomcat6是提供了这项功能的。请查看$TOMCAT_HOME$/conf/context.xml。在大概24行,你会看到注释:     -->       ...
  • session持久化异常

    2012-03-15 11:02:22
    http://www.iteye.com/topic/412865 ... 设置session永不超时。 session.setMaxInactiveInterval(-1); tomcat在启动时出现如下异常问题: 严重: IOException while loadin...
  • M5版本:备份旧的tomcat(这部分非必须,根据自己情况而定)开始安装新版本禁止使用Session持久化功能FileStore取消Tomcat Session持久化功能 漏洞描述 Apache Tomcat是由Apache软件基金会属下Jakarta项目开发的...
  • 原理就是继承tomcat的manager接口,接管session持久化工作 2.使用 ◦使用的时候就是Maven打包,放到tomcat的lib里面 (主要是三个包:commons-pool2-2.3.jar;jedis-2.7.3.jar;tomcat7-redis-cluster-1.0.0.jar) ...
  • tomcat配置session持久化

    2021-02-28 08:37:34
    Session的管理,tomcat两个实现类:org.apache.catalina.session.StandardManager和org.apache.catalina.session.PersistentManagerStandardManager 默认的方法 可以配置的地方比较少PersistentManager 提供了很灵活...
  • 面试官:讲讲session持久化

    千次阅读 多人点赞 2020-09-26 12:40:26
    一、session知识回顾 1.1 session何时创建? 默认第一次访问时,使用到了HttpSession就会创建(request.getSession),访问JSP时由于会自备九大内置对象,因此也会创建session(jsp本质上也是一个servlet,从这个...
  • 原理就是继承tomcat的manager接口,接管session持久化工作 2.使用 ◦使用的时候就是Maven打包,放到tomcat的lib里面 (主要是三个包:commons-pool2-2.3.jar;jedis-2.7.3.jar;tomcat7-redis-cluster-1.0.0.jar) ...
  • 将mysql-connector-java-5.1.34-bin.jar复制到tomcat的lib目录下,不然找不到驱动哦 第三步,在数据库test_session中执行以下脚本,创建用于存储session数据的表,即完成 CREATE TABLE sessions ( session_id ...
  • 声明使用的Tomcat9&amp;JDK9 进行测试; session作为一个容器,首先要知道的就是session 存在的位置 :在服务器的内存中 ; session的特点有以下2个【应用场景】: ①共享request域; ② 可用于 :保存...
  • 原文地址:http://xiaolongfeixiang.iteye.com/blog/560800 关于在线人数统计,大都使用SessionListener监听器实现。...1、Session Create 时 ...2、Session timeout 时 ...3、显式调用session的invalidate方法
  • Tomcat会话持久化配置

    千次阅读 2017-12-04 17:56:34
    背景在Java Web应用中,会有一些应用重启的操作,如系统升级,怎么在重启过程中,如何保证Session也能被恢复呢,这就可以通过Tomcat的会话持久化配置实现。持久化配置Tomcat默认是支持会话持久化的,在服务重启时将...
  • Tomcat7 session 持久化

    千次阅读 2015-08-28 10:03:10
    tomcat7 session默认是持久化的,tomcat7关闭或者重启,都会将内容持久化SESSION.ser文件, 这里推荐使用everything这个软件,查找这个文件。 参考官方文档:  戳我
  • session持久化

    2016-12-19 09:43:36
    今天做项目 发现tomcat重启了 ...Session持久化&不持久化 如果Tomcat配置为Session的不持久化,在Tomcat关闭时,会自动触发Session destroy事件。 如果Tomcat配置为Session的持久化,在Tomcat关闭时,不会触发Ses

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,030
精华内容 12,012
关键字:

session持久化tomcat