•  ServletContextListener 监听器

在 Servlet API 中有一个 ServletContextListener 接口,它能够监听 ServletContext 对象的生命周期,实际上就是监听 Web 应用的生命周期。

当Servlet 容器启动或终止Web 应用时,会触发ServletContextEvent 事件,该事件由ServletContextListener 来处理。在 ServletContextListener 接口中定义了处理ServletContextEvent 事件的两个方法。

   /**
* 当Servlet 容器启动Web 应用时调用该方法。在调用完该方法之后,容器再对Filter 初始化,
* 并且对那些在Web 应用启动时就需要被初始化的Servlet 进行初始化。
*/
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) { } /**
* 当Servlet 容器终止Web 应用时调用该方法。在调用该方法之前,容器会先销毁所有的Servlet 和Filter 过滤器。
*/
@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
// 关闭Reddson的线程池连接
RedisUtils.shutdown();
}
  • 监听器介绍

在JavaWeb被监听的事件源为:ServletContext、HttpSession、ServletRequest,即三大域对象。

总共八个监听器,监听域对象相关的操作

监听器的对象和方法的调用都是由服务器自己调用,不能手动参与。

域对象相关监听器
ServletContextListener:Tomcat启动和关闭时调用下面两个方法

public void contextInitialized(ServletContextEvent evt):ServletContext对象被创建后调用;
public void contextDestroyed(ServletContextEvent evt):ServletContext对象被销毁前调用;
HttpSessionListener:开始会话和结束会话时调用下面两个方法

public void sessionCreated(HttpSessionEvent evt):HttpSession对象被创建后调用;
public void sessionDestroyed(HttpSessionEvent evt):HttpSession对象被销毁前调用;
ServletRequestListener:开始请求和结束请求时调用下面两个方法

public void requestInitiallized(ServletRequestEvent evt):ServletRequest对象被创建后调用;
public void requestDestroyed(ServletRequestEvent evt):ServletRequest对象被销毁前调用。

域属性相关监听器

ServletContextAttributeListener:在ServletContext域进行增、删、改属性时调用下面方法。

public void attributeAdded(ServletContextAttributeEvent evt)
public void attributeRemoved(ServletContextAttributeEvent evt)
public void attributeReplaced(ServletContextAttributeEvent evt)
HttpSessionAttributeListener:在HttpSession域进行增、删、改属性时调用下面方法

public void attributeAdded(HttpSessionBindingEvent evt)
public void attributeRemoved (HttpSessionBindingEvent evt)
public void attributeReplaced (HttpSessionBindingEvent evt)
ServletRequestAttributeListener:在ServletRequest域进行增、删、改属性时调用下面方法

public void attributeAdded(ServletRequestAttributeEvent evt)
public void attributeRemoved (ServletRequestAttributeEvent evt)
public void attributeReplaced (ServletRequestAttributeEvent evt)

最新文章

  1. 2.4 C#的变量
  2. SGU 422 Fast Typing(概率DP)
  3. codeforces 711D D. Directed Roads(dfs)
  4. ScrollView和ListView的冲突问题
  5. Python之定向爬虫Scrapy
  6. Ensures there will be no 'console is undefined' errors
  7. C51程序优化
  8. JScript_Test
  9. WPF/ArcGIS Engine三维开发和EVC3/4升级到VS项目建议(转)
  10. readv和writev函数
  11. jvm调优经验分享
  12. 重启mysql主从同步mongodb(tungsten-replicator)
  13. 全球第一免费开源ERP Odoo工业互联网生产制造功能模块术语解析
  14. [Linux] Configure iSCSI on Linux5 (both target and initiator)
  15. ORACLE知识点总结
  16. Windows字符集安装
  17. jenkins - svn: E170001报错的原因以及解决方案
  18. 算法:基于 RingBuffer 的 Queue 实现《续》
  19. ios unrecognized selector sent to instance出现的原因和解决方案
  20. linux中~和/区别

热门文章

  1. 文本建模、文本分类相关开源项目推荐(Pytorch实现)
  2. Java_延迟操作
  3. django restfulwork 源码剖析
  4. (转)IIS7无法读取配置文件解决办法
  5. std::condition_variable::wait_until segment
  6. C语言典型编程3
  7. linux下Vim文本编辑器的常用快捷键
  8. std::remove_reference
  9. c3p0数据源的第一次尝试
  10. 写一个小CTF平台