实现此接口的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();
}
}