Listener监听器

什么是监听器?

监听器是Servlet规范中的一员。就像Filter一样。Filter也是Servlet规范中的一员。
在Servlet中,所有的监听器接口都是以“Listener”结尾。

监听器作用
监听器实际上是Servlet规范留给我们javaweb程序员的特殊时机。
特殊的时刻如果想执行这段代码,你需要想到使用对应的监听器。
用来监听其他对象的变化,主要用在图形化界面开发上。

Servlet规范中提供了哪些监听器?

  • jakarta.servlet包下:
    • ServletContextListener
    • ServletContextAttributeListener
    • ServletRequestListener
    • ServletRequestAttributeListener
  • jakarta.servlet.http包下:
    • HttpSessionListener
    • HttpSessionAttributeListener
      • 该监听器需要使用@WebListener注解进行标注。
      • 该监听器监听的是什么?是session域中数据的变化。只要数据变化,则执行相应的方法。主要监测点在session域对象上。
  • HttpSessionBindingListener
    - 该监听器不需要使用@WebListener进行标注。
    - 假设User类实现了该监听器,那么User对象在被放入session的时候触发bind事件,User对象从session中删除的时候,触发unbind事件。
    - 假设Customer类没有实现该监听器,那么Customer对象放入session或者从session删除的时候,不会触发bind和unbind事件。
  • HttpSessionIdListener
    - session的id发生改变的时候,监听器中的唯一一个方法就会被调用。
  • HttpSessionActivationListener
    - 监听session对象的钝化和活化的。
    - 钝化:session对象从内存存储到硬盘文件。
    - 活化:从硬盘文件把session恢复到内存。

监听器分类

1.监听对象创建和销毁的监听器

Servlet 规范定义了监听 ServletContext、HttpSession、HttpServletRequest 这三个对象创建和销毁事件的监听器

事件源监听器监听器描述
ServletContextServletContextListener用于监听 ServletContext 对象的创建与销毁过程
HttpSessionHttpSessionListener用于监听 HttpSession 对象的创建和销毁过程
ServletRequestServletRequestListener用于监听 ServletRequest 对象的创建和销毁过程

2.监听属性变更的监听器

Servlet 规范定义了监听 ServletContext、HttpSession、HttpServletRequest 这三个对象中的属性变更事件的监听器,
用来处理被监听对象中属性的增加,删除和替换事件。同一种事件在这三个接口中对应的方法名称完全相同,只是参数类型不同

事件源监听器监听器描述
ServletContextServletContextAttributeListener用于监听 ServletContext 对象的属性新增、移除和替换
HttpSessionHttpSessionAttributeListener用于监听 HttpSession 对象的属性新增、移除和替换
HttpServletRequestServletRequestAttributeListener用于监听 HttpServletRequest 对象的属性新增、移除和替换

3.监听 Session 中对象状态改变的监听器

Session 中的对象可以有多种状态:绑定到 Session 中、从 Session 中解除绑定、随 Session 对象持久化到存储设备中(钝化)、随 Session 对象从存储设备中恢复(活化)。
用来帮助对象了解自己在 Session 中的状态

事件源监听器监听器描述
HttpSessionHttpSessionBindingListener用于监听 JavaBean 对象绑定到 HttpSession 对象和从 HttpSession 对象解绑的事件
HttpSessionHttpSessionActivationListener用于监听 HttpSession 中对象活化和钝化的过程
HttpSessionHttpSessionIdListener用于监听 HttpSession的id发生改变的时候

实现一个监听器的步骤

第一步:编写一个类实现监听器接口。并且实现里面的方法。
第二步:在web.xml文件中进行注册配置,也可以用注解,例如:@WebListener
注意:所有监听器中的方法都是不需要javaweb程序员调用的,由服务器调用,
当某个特殊的事件发生(特殊的事件发生其实就是某个时机到了。)之后,被web服务器自动调用。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忆亦何为

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值