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中注册监听器
而第三类监听器关闭javabean的状态变化不是这样调用的,也不是这样注册的,他是自己调用自己
只需要目标bean实现第三类中的两个接口就可以了,在状态改变时,会调用自己的从Listener继承来的方法,实现监听的效果
监听器一共有八个,分为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继承来的方法,实现监听的效果
相关文章推荐
- mysql 常用命令大全
- [Effective JavaScript 笔记]第23条:永远不要修改arguments对象
- mongodb常见问题
- JS从一组数据中找到指定的单条数据的方法
- 大型网站架构演化发展历程
- Solr中配置文件schema.xml之copyField 与multiValued用途
- 压缩图片尺寸
- Jms消费者模式
- 又见中文乱码
- 【数据表间关联关系】 一对多、多对一、一对一、多对多
- 【Redis源码剖析】 - Redis持久化之RDB
- leetcode #79 in cpp
- DBCP 配置
- Solr4.4入门,介绍Solr的安装、IK分词器的配置及高亮查询结果(一)
- android之蓝牙控制小四轴飞行器
- Vijos P1297 生日蛋糕 NOI1999
- LeetCode 200. Number of Islands
- JAVA内存结构之运行时栈帧结构
- GUI(图形用户界面)
- 写在首页