session 的钝化和活化 | 学习笔记-阿里云开发者社区

开发者社区> 学堂小助手> 正文

session 的钝化和活化 | 学习笔记

简介: 快速学习 session 的钝化和活化。
+关注继续查看

开发者学堂课程【Servlet 入门:session 的钝化和活化】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/38/detail/892


session 的钝化和活化


内容介绍

一、什么是 session 的钝化和活化

二、示例步骤

 

 

一、什么是 session 的钝化和活化

假设我们在淘宝中用户过多的时候,虽然 session 没有下限,但 session 的数量就会不断增多。

之后就会导致内存无法承受,此时就会有一些 session 长时间都没有活动。

服务器启动时就会将这些很久没有活动的 session 放到硬盘上,让内存给空出来。

就会使得很多的session被保存到硬盘上以此来空出内存。而即便之后需要再次访问 ession,它就会再次从硬盘中将 session给放回来使用。这样用户就不会感觉到自己掉线了。

这个过程就是 session 的钝化和活化。

而钝化和活化最终都是把 session 保存到硬盘中,再从硬盘中回到内存中。

但是他们发生的时间点不一样。一个是关闭和启动服务器,一个是没有关闭和启动服务器就完成了。

1.png

注意,因为钝化和活化 session,其实就是使用序列化和反序列化技术把 session 从内存保存到硬盘,和把 session从硬盘加载到内存。

这说明如果 Person 类没有实现 Serializable, 接口,那么当 session 钝化时就不会钝化Person,而是把 Person session 中移除再钝化!这也说明 session 活化后, session 中就不在有 Person 对象了。

 

二、示例步骤

先不管 HittpSessionActivationListener 监听器接口,先来配置 Tomcat 钝化 session 的参数,把 下面配嚣文件放到 tomcatlconflcatalinaVocalhost目录下!文件名称为项目名称。

"org.apache.catalina.session.PresistentManger"(maxIdl9swap="1")[11]

"org.apache.catalina.session.FileStore"(directory="mysession")/>[12]

访问项目的 index.jsp 页面,这会使 Tomcat 创建 Session 对象,然后等待一分钟

Tomcat\work\Catalina\localhost\istenermysession.目录下是否会产生文件,如果产生了,说明钝化 session 的配置成功了,可以开始下一步了。

打开 context.xml 把代码添加到35行代码进去,在此处表示对所有代码都生效。

1.png2.png接下来,我们启动。使用 a.jsp 保存数据。b.jsp 输出数据。1.png2.png

之后再打开 mysession 文件夹后耐心等待一段时间后就可以看见以一个 session 一个存储的形式展现出来。

文件名是 sessionID。扩展名是 .session 。跟刚才的序列化相比,序列化是sessions.ser 但现在是 SessinonID 为名称。1.png

显示出来的效果如图为已经钝化的 session ,但是即便将其活化之后该文件也不会消失。并且它所占的内存极小,且不会被加载文件。

2.png

1.png然后我们再打开一个窗口试一下会发现,几乎根本感觉不到 session 的钝化和活化。

钝化就是将其保存到上面的文件中,活化就是将其加载出来。1.png

[注:6]如果 session 1分钟内没有使用那么 Tomcat 就会钝化它


session 序列化到 Tomcat\work\Catalina\Localhost\listener\mysession 目录下

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10074 0
《Servlet和JSP学习指南》一2.4 HttpSession对象
本节书摘来自华章出版社《Servlet和JSP学习指南》一书中的第2章,第2.4节,作者(加)Budi Kurniawan,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1064 0
ASP.NET Core 2 学习笔记(十一)Cookies & Session
原文:ASP.NET Core 2 学习笔记(十一)Cookies & Session 基本上HTTP是没有记录状态的协定,但可以通过Cookies将Request来源区分出来,并将部分数据暂存于Cookies及Session,是写网站常用的用户数据暂存方式。
1063 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13882 0
1394
文章
0
问答
来源圈子
更多
技术图谱:由专家组参与技术图谱的绘制与编写,知识与实践的结合让开发者们掌握学习路线与逻辑,快速提升技能 电子书:电子书由阿里内外专家打造,供开发者们下载学习,更与课程相结合,使用户更易理解掌握课程内容 训练营:学习训练营 深入浅出,专家授课,带领开发者们快速上云 精品课程:汇集知识碎片,解决技术难题,体系化学习场景,深入浅出,易于理解 技能自测:提供免费测试,摸底自查 体验实验室:学完即练,云资源免费使用
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载