美文网首页
JavaWeb-会话的持久化:HttpSessionActiva

JavaWeb-会话的持久化:HttpSessionActiva

作者: felix_feng | 来源:发表于2016-11-29 16:57 被阅读63次

    实现此接口的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-会话的持久化:HttpSessionActiva

          本文链接:https://www.haomeiwen.com/subject/bjxzpttx.html