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

⭐作者介绍:大二本科网络工程专业在读,持续学习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)

 

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

[Java Web]Listener | 一文带你上手Web三大组件之一的listener_第1张图片

 

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

[Java Web]Listener | 一文带你上手Web三大组件之一的listener_第2张图片

2.1、重点

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

[Java Web]Listener | 一文带你上手Web三大组件之一的listener_第3张图片

ServletContextListener 接口中有以下两个方法

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

3、相关代码

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

步骤如下:

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

[Java Web]Listener | 一文带你上手Web三大组件之一的listener_第4张图片

4、使用场景简单说明

Listener可以用于以下场景:

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

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

 

你可能感兴趣的:(Java,Web,java,listener,Web)