标准会话管理器——StandardManager
用于保存状态的会话对象已经有了,现在就需要一个管理器来管理所有会话,例如会话id生成、根据会话id找出对应的会话、对于过期的会话进行销毁等等操作。用一句话描述标准会话管理器:提供一个专门管理某个web应用所有会话的容器,并且会在web应用启动停止时刻进行会话重加载和持久化。
会话管理主要提供的功能包括会话ID生成器、后台处理(处理过期会话)、持久化模块及会话集的维护。
首先看会话ID生成器,它负责为每个会话生成分配一个唯一标识,例如最终会生成类似“326257DA6DB76F8D2E38F2C4540D1DEA”字符串的会话标识,具体的默认生成算法主要依靠jdk提供的SHA1PRNG算法,如果在集群环境中,为了方便识别会话归属,它最终生成的会话标识类似于“326257DA6DB76F8D2E38F2C4540D1DEA.tomcat1”,后面会加上tomcat集群标识jvmRoute变量值,这里假设其中一个集群标识配置为“tomcat1”。如果你想置换随机数生成算法,可以通过配置server.xml的manager节点secureRandomAlgorithm及secureRandomClass属性达到修改算法的效果。
其次看下如何对过期会话进行处理。负责对会话是否过期的逻辑判断主要在backgroundProcess模块,在tomcat容器中会有一条线程专门用于执行后台处理,当然也包括标准会话管理器的backgroundProcess,不断循环判断所有的会话中是否有过期的,一旦过期则从会话集中删除此会话。
最后是关于持久化模块和会话集的维护,由于标准会话定位于提供一个简单便捷的管理器,所以持久化和重加载操作并不会太灵活且扩展性弱,tomcat会在每个StandardContext(web应用)停止时调用管理器将属于此web应用的所有会话持久化到磁盘,文件名为SESSIONS.ser,而目录路径则由server.xml的Manager节点pathname指定或Javax.servlet.context.tempdir变量指定,默认存放路径为%CATALINA_HOME%/work/Catalina/localhost/web’name/SESSIONS.ser。当web应用启动时又会加载这些被持久化的会话,加载完成后SESSIONS.ser文件将会被删除,所以每次启动成功后就不会看到此文件的存在。另外会话集的维护是指提供创建新会话对象、删除指定会话对象及更新会话对象的功能。
标准会话管理器是我们常用的会话管理器,也是tomcat默认的一个会话管理器,对它进行深入了解有助于对tomcat会话功能的把握,同时对后面其他会话管理器的理解也更容易。
标准会话管理器——StandardManager的更多相关文章
- tomcat会话之持久化会话管理器
前面提到的标准会话管理器已经提供了基础的会话管理功能,但在持久化方面做得还是不够,或者说在某些情景下无法满足要求,例如把会话以文件或数据库形式存储到存储介质中,这些都是标准会话管理器无法做到的,于是另 ...
- 集群增量会话管理器——DeltaManager
DeltaManager会话管理器是tomcat默认的集群会话管理器,它主要用于集群中各个节点之间会话状态的同步维护,由于相关内容涉及到集群,可能会需要一些集群通信相关知识,如果有疑问可结合集群相关章 ...
- xshell 会话管理器快捷键
有没有发现xshell6关闭左边的会话管理器以后,打开就比较麻烦 那么可以自定义一个快捷键来打开: 然后输入一个快捷键 类型选择 菜单-->然后找会话管理器 完事儿 也可以自定义其他快捷键.自己 ...
- Shiro会话管理器与验证码实现(十四)
和shiro整合后,使用shiro的session管理,shiro提供sessionDao操作 会话数据. 配置sessionManager
- PHP中SESSION自定义会话管理器
<?php class CustomSession implements SessionHandlerInterface{ private $link; private $lifetime; p ...
- SAP轻松访问会话管理器等设置
对于SAP的登陆后初始界面,是有一个配置表,可以进行设置的,例如隐藏SAP的标准菜单,设置轻松访问页面右边的图片内容等等这一切的设置都可以通过维护SSM_CUST表来实现可以通过SM30来维护内容,该 ...
- linux启动黑屏或无法进入会话管理器
原因是因为更新软件时删除了/etc中的xserver配置文件,进入livecd将相关文件拷贝即可
- Xshell6会话管理器无意中关闭,在哪里打开
一.进入查看 二.勾选则弹出,然后双击窗口即可
- [Ubuntu] LightDM 轻量级桌面显示管理器
LightDM(Light Display Manager)是一个全新的轻量级 Linux 桌面显示管理器,而传统的 Ubuntu 是使用 GNOME 桌面标准的 GDM. LightDM 是一个跨桌 ...
随机推荐
- python用openpyxl操作excel
python操作excel方法 1)自身有Win32 COM操作office但讲不清楚,可能不支持夸平台,linux是否能用不清楚,其他有专业处理模块,如下 2)xlrd:(读excel)表,xlrd ...
- CentOS7.2安装Weblogic12c出现的问题
Weblogic12c安装到步骤:Prerequisite Checks 时,会进行操作系统版本的校验,即checking operating system certification. 此处 ...
- dubbo安装
dubbo 管控台可以对注册到 zookeeper 注册中心的服务或服务消费者进行管理,分享牛系列,分享牛专栏,分享牛.但管控台是否正常对 Dubbo 服务没有影响,管控台也不需要高可用,因此可以单节 ...
- Matplotlib Toolkits:地图绘制工具
Matplotlib Toolkits:地图绘制工具 有没有一种可以直接在详细地图(如谷歌地图)上绘制上百万坐标点的工具???谷歌地图坐标点多了也不能绘制了. Basemap (Not distrib ...
- ROS机器人程序设计(原书第2版)学习镜像分享及使用说明
ROS机器人程序设计(原书第2版)学习镜像分享及使用说明 系统用于ROS爱好者学习交流,也可用于其他用途,并不局限于ROS. 这款镜像文件是基于一年前的Ubuntu ROS Arduino Gazeb ...
- 根据ccid取得账户,更改某段值再创建账户,返回新的ccid
CREATE OR REPLACE PACKAGE cux_cuxaprebate_utl IS * =============================================== * ...
- android viewpager切换到最后一页时,跳转至其他activity
许许多多的qpp,在启动时会显示一些帮助页或者产品介绍什么的,通常滑动到最后一页时会有一个开始体验的按钮,用来跳转到app的主activity上,但是如果没有? 可以通过如下方法实现: 1.为View ...
- 那些年我们一起用过的Hybrid App
Hybrid App现状分析 Web App 毫无疑问Web App就是成本最低,最快速地解决方案了.尤其是近两年非常流行的响应式设计,Web App市场提供了非常好的实践场地.最近典型的Web Ap ...
- 高通msm8994手动提升性能脚本
点击打开链接 [plain] view plain copy stop thermald stop mpdecision stop thermal-engine # online A57 echo 1 ...
- 【移动开发】binder阻塞/非阻塞与单向/双向的问题
The client thread calling transact is blocked by default until onTransact has finishedexecuting on t ...