tomcat持久化会话到oracl数据库

使用tomcat的持久化会话管理器PersistentManager实现会话持久化

在项目的META_INF放入context.xml文件内容如下

---------------context内容如下-------------------------------------

<Context  reloadable="true">

  <Manager className="org.apache.catalina.session.PersistentManager" 
    saveOnRestart="true"//设为true,当web应用终止时,会把内存中的所有HttpSession对象保持到Stroe(持久化存储设备中),当web重启时会加载这些会话对象
    maxActiveSessions="10" //运行时会话(不活动会话和活动会话)的最大数目,此时会话在内存中
    minIdleSwap="60"   //会话最短空闲60秒,则可能保存到数据库
    maxIdleSwap="120"//会话最长空闲120秒,则必须保存到数据库
    maxIdleBackup="180"//会话最长空闲180秒,则保持到数据库,并且在内存中存在
    maxInactiveInterval="300">
   <!--sessionMaxInactiveCol会话处于不活动的最长(过期)时间(即用户一直没有发起请求) ;后面的对应的值都是表示数据库中对应的字段-->
   <Store className="org.apache.catalina.session.JDBCStore"
     driverName="oracle.jdbc.driver.OracleDriver"
     connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:HZC"
     connectionPassword='hzc'
     connectionName='hzc'

     sessionTable="session_table"    //表名
     sessionIdCol="session_id"      
     sessionDataCol="session_data"
     sessionValidCol="valid_session"
     sessionMaxInactiveCol="max_inactive" 
     sessionLastAccessedCol="last_access" //最后访问时间
     sessionAppCol="app_name"
     checkInterval="60" /> <!-- 定期检查会话状态的时间间隔,在数据库发现会话失效,会删除会话记录 -->
  
  </Manager>

</Context>


------------------------------

一旦上面配置了,该配置文件就好被放到

Tomcat 6.0\conf\Catalina\localhost下面保存起来,下次启动时还会去读。

如果这个文件不去手动删除的话,比如你上面数据库连接写错了,,会包如下连接错误。

 org.apache.catalina.session.JDBCStore open 严重: JDBC driver class not found java.lang.ClassNotFoundE

下次启动如果更改了上面的配置文件,则Tomcat 6.0\conf\Catalina\localhost下面的context文件里面的内容会是旧的内容。。

所以启动时会一直报错数据库连接失败,其实web启动时读的都是Tomcat 6.0\conf\Catalina\localhost下面的旧版本,,



在里面配置session过期时间;10分钟。如果10分钟内用户一直没有发起新的请求,则到10分钟后,数据库会自动删掉记录。当然是tomcat容器去管理的,不是随便就自己给没了。


数据库存储会话结果:

600表示会话过期时间:10分钟,

valid_session表示会话是否可用;

Session_data:会话保存的数据:类型为blob二进制类型。可用把对象序列化进行保存,读取时通过反序列化读取


可以把时间戳用浏览器调试F12,然后进行时间格式化查看时间




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值