Java Session对象的钝化和活化

Java Session对象的钝化和活化

钝化和活化的本质是序列化和反序列化
钝化:将内存中的session对象存储到硬盘,防止会话结束后session遗失。
活化:钝化的逆过程,读取硬盘中的session对象于内存中。
实现钝化的操作步骤如下:
1.配置apache-tomcat-9.0.27\conf\context.xml文件

   <Manager className="org.apache.catalina.session.PersistentManager" maxIdleSwap="2">
        <Store className="org.apache.catalina.session.FileStore" directory="pow" />
    </Manager>

上面的maxIdleSwap是最大时间限制,单位是秒,超过了这个时间,内存中的session对象,会自动的存储到directory指定的目录:apache-tomcat-9.0.27\work\Catalina\localhost\该项目\pow中。
2.创建一个监听器,并实现HttpSessionActivationListener,Serializable这两个接口
第一个接口实现监听(钝化和活化)的功能,第二个接口实现反序列化(活化)。
特别说明一下:该监听器不需要额外的配置web.xml.

public class A implements HttpSessionActivationListener,Serializable{
private String key;
public String setKey(String key){
this.key = key ;
}
public String getKey(){
return key;
}
@Override
 public void sessionDidActivate(HttpSessionEvent se) {
  System.out.println("活化完成!!!");
 }
 @Override
 public void sessionWillPassivate(HttpSessionEvent se) {
  System.out.println("钝化完成!!!");
 }
}

3.我们现在就可以通过jsp将上面的实例化对象放入session中

<body>
钝化页面:
  <%
  A a = new A();
  a.setKey("卢泽龙大帅比");
  session.setAttributte("a",a);
  %>
</body>

运行上面的jsp过了一段时间就会看见控制台提示钝化完成!!
此时apache-tomcat-9.0.27\work\Catalina\localhost\该项目中可以看见新创建的文件夹pow。
4.验证(调用硬盘里面的session):

<body>
活化页面:<br/>
key的值为${sessionScope.a.key}
</body>

结果很成功的取出key值为“卢泽龙大帅比”,并且控制台打印出活化完成!
这些只是在下的片面理解,如有不对还望大佬指教!

本课程详细讲解了以下内容:    1.jsp环境搭建及入门、虚拟路径和虚拟主机、JSP执行流程    2.使用Eclipse快速开发JSP、编码问题、JSP页面元素以及request对象、使用request对象实现注册示例    3.请求方式的编码问题、response、请求转发和重定向、cookie、session执行机制、session共享问题     4.session与cookie问题及application、cookie补充说明及四种范围对象作用域     5.JDBC原理及使用Statement访问数据库、使用JDBC切换数据库以及PreparedStatement的使用、Statement与PreparedStatement的区别     6.JDBC调用存储过程和存储函数、JDBC处理大文本CLOB及二进制BLOB类型数据     7.JSP访问数据库、JavaBean(封装数据和封装业务逻辑)     8.MVC模式与Servlet执行流程、Servlet25与Servlet30的使用、ServletAPI详解与源码分析     9.MVC案例、三层架构详解、乱码问题以及三层代码流程解析、完善Service和Dao、完善View、优化用户体验、优化三层(加入接口和DBUtil)    1 0.Web调试及bug修复、分页SQL(Oracle、MySQL、SQLSERVER)     11.分页业务逻辑层和数据访问层Service、Dao、分页表示层Jsp、Servlet     12.文件上传及注意问题、控制文件上传类型和大小、下载、各浏览器下载乱码问题     13.EL表达式语法、点操作符和中括号操作符、EL运算、隐式对象、JSTL基础及set、out、remove     14.过滤器、过滤器通配符、过滤器链、监听器     15.session绑定解绑、钝化活化     16.以及Ajax的各种应用     17. Idea环境下的Java Web开发
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

键盘歌唱家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值