JavaWeb-会话的持久化:HttpSessionActivationListener

实现此接口的JavaBean,可以感知自己被活化(从硬盘到内存)和钝化(从内存到硬盘)的过程。
如果需要同时保存Session中的JavaBean。 则JavaBean也要实现Serializable序列化接口。
实现此接口的JavaBean与HttpSessionBindingListener一样,不必配置到web.xml中。必须配置到Tomcat服务器中!
其实就是在用户访问的时候,假如服务器突然关闭了,这个时候,用户的session就不存在了,假如是购物网站,也就相当于,用户好不容易选好的物品,刚刚添加到购物车,结果,因为服务器的突然关闭一下,什么都没了,这样很不好,于是我们就需要实现会话的持久化。
可以让我们在重新启动服务器之后用户的session还在服务器中存在! 即用户session的东西还全部在。 因为我们服务器在关闭的时候把用户的session存储到硬盘了(钝化),在重新启动服务器之后,我们又从硬盘中恢复到内存中!(注意,只要用户还没关闭浏览器,那个session会一直存在用户的客户端的) 然后启动后,用户的信息就不会丢失!

import java.io.Serializable;
import javax.servlet.http.HttpSessionActivationListener;
import javax.servlet.http.HttpSessionEvent;

public class Person implements Serializable, HttpSessionActivationListener {
 private String name; public Person(String name) { 
        super();
         this.name = name;
 } 
@Override 
public void sessionWillPassivate(HttpSessionEvent se) { 
            System.out.println(this + "保存到硬盘了..."); 
} 
@Override 
public void sessionDidActivate(HttpSessionEvent se) { 
            System.out.println(this + "从硬盘读取并活化了...");
 }

 @Override public String toString() { 
            return "Perosn [name=" + name + "]---"+super.toString(); 
}

}

推荐阅读更多精彩内容

  • 本文包括:1、Listener简介2、Servlet监听器3、监听三个域对象创建和销毁的事件监听器4、监听三个域对...
    廖少少阅读 5,247评论 6 28
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 41,385评论 11 349
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 30,766评论 18 399
  •  监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采...
    xdoyf阅读 4,597评论 0 5
  • 国庆一觉醒来,老婆对我说要不去泰晤士小镇走走,还反应过来就已经踏上泰晤士小镇之旅了。达到目的地后给我的感觉是这边空...
    杰嗒嗒的阿杰阅读 691评论 14 7