1、对servletContext、request、session域的监听器(六个监听器)
要使用这六个监听器时候步骤如下:
1、建立一个类去实现要使用监听器的接口;
2、在web.xml中进行配置;
①、ServletContextListener
②、HttpSessionListener
③、ServletRequestListener
这三个是监听器是对servletContext、request、session这三个域的开启和关闭进行监听。(里面需要实现两个事件:创建和销毁)
④、ServletContextAttributeListener
⑤、HttpSessionAttributeListener
⑥、ServletRequestAttributeListener
这三个是监听器是对servletContext、request、session这三个域中对象的修改、添加、删除进行监听(里面要实现三个事件修改、添加、删除)。
2、对session域的中感知监听器(两个)
使用这两个监听器时不需要在web.xml中进行配置。
①、HttpSessionBindingListener
这个是需要先创建一个bean对象类让对象类实现HttpSessionBindingListener接口中的绑定和解绑事件,每当session中存入该对象时候HttpSessionBindingListener的绑定事件就会运行,而每当session中的该对象移除时候解绑事件就会运行。
②、HttpSessionActivationListener
这个也是需要先创建一个bean对象类让对象类实现HttpSessionActivationListener接口中的钝化和活化这两个事件,在实现这个接口同时还得实现Serializable序列化这个接口,这样才能实现钝化后活化。(钝化:就是将session中已经存在的对象从session内存挪到磁盘中,活化:就是将磁盘中的session中的对象挪到内存中,钝化和活化可以运用到网站优化上,当用户长时间登陆网站不进行操作的时候就可以将这个用户的session对象进行钝化)想要自己设置钝化时间操作时,要在项目的META-INF下新建context.xml文件在这个里面进行配置,配置如下:
<Context>
<!-- maxIdleSwap:session中的对象多长时间不使用就钝化 -->
<!-- directory:钝化后的对象的文件写到磁盘的哪个目录下 配置钝化的对象文件在 work/catalina/localhost/钝化文件 -->
<Manager className="org.apache.catalina.session.PersistentManager" maxIdleSwap="1">
<Store className="org.apache.catalina.session.FileStore" directory="填上自己的文件名" />
</Manager>
</Context>