监听器是web三大组件之一,事件监听机制如下:
- 事件:某个事件,如果初始化上下文
- 事件源:事件发生的地方
- 监听器:一个对象,拥有需要执行的逻辑
- 注册监听:将事件、事件源、监听器绑定在一起。当从事件源发生事件时,该事件被传递给监听程序,监听程序执行相应的代码逻辑
[En]
Registration listening: bind events, event sources, and listeners together. When an event occurs from the event source, the event is passed to the listener, and the listener executes the corresponding code logic*
添加监听器
在web项目中的web.xml配置文件中一般有这样一段代码,ContextLoaderListener是一个监听器实现了ServletContextListener接口。在后续解析web.xml文件中会添加到StandardContext上下文的applicationListeners数组中,之后当上下文开启后会根据监听器的全限定名构造监听器实例并初始化监听器。
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
相关文章
Xshell连Linux使用vim时无法在小键盘输入数字
Xshell连Linux使用vim时无法在小键盘输入数字 原因分析 当xshell终端类型不是"VT220"或者"ANSI"的情况下就会出现。 解决办法: 1.点击xshell左上角菜单栏"文件"一项...
Java学习-动手动脑2
``` public void println() { newLine(); } /** * Prints a boolean and then terminate the line. This me...
如何下载 blob 地址的视频资源
如何下载视频资源以blob:http开头的资源 一、问题场景 想下载知乎视频资源,却发现视频链接是这个样子的 blob:https://v.vzuu.com/b6146956-6e52-406d-89...
自己动手实现AQS(一) AQS互斥模式与ReentrantLock可重入锁原理解析
1. MyAQS介绍 在这个系列博客中,我们会参考着jdk的AbstractQueuedLongSynchronizer,从零开始自己动手实现一个AQS(MyAQS)。通过模仿,自己造轮子来学习主要有...
从零开始实现lmax-Disruptor队列(五)Disruptor DSL风格API原理解析
在v4版本的MyDisruptor实现多线程生产者后。按照计划,v5版本的MyDisruptor需要支持更便于用户使用的DSL风格的API。 由于这篇文章是一系列博客的一部分,我们需要了解前一篇博客的...
图片在容器内水平垂直居中显示
图片在容器内水平垂直居中显示 效果: ``` .imgbox { border: 1px solid #dcdfe6; position: relative; width: 150px; height...
实现get/post请求调用第三方接口
java内存区域和内存模型是不一样的东西,内存区域是指Jvm运行时将数据分区存储,强调对内存空间的划分。而内存模型是定义了线程和主内存之间的关系,即JVM在计算内存中的工作方式,如果我们想要深入了解J...
企业级微服务API网关Fizz-如何自定义插件
概念 fizz 插件可理解为响应式的 http servlet filter,即能拦截请求作处理,也能对响应作调整。 插件可以对路由进行操作,即所有与路由匹配的请求;或网关分组,即一组路由。[En]T...
Java学习 (24) 对象篇(04)static关键字
static关键字 - 语法实例 代码块 语法实例 引用库 语法实例 static关键字 static 在类中修饰成员变量,在方法中则修饰成员方法 static 在属性中叫做静态属性,在方法中叫做静态...
设计模式之访问者模式
根据设计模式的创始人的说法,在大多数情况下,您不需要访问者模式,但当您需要访问者模式时,您确实需要它。您可以看到,应用程序场景很少,但当您需要它时,它是必不可少的,因此本文开始学习最后一种设计模式-访...
20 HTTP 长连接与短连接
纸上得来终觉浅,绝知此事要躬行。 Never give up until the fight is over. 永远不要放弃,要一直战斗到最后一秒。 长连接 指在一个TCP连接上可以连续发送多个数据包...
基于easyx的小时钟
``` include include include define PI 3.141592654 void Draw_Dial(); void Draw_Hand(int hour, int min...
Halo 开源项目学习(三):注册与登录
基本介绍 首次启动 Halo 项目时需要安装博客并注册用户信息,当博客安装完成后用户就可以根据注册的信息登录到管理员界面,下面我们分析一下整个过程中代码是如何执行的。 博客安装 项目启动成功后,我们可...
高速缓存一致性协议MESI与内存屏障
CPU高速缓存机制的引入,主要是为了解决CPU越来越快的运行速度与相对较慢的主存访问速度的矛盾。CPU中的寄存器数量有限,在执行内存寻址指令时,经常需要从内存中读取指令所需的数据或是将寄存器中的数据写...