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 都是单例的,就是说在运行时只存在一个实例。
相关文章
- 04-03servelt filter listener 的生命周期
- 04-03web.xml中的listener、filter、servlet 加载顺序及其详解
- 04-03web.xml 中的listener、 filter、servlet 加载顺序及其详解
- 04-03servlet 和filter 的生命周期说明
- 04-03回到javweb的第二十八天(一)(补昨天的,没保存的笔记 filter 登录案例 动态代理 敏感词过滤 listener简单)
- 04-03SpringBoot的filter、listener、interceptor、AOP
- 04-03SpringBoot的filter、listener、interceptor、AOP
- 04-03servlet容器中listener、filter、interceptor的启动顺序
- 04-03web.xml 中的listener、 filter、servlet 加载顺序
- 04-03listener和filter 监听器和过滤器的介绍以及简单使用