监听器:
专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动
------------------------------------------------------------------------------------------------------------------
Servlet监听器:(Servlet规范中定义的一种特殊类)
用于监听web应用程序中的ServletContext, HttpSession和ServletRequest等域对象的创建、销毁事件,以及域对象中的属性发生修改事件
按监听事件类型分为:
●  域对象自身的创建和销毁事件监听器
●  域对象中属性的增加和删除事件监听器
●  绑定到HttpSession域中某个对象的状态事件监听器
------------------------------------------------------------------------------------------------------------------
编写Servlet监听器:
●  Servlet规范为每种事件监听器都定义了相应的接口,开发人员编写的事件监听器程序只需实现这些接口,web 服务器根据用户编写的事件监听器所实现的接口把它注册到相应的被监听对象上
●  一些 Servlet 事件监听器需要在 web 应用程序的 web.xml 文件中进行注册,一个 web.xml 文件中可以注册多个 Servlet 事件监听器,web 服务器按照它们在 web.xml 文件中的注册顺序来加载和注册这些 Serlvet 事件监听器。
●  Serlvet 事件监听器的注册和调用过程都是由 web 容器自动完成的,当发生被监听的对象被创建,修改或销毁事件时,web容器将调用与之相关的 Servlet 事件监听器对象的相关方法,开发人员在在这些方法中编写的事件处理代码即被执行
●  由于一个 web 应用程序只会为每个事件监听器创建一个对象,有可能出现多个线程同时调用同一个事件监听器对象的情况,所以,在编写事件监听器类时,应考虑多线程安全的问题
●  在web.xml中配置监听地址:(注解:@WebListener)
WEB开发——监听器(域对象的创建和销毁监听器、域对象中属性变更监听器、感知Session绑定事件监听器)
------------------------------------------------------------------------------------------------------------------
监听域对象的创建和销毁:
●  就是用来监听ServletContext, HttpSession, HttpServletRequest 这三个对象的创建和销毁事件
域对象的创建和销毁时机:
WEB开发——监听器(域对象的创建和销毁监听器、域对象中属性变更监听器、感知Session绑定事件监听器)
------------------------------------------------------------------------------------------------------------------
ServletContextListener接口:用于监听ServletContext对象的创建和销毁事件
WEB开发——监听器(域对象的创建和销毁监听器、域对象中属性变更监听器、感知Session绑定事件监听器)
------------------------------------------------------------------------------------------------------------------
HttpSessionListener接口:用于监听HttpSession对象的创建和销毁
WEB开发——监听器(域对象的创建和销毁监听器、域对象中属性变更监听器、感知Session绑定事件监听器)
------------------------------------------------------------------------------------------------------------------
ServletRequestListener接口:用于监听ServletRequest对象的创建和销毁
WEB开发——监听器(域对象的创建和销毁监听器、域对象中属性变更监听器、感知Session绑定事件监听器)
------------------------------------------------------------------------------------------------------------------
域对象中属性变更的事件监听器:
●  ServletContextAttributeListener接口:用于监听ServletContext对象中属性的变更
●  HttpSessionAttributeListener接口:用于监听HttpSession对象中属性的变更
●  ServletRequestAttributeListener接口:用于监听ServletRequest对象中属性的变更
WEB开发——监听器(域对象的创建和销毁监听器、域对象中属性变更监听器、感知Session绑定事件监听器)
注意:这三个接口中都定义了三个方法来处理被监听对象中属性的增加,删除和替换事件,方法名称完全相同,只是接受的参数类型不同 
------------------------------------------------------------------------------------------------------------------
感知Session绑定事件监听器:
保存在Session域中的对象多种状态:
●  绑定到Session中
●  从Session域中解除绑定
●  随Session对象持久化到一个存储设备中

●  随Session对象从一个存储设备中恢复
Servlet规范中定义了两个特殊的监听器接口来帮助JavaBean对象了解自己在Session域中的这些状态:

●  HttpSessionBindingListener接口

●  HttpSessionActivationListener接口

注意:实现这两个接口的类不需要web.xml 文件中进行注册
------------------------------------------------------------------------------------------------------------------
HttpSessionBindingListener接口:感知自己被绑定到Session中和从Session中删除事件
WEB开发——监听器(域对象的创建和销毁监听器、域对象中属性变更监听器、感知Session绑定事件监听器)
------------------------------------------------------------------------------------------------------------------
HttpSessionActivationListener接口:感知自己被活化(从硬盘到内存)和钝化(从内存到硬盘)事件
WEB开发——监听器(域对象的创建和销毁监听器、域对象中属性变更监听器、感知Session绑定事件监听器)
------------------------------------------------------------------------------------------------------------------
自己整理,有些地方是扒拉的,如有侵犯,还望告知

相关文章:

  • 2022-01-02
  • 2022-01-10
  • 2022-12-23
  • 2021-07-27
  • 2022-12-23
  • 2021-12-02
  • 2021-08-28
猜你喜欢
  • 2021-09-17
  • 2022-12-23
  • 2021-12-04
  • 2021-12-06
  • 2022-12-23
  • 2022-12-23
  • 2021-06-25
相关资源
相似解决方案