Skip to content

监听器详解

  • ServletContextAttributeListener 用来感知ServlerContext对象属性变化,比如添加或删除属性变化
  • ServletContextListener 用来感知ServlerContext对象的创建和销毁的
  • ServletRequestListener 可以用来监听感知ServletRequest对象的创建和销毁的
  • ServletRequestAttributeListener 用来感知ServletRequest属性变化,如何添加或删除属性还是替换
  • HttpSessionListener监听session的变化,常用于统计在线人数
  • HttpSessionAttributeListener用来监听Session属性变化
  • HttpSessionBindingListener 用来监听把一个数据绑定到Session对象 感知监听器
  • HttpSessionActivationListener用来监听session绑定的对象钝化(把对象持久化磁盘)

作用

通过监听器,我们可以监听某个对象,如果被监听的对象发生某些改变,那么我们的监听器就可以立即知道,从而可以做出一些处理操作。

在整个Servlet规范中,主要定义了【8类监听器】,但是在实际开发中,使用最多的可能就只有下面这三个,分别是:

  • 用于监听ServletContext上下文的监听器。
  • 用于监听HttpSession会话的监听器。
  • 用于监听ServletRequest请求对象的监听器。

Servlet组件中,可以利用上面三个监听器实现【对象创建和销毁】、【属性变化】、【session状态变化】的监听功能。

  • 对象的创建和销毁
  • 属性变化(添加属性、移除属性、替换属性)
  • session状态变化(绑定session、解绑session,不常用)