文档章节

对Listener的一些理解

whaon
 whaon
发布于 2013/03/08 11:43
字数 260
阅读 334
收藏 4

精选30+云产品,助力企业轻松上云!>>>

一般使用spring的时候,都会在web.xml中添加以下代码:


<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext*.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>


有时候还会添加:


<listener>
    <listener-class>
      org.springframework.security.web.session.HttpSessionEventPublisher
    </listener-class>
  </listener> 
以前我也只是知其然而不知其所以然,这些天稍微研究了一番,看了下源码


发现

public class ContextLoaderListener extends ContextLoader implements ServletContextListener


原来ContextLoaderListener是实现了ServletContextListener,所以spring便在ServletContext初始化后,来对context-param(该元素是最先加载的,具体web.xml中个元素的加载顺序请看http://my.oschina.net/dxqr/blog/112437)所指定的spring配置文件进行加载,进而启动spring

当我们要使用spring对session进行操作时,就要配置HttpSessionEventPublisher,该类实现了HttpSessionListener接口

实现ServletContextListener的类只会在容器启动后调用一次,以后不再调用

而实现HttpSessionListener的类,在session创建时会调用sessionCreated方法,session销毁时调用sessionDestroyed方法

Listener的加载和其在web.xml中配置的顺序有关,最上面的最先加载

whaon

whaon

粉丝 49
博文 44
码字总数 38920
作品 0
厦门
程序员
私信 提问
加载中
请先登录后再评论。
从tomcat中学习观察者模式

首先需要了解何为观察者模式。 有2个人A、B,其中A会随机做一些动作,B作为观察者,他会观察A的动作。如果B对A的某个动作感兴趣,那么他就会在A做这个动作的时候做一些自己的动作。这就是观察...

元圈
2012/07/09
428
0
AngularJS中$digest以及$apply的使用

转载 深入理解Angular中的$apply()以及$digest() http://www.cnphp6.com/archives/64167 什么时候手动调用$apply()方法? 如果AngularJS总是将我们的代码wrap到一个function中并传入$apply(...

撒哈拉大仙人掌
2016/10/19
5
0
对Filter的一些理解

tomcat启动后,会调用org.apache.catalina.util.LifecycleBase.start()方法,该方法又会调用org.apache.catalina.core.StandardContext.startInternal()方法,就是在该方法里,启动Listener和Fil......

whaon
2013/03/08
199
0
springBoot2.X---过滤器,监听器,拦截器

过滤器,监听器,拦截器 一、画图理解 过滤器(filter),监听器(listener),拦截器(Interceptor)。 通过两幅图我们可以理解拦截器和过滤器的特点 1、过滤器   过滤器是在请求进入tomcat容...

osc_z72b6ak2
2019/01/23
16
0
Dubbo源码学习笔记 之 Consumer 启动&配置变更监听

  在前面的文章中,分享记录 ExtensionLoader扩展机制、服务的发布过程、Netty 启动监听服务 等内容,相比今天要写的客户端, 服务端的发布、启动还是比较清晰,好理解的。 客户端的ref生成...

osc_xwq1jmh4
2019/07/05
7
0

没有更多内容

加载失败,请刷新页面

加载更多

JDK路径设置无效问题解决

JDK 配置环境无效的两种情况 第 ① 种:输入java -version,显示:'java' 不是内部或外部命令,也不是可运行的程序或批处理文件。这个问题一般出现在电脑第一次配置环境的时候。 第 ② 种:输...

osc_s3ka07m5
17分钟前
27
0
代理模式

一 代理模式简介 代理(Proxy)是一种设计模式 提供了对目标对象另外的访问方式 代理对象代理目标对象 达到增强目标对象功能的目的 二 静态代理 需要定义接口或者父类 代理对象与目标对象一起实...

osc_5w65ebjo
19分钟前
23
0
软件测试基础自学之测试基础理论,先看完这篇你再做测试

第一章、系统测试之测试基础 软件测试不只只只是测试源代码 软件测试人交流社群313782132,内有学习资料、面试技巧、内推机会。 1、测试定义: 通过人工或自动的手段, 对被测对象进行检阅的...

osc_aowxrpuv
21分钟前
17
0
软件测试基础之手工测试,你能想到的都在这

手工测试是传统的测试方法,由测试人员手工编写测试用例、执行、观察结果。软件测试中发现问题最多的都是手工测试,占整个项目的百分之九十五左右,所以说手工测试是软件测试基础。但手工测试...

osc_sfl7wfr9
23分钟前
23
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部