一、事件三要素
1、事件源:操作事件的对象,例如:窗体Frame
2、事件监听器:事件监听器监听事件源,例如WindowListner,它是一个接口
3、事件,例如:单击事件,通过事件,可以取得事件源
二、适配器模式
1、当一个接口有较多的方法时,而实现类只需对其中少数几个实现,此时可以使用适配器模式
2、适配器模式常用于GUI编程
三、八种Web监听器
1、Web中有三个事件源,分别是ServletContext->HttpSession->ServletRequest
2、ServletContext对象
》》创建和销毁:ServletContextListener,Web容器部署时产生,Web容器重新部署时销毁原ServletContext对象
》》属性变化:ServletContextAttributeListner
3、ServletRequest对象
》》创建和销毁:ServletRequestListener,每次请求产生,响应完毕后销毁
》》属性变化:ServletRequestAttributeListner
4、HttpSession对象
》》创建和销毁:HttpSessionListener,当Web容器创建HttpSession对象中产生,当Web容器销毁HttpSession对象执行对应的销毁方法
》》属性变化:HttpSessionAttributeListner
5、HttpSessionBindListener监听器,专用于监听JavaBean对象在HttpSession中的状态情况
但凡是监听三个域对象,就需要在web.xml文件中配置,除外,无需要web.xml文件配置
6、HttpSessionActivationListener监听器,专用于监听JavaBean对象的钝化与激活
当HttpSession不用时,但用在HttpSession的有效期中,这时将内存中的HttpSessio移到外存,叫钝化。
反之,将HttpSession由外存移到内存,叫激活。
四、监听器的工作过程和生命周期
1、开发过程:
1)写一个普通类实现对应的接口,即事件监听器。
2)在web.xml文件中注册事件监听器
<!-- 事件源注册事件监听器,由容器完成 --> <listener> <listener-class>cn.itcast.web.listener.MyServletContextListener</listener-class> </listener>
2、生命周期:空参构造(1次)->初始化(1次)->销毁化(1次),是一个单例的模式
在部署web应用时产生,即用户第一次访问之前已经产生,在重新部署web应用时,后销毁原监听器,再产生新的监听器