Java监听器简介
Java监推器定义:
Web ----->HttpSession
应用服务器 ---->>>Web监听器 ----->ServletContext
------>ServletRequest
用于监听ServletContext,HttpSession,ServletRequest等域对象的创建、销毁及其
属性修改发生变化的事件
监听器可以在事件发生前后进行一些必要的操作
常用应用场景:
<> 统计在线人数
<> 页面访问量的统计
<> 应用启动时完成信息初始化工作
<> 与Spring结合
监听器的实现步骤:
1、编写Java类实现监听器接口,并实现其接口方法
2、在web.xml文件中对实现的监听器类进行注册
示例:在src目录下创建com.imooc.listener
MyFirstListener的类,并实现ServletContextListener的接口
在web.xml文件中对监听器进行一个注册
<listener>
<listener-class>com.imooc.listener.MyFirstListener</listener-class>
</listener>
多监听器启动顺序
在web.xml中添加多个监听器,当tomcat服务器启动时,
执行监听器的初始化方法,此时的顺序是按照web.xml写入的顺序由上
到下执行,当tomcat服务器停止时,其执行的顺序是逆序执行的
注册顺序的正序就是监听器初识化的顺序;注册顺序的逆序是监听器
销毁的顺序。
Java监听器分类
按监听对象:
<> ServletContext对象监听器
<> HttpSession对象监听器
<> ServletRequest对象监听器
按监听事件:
<> 域对象自身的创建和销毁事件监听器
<> 域对象中属性的创建、替换和消除事件监听器
ServletContext HttpSession ServletRequest
<> 绑定到session中的某个对象的状态事件监听器
Java监听器分类
域对象自身的创建和销毁事件监听器
ServletContext HttpSession ServletRequest
ServletContextListener HttpSessionLisener ServletRequestListener
sessionCreated(HttpSessionEvent se) HttpSession 对象创建调用
sessionDestroyed(HttpSessionEvent se) HttpSession 对象销毁调用
requestInitalized(ServletRequestEvent sre) SevletRequest对象创建调用
requestDestroyed(ServletRequestEvent sre) SevletRequest 对象销毁调用
Java监听器分类
属性监听器:属性的新增,修改,消除都触发发属性监听器
ServletContext HttpSession ServletRequest
ServletContextAttributeListener HttpSessionAttributeListener ServletRequestAttribute
attributeAdded attributeReplace attributeRemoved
绑定到session中的某个对象的状态事件监听器
HtttpSessionBindingLisener (#这个监听器不需要在web.xml中注册)
//它可以完整的被一个类所包含,当服务器有设置这个类为属性的时候调用
valueBound(HttpSessionBindingEvent event) 当监听器绑定至HTTP会话调用
valueUnbound(HttpSessionBindingEvent event)
#当监听器对象从HTTP会话修改、移除或者会话销毁时调用