Session的管理
当一个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表示没有限制)

tomcat中的session管理相关推荐

  1. Tomcat中的Session小结

    什么是Session 对Tomcat而言,Session是一块在服务器开辟的内存空间,其存储结构为ConcurrentHashMap: Session的目的 Http协议是一种无状态协议,即每次服务端 ...

  2. tomcat架构分析 (Session管理)【转】

    原文地址:https://www.iteye.com/blog/gearever-1546423 Session管理是JavaEE容器比较重要的一部分,在app中也经常会用到.在开发app时,我们只是 ...

  3. DotNetCore Web应用程序中的Session管理

    原文来自互联网,由长沙DotNET技术社区编译.如译文侵犯您的署名权或版权,请联系小编,小编将在24小时内删除.限于译者的能力有限,个别语句翻译略显生硬,还请见谅. 作者简介:Jon(Jonathan ...

  4. 「Go工具箱」web中的session管理,推荐使用gorilla/sessions包

    在web开发中,大家一定会使用到session.在go的很多web框架中并没有集成session管理的中间件.要想使用session功能,我推荐大家使用这个包:gorilla/sessions.以下是 ...

  5. 【SpringBoot系列】 Spring中自定义Session管理,Spring Session源码解析

    系列文章:Spring Boot学习大纲,可以留言自己想了解的技术点 目录 系列文章:Spring Boot学习大纲,可以留言自己想了解的技术

  6. tomcat(9)Session管理

    [0]README 0.0)本文部分描述转自"深入剖析tomcat",旨在学习"tomcat-Session管理" 的基础知识: 0.1)Catalina通过一 ...

  7. Tomcat的Session管理(三)

    摘要:PersistentManager与StandardManager的异同. 之前两篇关于session的文章主要讨论了session相关的创建.查询.过期处理.而我们查看源码的时候都是默认实现是 ...

  8. Tomcat 集群中 实现session 共享的三种方法

    前两种均需要使用 memcached 或 redis 存储 session ,最后一种使用 terracotta 服务器共享.  建议使用 redis ,不仅仅因为它可以将缓存的内容持久化,还因为它支 ...

  9. MemCache在tomcat中的负载均衡和session交叉存放

    一.安装jdk 1.下载软件,并解压到指定目录/usr/local/ [root@server1 ~]# tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local ...

最新文章

  1. redisCommand接口的用法--利用hiredis库获取MGET命令的结果的坑!
  2. 大量词云出现的时候IO的负担很大
  3. Megastore:为交互式服务提供可扩展的高可用性存储
  4. Notes on language modeling-COMS W4705: Natural Language Processing-学习笔记
  5. vba 不等于_EXCEL中VBA基础语句(1)
  6. 【转载】Linux free 查询可用内存和判断是否有内存泄漏
  7. 【月报】Java知音的四月汇总
  8. 11.11 Ext JS Tooltip 出错 Uncaught TypeError: Cannot read property ‘contains‘ of null
  9. Datawhale 零基础入门CV赛事-Task3 字符识别模型
  10. Flex走出低谷的关键: 打破Flex固有的定义
  11. 语音识别语言模型和拼音字典文件制作
  12. 80004005错误代码_0x80004005,小编教你解决0x80004005错误代码的方法
  13. Python初学笔记4-【嵌套循环】
  14. geoJson——地理数据编码格式
  15. 【STM32 HAL库+STM32CUBEMX】使用usart1打印串口数据
  16. Android热更新,android组件化通信
  17. 利用 matplotlib 制作条形图
  18. 深度学习中Concat层和Flatten层作用
  19. 嵌入式经典面试题总结
  20. python制作物联网控制软件下载_基于Python和Django框架的物联网智能设备管理系统的设计与实现...

热门文章

  1. 职场分享:职场中的关键技巧--说服力
  2. loongarch集成preempt rt后ltpstress死机的问题分析
  3. 百度网盘平均提速3.2倍?官方新增免费提速功能,你知道吗?
  4. weiphp 安装( 解决 -1:fail to get xml content 问题)
  5. php开发架构设计,基于php的快速搭建SPA开发架构的框架设计与开发
  6. Zabbix6.0发钉钉警告
  7. 158亿元限售股解禁 套现压力拖累后市
  8. <Fine-Pruning: Defending Against Backdooring Attacks on Deep Neural Networks>阅读笔记
  9. 初识Matlab2012a的神经网络工具箱(1)
  10. 高性能器件(OPV、OLED和OTFT)