首先说一下开发的步骤:
1.实现相应的监听器接口
2.重写创建和销毁的方法,创建就是这个监听的内容创建的时候的方法,和销毁时候的方法。
3.web.xml的配置
<listener>
<listener-class>包名.类名</listener-class>
</listener>
一共分为三大类,每一个大类中又分为三个不同的监听域对象
第一类,域对象的创建和销毁的监听器
1.监听ServletContextListener的创建和销毁
方法:
contextInitialized(ServletContextEvent sce)创建时执行的方法,用于项目的初始化操作
contextDestroyed(ServletContextEvent sce)销毁时调用的方法
在这里就需要创建的类实现ServletContextListener接口
应用一:可以简化pageContext.request.contextPath,可以在初始化的时候,设置一个属性,然后以后再用的时候直接调用这个属性就可以了,由于它是全局的域对象,所以,可以应用于真个项目。
应用二:加载配置文件,还可以加载一些spring框架
应用三:实现任务的调度
2.监听HttpsessionListener的创建和销毁
方法:
sessionCreated(HttpSessionEvent se)创建时调用
sessionDestroyed(HttpSessionEvent se)销毁时调用
session创建的时间:
request.getSession(),或者是访问一个JSP页面的时候。
销毁的时间:
默认为30分钟,非正常关闭服务器的时候。
应用:可以用来实现统计当前的在线人数。(在下一篇CSDN文章中会做出介绍)
3.监听ServletRequestListener的创建和销毁
方法:
requestInitialized(ServletRequestEvent sre)
requestDestroyed(ServletRequestEvent sre)
第二类,域对象属性状态改变的监听器
同样的,也分为三种域对象在此不再赘述,说一下他们的方法
attributeAdded()添加属性时调用的方法
attributeRemoved()删除属性时调用的方法
attributeReplaced()替换属性时调用的方法
第三类,session域对象中的javabean监听器
在这里一共分为两个,一个是HttpSessionBindingListener,监听javabean对象的绑定(存入session中)和解除,另一个是HttpSessionActivationListener,监听javabean对象的序列化和反序列化
当然,他们也有类似的方法,就是绑定时调用的方法,解绑时调用的方法,具体可以查一下java的api文档