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(); 
}

}

你可能感兴趣的:(JavaWeb-会话的持久化:HttpSessionActivationListener)