《Java EE 7精粹》—— 2.3 事件监听器

本节书摘来异步社区《Java EE 7精粹》一书中的第2章,第2.3节,作者:【美】Arun Gupta,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.3 事件监听器

事件监听器提供对ServletContext、HttpSession和ServletRequest对象生命周期的回调事件。这些监听器实现了支持上述对象状态变化事件通知的接口类。每个类可以通过@WebListener注解定义或者在web.xml中声明,抑或通过ServletContext. addListener()方法注册。一个典型的监听器例子是以编程方式注册一个额外的Servlet而没有明确要求程序员这样做,或者应用程序级别的数据库连接的初始化和恢复。

可以有多个监听器类来监听每种事件类型,他们可能会在其中的容器指定顺序来为每个事件类型调用监听器Bean。在应用程序关闭期间,以相反的顺序通知这些监听器。

Servlet上下文监听器用于监听该上下文中资源的事件:

《Java EE 7精粹》—— 2.3 事件监听器

ServletContextAttributeListener用于监听上下文属性的变化:

《Java EE 7精粹》—— 2.3 事件监听器

HttpSessionListener监听Session中资源的事件:

《Java EE 7精粹》—— 2.3 事件监听器

HttpSessionActivationListener用于监听Session被钝化或激活的事件:

《Java EE 7精粹》—— 2.3 事件监听器

HttpSessionAttributeListener用于监听Session属性的变化:

《Java EE 7精粹》—— 2.3 事件监听器

HttpSessionBindingListener用于监听Session绑定和松绑对象的事件:

《Java EE 7精粹》—— 2.3 事件监听器

ServletRequestListener监听Request中资源的事件:

《Java EE 7精粹》—— 2.3 事件监听器

ServletRequestAttributeListener用于监听Request属性的变化。

还有AsyncListener,它是用于管理异步事件,比如异步执行已完成、超时或发生错误。

除了使用@WebListener注解定义和在web.xml中声明监听器,还可以使用ServletContext.addListener()方法以编程方式定义他们。可以在ServletContainer Initializer.onStartup或ServletContextListener.con textInitialized方法中做到这一点。

当应用程序为给定的ServletContext启动时,ServletContainerInitializer.onStartup方法会被调用:

《Java EE 7精粹》—— 2.3 事件监听器
上一篇:MyRocks监控信息


下一篇:truncate表,会将统计信息清除么?