servelt filter listener 的生命周期
Posted 蜡笔没了芯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了servelt filter listener 的生命周期相关的知识,希望对你有一定的参考价值。
1. servlet
当第一次请求一个servlet资源时,servlet容器创建这个servlet实例,并调用他的
init(ServletConfig config)做一些初始化的工作,然后调用它的service方法处理请求。当第二次请求这个servlet资源时,servlet容器就不在创建实例,而是直接调用它的service方法处理请求,也就是说servlet对象是常驻内存的,是单例,因此不要把一些属性作为servlet的成员变量,避免并发访问问题,当servlet容器关闭或者重新加载web应用时,servlet会调用它的destory()方法,然后就就结束了。
2 filter ,Listener
当web容器启动的时候,去读取每个web应用的web.xml配置文件,当配置文件中配有filter和listener时,web容器实例化listener,filter,然后调用Filter的init(FilterConfig)方法做一些初始化(注意当我们的filter启动错误时,这个web应用将
不能用),当请求一个资源而这个资源正好被这个过滤器过滤,调用filter的doFilter方法,当servlet容器关闭或者重新加载web应用时,filter会调用它的destory()方法,然后销毁这个对象,listener是当某个事件发生时,调用它特定法,HttpSessionListener
,当创建一个session时会调用它的sessionCreated()方法,当servlet容器关闭或者重新加载web应用时lister对象被销毁。
总之,servlet filter listener 都是单例的,就是说在运行时只存在一个实例。
以上是关于servelt filter listener 的生命周期的主要内容,如果未能解决你的问题,请参考以下文章
Java实战之04JavaWeb-07Listener和Filter
java web 最方便的配置filter方法,filter到底怎么配置?
SpringBoot系列教程web篇Listener四种注册姿势
listener、filter、servlet、interceptor在springboot中执行顺序
java中servlet,filter,listener为啥优先级listener>filter>servlet,面试时候怎么回答?