您的位置:首页 > 其它

Servlet监听器/Session钝化和活化

2016-06-02 09:53 417 查看
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继承来的方法,实现监听的效果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: