5.监听器(Listener)

2023-11-16

1.监听器简介

       监听器主要用来监听对象的创建,属性的变化,是一个实现特定接口的普通Java类。

      Listener接口与事件对应表:

    

ServletContext

有关

ServletContextListener

ServletContextEvent

ServletContextAttributeListener

ServletContextAttributeEvent

HttpSession

有关

HttpSessionListener

HttpSessionEvent

HttpSessionActivationListener

HttpSessionAttributeListener

HttpSessionBindingEvent

HttpSessionBindingListener

ServletRequest

有关

ServletRequestListener

ServletRequestEvent

ServletRequestAttributeListener

ServletRequestAttributeEvent

 

 

     编写监听器的步骤:

       编写实现类->在web.xml中进行部署->编写测试页面

2.与ServletContext相关监听器

   

单个Web站点的资源都共享一个javax.servlet.ServletContext类的实体。通过该对象可以存取应用程序的全局对象以及初始化阶段的变量
全局对象即为Application范围对象,其生命周期从容器启动至容器关闭。初始阶段的变量是指在web.xml中,由<context-param>元素设定的变量,该变量的范围是Application范围

ServletContextListener接口:

实现了该接口的程序,当JavaWeb应用程序启动时,会自动开始监听工作

首先调用contextInitialized()方法接收对应的ServletContextEvent事件

当应用从容器中移除时,会自动调用contextDestroyed()方法

以上两个方法都会接收到ServletContextEvent事件对象,该对象可以调用getServletContext()方法取得ServletContext对象(全局对象)

ServletContextAttributeListener接口:

实现该接口的程序,能够监听ServletContext属性的变化,例如:当往ServletContext中添加数据时,该程序会被调用。

 

 

方法

说明

attributeAdded(ServletContextAttributeEvent  e)

若有对象加入Application范围时,通知

 

正在收听的对象

attributeReplaced(ServletContextAttributeEvent  e)

若在Application的范围,有对象取代另

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

5.监听器(Listener) 的相关文章

  • 如何在 Play java 中创建数据库线程池并使用该池进行数据库查询

    我目前正在使用 play java 并使用默认线程池进行数据库查询 但了解使用数据库线程池进行数据库查询可以使我的系统更加高效 目前我的代码是 import play libs Akka import scala concurrent Ex
  • Java JDBC:更改表

    我希望对此表进行以下修改 添加 状态列 varchar 20 日期列 时间戳 我不确定该怎么做 String createTable Create table aircraft aircraftNumber int airLineCompa
  • 给定两个 SSH2 密钥,我如何检查它们是否属于 Java 中的同一密钥对?

    我正在尝试找到一种方法来验证两个 SSH2 密钥 一个私有密钥和一个公共密钥 是否属于同一密钥对 我用过JSch http www jcraft com jsch 用于加载和解析私钥 更新 可以显示如何从私钥 SSH2 RSA 重新生成公钥
  • Final字段的线程安全

    假设我有一个 JavaBeanUser这是从另一个线程更新的 如下所示 public class A private final User user public A User user this user user public void
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 反射找不到对象子类型

    我试图通过使用反射来获取包中的所有类 当我使用具体类的代码 本例中为 A 时 它可以工作并打印子类信息 B 扩展 A 因此它打印 B 信息 但是当我将它与对象类一起使用时 它不起作用 我该如何修复它 这段代码的工作原理 Reflection
  • Spring Data JPA 应用排序、分页以及 where 子句

    我目前正在使用 Spring JPA 并利用此处所述的排序和分页 如何通过Spring data JPA通过排序和可分页查询数据 https stackoverflow com questions 10527124 how to query
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • 加密 JBoss 配置中的敏感信息

    JBoss 中的标准数据源配置要求数据库用户的用户名和密码位于 xxx ds xml 文件中 如果我将数据源定义为 c3p0 mbean 我会遇到同样的问题 是否有标准方法来加密用户和密码 保存密钥的好地方是什么 这当然也与 tomcat
  • Java Integer CompareTo() - 为什么使用比较与减法?

    我发现java lang Integer实施compareTo方法如下 public int compareTo Integer anotherInteger int thisVal this value int anotherVal an
  • 如何在 javadoc 中使用“<”和“>”而不进行格式化?

    如果我写
  • Java执行器服务线程池[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • 无法捆绑适用于 Mac 的 Java 应用程序 1.8

    我正在尝试将我的 Java 应用程序导出到 Mac 该应用程序基于编译器合规级别 1 7 我尝试了不同的方法来捆绑应用程序 1 日食 我可以用来在 Eclipse 上导出的最新 JVM 版本是 1 6 2 马文 看来Maven上也存在同样的
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • 静态变量的线程安全

    class ABC implements Runnable private static int a private static int b public void run 我有一个如上所述的 Java 类 我有这个类的多个线程 在里面r
  • 在 Maven 依赖项中指定 jar 和 test-jar 类型

    我有一个名为 commons 的项目 其中包含运行时和测试的常见内容 在主项目中 我添加了公共资源的依赖项
  • 有没有办法为Java的字符集名称添加别名

    我收到一个异常 埋藏在第 3 方库中 消息如下 java io UnsupportedEncodingException BIG 5 我认为发生这种情况是因为 Java 没有定义这个名称java nio charset Charset Ch
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview

随机推荐

  • 头歌平台python数据分析——(2)Numpy进阶

    第1关 Numpy广播 首先用arange 生成一个数组 然后用reshape 方法 将数组切换成4x3的形状 最后再与basearray相加 输出它们的和 第2关 Numpy高级索引 首先 利用花式索引获取arr数组第line行 至少两行
  • opencv(C++) 连通域分析函数 connectedComponentsWithStats() 用法

    文章目录 1 函数用法 2 参数说明 3 例子 只保留图中连通域面积较大的区域 connectedComponentsWithStats 是一个非常好用的连通域分析函数 可以检测连通域 获取连通域的面积 宽度 高度 质心和左上角顶点坐标等
  • 极简化版-无root实现抓包-VMOS+HttpCanary(小黄鸟)抓包-解决抓包时无网络问题

    文章目录 前言 一 真机中的操作 分别安装以下应用 二 安装vmos的操作 三 vmos的操作 四 解决抓包时无网络问题 建议 前言 适用大部分手机 实现各种抓包 一 真机中的操作 分别安装以下应用 vmos 自行下载 小黄鸟 https
  • 冉起新秀:Apache六大尚未广为人知的大数据项目

    原文地址 On the Rise Six Unsung Apache Big Data Projects 作者 SAM DEAN 译者 吴洁 世界各地无数的组织 他们使用的数据现在日益庞大而复杂 使用传统的数据处理程序已无法再进行优化分析及
  • mysql命令、mysqldump命令找不到解决

    1 解决bash mysql command not found 的方法 root DB 02 mysql u root bash mysql command not found 原因 这是由于系统默认会查找 usr bin下的命令 如果这
  • spring boot发布脚本

    venus deploy sh bin bash P PATH usr local venus P PATH venus sh stop CUR DATE date Y m d H M S mv P PATH venus web jar P
  • ffmpeg 录制和播出复用流(多节目流)

    ffmpeg 录制和播出复用流 多节目流 此处的播放还是录制的意思 录制是存成文件 播放是用udp的协议发送出去 故此处播放的含义还是录制的意思 复用流录制 假如有一个复用流 包含4个节目 如下 ffmpeg probesize 10000
  • pip安装python库出现:ModuleNotFoundError: No module named 'setuptools._deprecation_warning'

    Could not import setuptools which is required to install from a source distribution Traceback most recent call last File
  • 机器学习 朴素贝叶斯之邮件分类

    目录 一 贝叶斯算法 1 先验概率 2 后验概率 3 贝叶斯定理 4 概率模型 二 朴素贝叶斯分类器 1 朴素贝叶斯分类 2 拉普拉斯修正 3 防溢出策略 4 垃圾邮件分类 三 利用朴素贝叶斯分类对于电子邮件分类 1 使用的数据集 2 相关
  • Ubuntu16.04下交叉编译适配openwrt(CC版本)的swoole扩展库(swoole-1.10.3)

    Ubuntu16 04下交叉编译适配openwrt CC版本 的swoole扩展库 swoole 1 10 3 文章目录 Ubuntu16 04下交叉编译适配openwrt CC版本 的swoole扩展库 swoole 1 10 3 一 简
  • thinkphp6 入门(5)-- 模型是什么 怎么用

    一 模型 MVC架构 之前开发一个功能 后端为在控制器 C 中写 php SQL 前端为在页面 V 中写html css js 这就形成了 VC 架构 但是发现 相同的数据逻辑 SQL 在不同的功能中可能被用到 所以可以把数据逻辑 SQL
  • Mysql优化4-合适的索引

    四中索引 普通索引 主键索引 唯一索引 全文索引 一 索引的CURD 1 添加 1 1 主键索引添加 把一张表的一个字段设置为主键 该字段就位主键索引 id int unsigned primary key auto increment u
  • 注册表知识和技巧大全

    注册表知识和技巧大全 注册表基础 系统文件夹 名称 路径 含义 AppData C Windows Application Data 应用程序 Cache C Windows Temporary Internet Files 浏览器缓存 C
  • 【光电设计大赛】非接触酒精浓度测量中放大器和ADC模块误差分析

    放大器误差分析 微小信号测量实验中 主要会对结果造成影响有失调电压和噪声 噪声有外界电磁干扰噪声和运放本身的固有噪声 失调电压可以通过在输入端加入反向电压来消除 通过放大器的调零按钮使失调电压降低到很小 外界电磁噪声可以通过电磁屏蔽消除 但
  • 7-1 设计一个学生类和它的一个子类——本科生类(interface接口)

    设计一个学生类 Student 和它的一个子类 本科生类 Undergraduate 要求如下 1 Student类有姓名 name 和年龄 age 属性 两者的访问权限为protected 一个包含两个参数的构造方法 用于给姓名和年龄属性
  • uWSGI+nginx+supervisor部署django项目

    本文主要介绍如何编译nginx uwsgi以及supervisor 配置文件实现django项目启动 01 为什么用django nginx uwsgi Django本身只是一个基于Python语言写的一个开源WEb框架 不具备服务器网关功
  • 恭喜ULAM团队在数字版权领域的研究上有了新突破

    恭喜北京清链华识科技有限公司在数字版权领域的研究上有了新的突破 其中团队所研究的课题 基于区块链技术的数字版权管理应用研究 得到了河北省科学院的认可 并且在 河北省科学院学报 的 大数据与区块链技术专刊 上成功刊登 河北省科学院学报 是由河
  • 什么是JDBC,JDBC的主要功能是什么?

    JDBC Java Data Base Connectivity 是Java连接数据库的一门技术 是一种执行SQL的API 可以为多种关系型数据库提供统一的访问功能 它是由一组用java语言编写的类和接口组成 是Java访问数据库的标准规范
  • Vue Element Select选择器自定义验证规则

    前言 在我们在做增删改查的时候 一般会遇到添加和修改的from表单需要表单验证 一般常规的from表单是有自己的验证规则 from加一个 rules rules 但他需要v model值和prop值要一样 这是常规情况 我遇到的是 绑定多个
  • 5.监听器(Listener)

    1 监听器简介 监听器主要用来监听对象的创建 属性的变化 是一个实现特定接口的普通Java类 Listener接口与事件对应表 与 ServletContext 有关 ServletContextListener ServletContex