文档章节

对Listener的一些理解

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

一般使用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

粉丝 45
博文 40
码字总数 36716
作品 0
厦门
程序员
从tomcat中学习观察者模式

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

元圈
2012/07/09
0
0
PPAPI与Browser间使用AsyncIPC通信

采用AsyncIpc这个项目(https://github.com/hicdre/AsyncIpc),来完成PPAPI Plugin进程与Browser进程的通信。 foruok原创,如需转载请关注foruok的微信订阅号“程序视界”联系foruok。 Asyn...

foruok
2016/02/05
0
0
Java for Web学习笔记(八九):消息和集群(4)定制发布和订购

SimpleApplicationEventMulticaster 本学习一方面进一步了解Spring对publish/subcribe的支持,另一方面也是为了后面如何利用webSocket在集群中传递事件的小例子作准备。spring将发布的消息称...

flowingflying
2017/11/11
0
0
Spring自定义Listener(监听器)的使用

在java web项目中我们通常会有这样的需求:当项目启动时执行一些初始化操作,例如从数据库加载全局配置文件等,通常情况下我们会用javaee规范中的Listener去实现,例如 public class ConfigL...

l253272670
2017/08/30
0
0
RAC中的各种IP-PUBLIC-VIP-Private-SCAN IP

1、PUBLIC和VIP Oracle RAC中每个节点都有一个虚拟IP,简称VIP, 与公网PUBLIC IP在同一个网段。vip 附属在public网口接口。 VIP和PUBLIC IP最主要的不同之处在于:VIP是浮动的,而PUBLIC IP...

长平狐
2013/09/17
495
0

没有更多内容

加载失败,请刷新页面

加载更多

5、前后端分离跨域问题

在以往的开发中,前后端分离也不是像现在这么热门,所谓的前端工程师也只不过是写好静态页面由Java工程师或者php工程师嵌入到页面中进行开发,这或许加重了这些工程师的工作量,而且在样式调...

永远的Chester
14分钟前
0
0
全志T3 Linux显示驱动分析

1、总体架构 全志T3处理器的显示框架是基于标准Linux的帧缓冲架构,其结构如图 1.1所示。显示控制器DE的驱动架构如图 1.2所示,包括屏蔽差异的显示管理抽象层,以及显示图层驱动、显示设备驱...

pnsam301
22分钟前
0
0
【HAVENT原创】VUE2 经验问题汇总

新建一个 Vue 实例可以有下列两种方式: 1. new 一个实例 var app= new Vue({ el:'#todo-app', // 挂载元素 data:{ // 在.vue组件中data是一个函数,要写成data () {}这种方式 i...

HAVENT
25分钟前
0
0
IO基础知识

读文件,可以使用内置的open(file,mode); with 语句自动close; 查看当前目录的绝对路径:os.path.abspath('.'); 创建目录:os.mkdir(path); 删除目录:os.rmdir(path); 拼接路径推荐使用:o...

年轻的中年大叔
27分钟前
0
0
BATJ等大厂最全经典面试题分享

金九银十,又到了面试求职高峰期,最近有很多网友都在求大厂面试题。正好我之前电脑里面有这方面的整理,于是就发上来分享给大家。 这些题目是网友去百度、蚂蚁金服、小米、乐视、美团、58、...

老道士
30分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部