对Listener的一些理解
博客专区 > whaon 的博客 > 博客详情
对Listener的一些理解
whaon 发表于5年前
对Listener的一些理解
  • 发表于 5年前
  • 阅读 323
  • 收藏 4
  • 点赞 1
  • 评论 0

【腾讯云】新注册用户域名抢购1元起>>>   

一般使用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中配置的顺序有关,最上面的最先加载

标签: web.xml listener
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
whaon
粉丝 42
博文 37
码字总数 32579
×
whaon
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: