监听器的概述
监听器:就是一个Java类,用来监听其他的Java的状态的变化.
监听器的用途:用来监听其他对象的变化,主要在图像化界面用得比较多
监听器的术语:(拿汽车和警报器举例)
- 事件源:指的是被监听的对象.(汽车)
- 监听器:值的是监听的对象.(报警器)
- 事件源与监听器的绑定:就是在汽车上安装报警器.
- 事件:指的是事件源的改变.(踹汽车一脚)---主要的功能获得事件源对象.
WEB中监听器的概述
WEB中的监听器:
WEB中的Listener和Filter是属于Servlet规范中的高级的技术.WEB中的监听器共有三类八种(监听三个域对象)
- 事件源:Servlet中的三个域对象.ServletContext,HttpSession,ServletRequest.
- 监听器:自定义类实现8个接口.
- 事件源和监听器的绑定:配置.
WEB中的监听器的分类:
三类八种:
- 监听三个域对象的创建和销毁的监听器:
* ServletContextListener
* HttpSessionListener
* ServletRequestListener - 监听三个域对象的属性变更的监听器(属性添加,移除,替换):
* ServletContextAttributeListener
* HttpSessionAttributeListener
* ServletRequestAttributeListener - 监听HttpSession中的JavaBean的状态改变(绑定,解除绑定,钝化,活化)
* HttpSessionBindingListener
* HttpSessionActivationListene
一类:监听三个域对象的创建和销毁的监听器
ServletContextListener:监听ServletContext对象的创建和销毁:
【方法】:
【ServletContext对象的创建和销毁】:
* 创建:服务器启动的时候,服务器为每个WEB应用创建一个属于该web项目的对象ServletContext.
* 销毁:服务器关闭或者项目从服务器中移除的时候.
配置:
<listener>
<listener-class>com.itheima.weblistener.MyServletContextListener</listener-class>
</listener>
HttpSessionListener:监听HttpSession对象的创建和销毁:
【方法】配置同上
ServletRequestListener:监听ServletRequest对象的创建和销毁:
【方法】配置同上
二类: 监听三个域对象的属性变更的监听器:(属性添加,移除,替换)
ServletContextAttributeListener:监听ServletContext对象的属性变更
HttpSessionAttributeListener:监听HttpSession中的属性变更:
ServletRequestAttributeListener:监听ServletRequest对象的属性变更的:
三类:监听HttpSession中的JavaBean的对象的状态改变的监听器
第三类监听器很特殊,不需要进行配置的.作用在JavaBean上的监听器.JavaBean可以自己感知到在Session中的状态.
HttpSessionBindingListener:监听HttpSession中的JavaBean的绑定和解除绑定的
HttpSessionActivationListener:监听HttpSession中的JavaBean的钝化和活化的.
* sessionDidActivate(); :--活化(反序列化)
* sessionWillPassivate(); :--钝化(序列化到硬盘)