关闭

Servlet监听器/Session钝化和活化

标签: servlet监听器钝化活化
946人阅读 评论(0) 收藏 举报
分类:

Servlet监听器平时用的比较少,但是还是有用的。

监听器一共有八个,分为3类

第一类:用来监听Request,Session,ServletContext的创建和销毁

ServletContextListener 用来监听ServletContext对象创建和销毁的监听器
HttpSessionListener 用来监听HttpSession对象创建和销毁的监听器
ServletRequestListener  用来监听ServletRequest对象创建和销毁的监听

这其中SessionListener牵扯到一个session钝化和活化的问题,在tomcat中,服务器的正常关闭会存储一个文件在work目录下,其中存储了session的信息,但是不会包含类信息,如果想要钝化类信息,存储在session中的类需要实现Serializable接口,当服务器开启的时候会找到之前的SESSIONS.ser文件从中恢复之前保存起来的session

第二类:用来Request,Session,ServletContext的属性变化(即get/set方法)

ServletContextAttributeListener
HttpSessionAttributeListener 
ServletRequestAttributeListener

第三类:Javabean的状态变化

HttpSessionBindingListener ,bean被绑定/解除到session

HttpSessionActivationListener ,bean被钝化/活化

这三类监听器需要注意的是,前两种都需要先创建一个类实现接口然后在web.xml中注册监听器

<listener>  
  
       <listener-class>类的全路径名</listener-class>  
  
</listener>  
这些文件在后期会被加载然后在执行到某个方法时调用

而第三类监听器关闭javabean的状态变化不是这样调用的,也不是这样注册的,他是自己调用自己

只需要目标bean实现第三类中的两个接口就可以了,在状态改变时,会调用自己的从Listener继承来的方法,实现监听的效果

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:37404次
    • 积分:771
    • 等级:
    • 排名:千里之外
    • 原创:38篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    博客专栏
    文章分类
    文章存档
    最新评论