[Java Web]Listener | 一文带你上手Web三大组件之一的listener

文章介绍了JavaWeb中的监听器(Listener)概念,作为Web三大组件之一,监听器用于监听Web应用中的事件,如ServletContext、HttpSession、ServletRequest等对象的生命周期和属性变化。重点讲解了ServletContextListener,用于监听Web应用启动和关闭,以及相关代码配置。监听器常见应用场景包括初始化工作、会话管理及请求日志记录等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章
⭐作者主页:@逐梦苍穹
⭐所属专栏:Java Web

目录

Listener

1、概述

2、分类

2.1、重点

3、相关代码

4、使用场景简单说明


 

Listener

1、概述

在Java Web中,Listener(监听器)JavaWeb 三大组件(Servlet、Filter、Listener)之一。

它可以用于监听Web应用程序中发生的事件,例如:ServletContext、HttpSession、ServletRequest等对象的创建和销毁、属性值的修改等事件。

通过Listener,我们可以在这些事件发生时,执行一些特定的操作,例如:记录日志、初始化数据、清理资源等。

监听器可以监听就是在 application,session,request 三个对象创建、销毁或者往其中添加修改删除属性时自动执行代码的功能组件。

request 和 session 已经学习过了,而 application 是 ServletContext 类型的对象。ServletContext 代表整个web应用,在服务器启动的时候,tomcat会自动创建该对象。在服务器关闭时会自动销毁该对象。

2、分类

监听器类别

监听器类型

监听事件类型

监听器方法

ServletContext

ServletContextListener

ServletContext创建和销毁事件

contextInitialized(ServletContextEvent)

contextDestroyed(ServletContextEvent)

ServletContextAttributeListener

ServletContext中属性的添加、删除和修改事件

attributeAdded(ServletContextAttributeEvent)

attributeRemoved(ServletContextAttributeEvent)

attributeReplaced(ServletContextAttributeEvent)

Session

HttpSessionListener

HttpSession创建和销毁事件

sessionCreated(HttpSessionEvent)

sessionDestroyed(HttpSessionEvent)

HttpSessionAttributeListener

HttpSession中属性的添加、删除和修改事件

attributeAdded(HttpSessionBindingEvent)

attributeRemoved(HttpSessionBindingEvent)

attributeReplaced(HttpSessionBindingEvent)

HttpSessionBindingListener

实现了HttpSessionBindingListener接口的对象在HttpSession中被绑定或解绑的事件

valueBound(HttpSessionBindingEvent)

valueUnbound(HttpSessionBindingEvent)

HttpSessionActivationListener

实现了HttpSessionActivationListener接口的对象在HttpSession中被活化或钝化的事件

sessionWillPassivate(HttpSessionEvent)

sessionDidActivate(HttpSessionEvent)

Request

ServletRequestListener

ServletRequest创建和销毁事件

requestInitialized(ServletRequestEvent)

requestDestroyed(ServletRequestEvent)

ServletRequestAttributeListener

ServletRequest中属性的添加、删除和修改事件

attributeAdded(ServletRequestAttributeEvent)

attributeRemoved(ServletRequestAttributeEvent)

attributeReplaced(ServletRequestAttributeEvent)

 

这个表格可能内容比较多,没有辨识度不太好看,下面贴一张我自己笔记软件的表:

4c3f9500e95e4f8fb9711012babef2e4.png

 

对于上面的表格,归纳一个简化版,如下:

ce82553b1e996bb725a42f4d35b7e6be.png

2.1、重点

这个详细的表格里面只有 ServletContextListener 这个监听器后期会接触到,重点了解这部分。ServletContextListener 是用来监听 ServletContext 对象的创建和销毁。

90e52c4115cec2b605e14e925b82f4fe.png

ServletContextListener 接口中有以下两个方法

  • void contextInitialized(ServletContextEvent sce):ServletContext 对象被创建了会自动执行的方法
  • void contextDestroyed(ServletContextEvent sce):ServletContext 对象被销毁时会自动执行的方法

3、相关代码

简单了解监听器代码基本的东西如何写(主要是注解方面):

步骤如下:

  • 定义一个类,实现ServletContextListener 接口
  • 重写所有的抽象方法
  • 使用 @WebListener 进行配置

3acfc47899b2895cc7e29f18743c49b4.png

4、使用场景简单说明

Listener可以用于以下场景:

  1. ServletContext监听器:监听Web应用程序的启动和关闭事件,进行一些初始化或清理工作,比如读取配置文件、初始化数据库连接池等。
  2. HttpSession监听器:监听用户会话的创建和销毁事件,可以在会话创建时初始化用户相关信息,在会话销毁时清理资源等。
  3. ServletRequest监听器:监听客户端请求的创建和销毁事件,可以记录请求日志、统计请求次数等。

通过Listener,我们可以方便地实现一些与业务逻辑相关的操作,如记录日志、统计访问量、控制并发访问、加载配置文件等。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

逐梦苍穹

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

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

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

打赏作者

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

抵扣说明:

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

余额充值