JavaWeb - 理(Listener)、发(Filter)、师(Servlet) 执行顺序/生命周期

简介: JavaWeb - 理(Listener)、发(Filter)、师(Servlet) 执行顺序/生命周期

一、执行顺序

  1. 启动的顺序:Listener->Filter->Servlet
  2. 简单记为:理(Listener)发(Filter)师(Servlet)
  3. 执行的顺序不会因为三个标签在配置文件中的先后顺序而改变。
  4. 同类别的定义顺序影响优先级,越靠前,优先级越高。
  5. 如果web.xml中配置了<context-param>,初始化顺序:context-param > Listener > Filter > Servlet
  6. 待更新...


二、生命周期

1.Listener生命周期:一直从程序启动到程序停止运行。


2.ServletRequestListener:每次访问一个Request资源前,都会执行requestInitialized()方法,方法访问完毕,都会执行requestDestroyed()方法。


HttpSessionListener:每次调用request.getSession(),都会执行sessionCreated()方法,执行session.invalidate()方法,都会执行sessionDestroyed()方法。


ServletRequestAttributeListener:每次调用request.setAttribute()都会执行attributeAdded()方法,如果set的key在request里面存在,就会执行attributeReplacerd()方法,调用request.removeAttribute()方法,都会执行attributeRemoved()方法。


3.Filter生命周期:程序启动调用Filter的init()方法(一旦触发,但是永远只调用一次),程序停止调用Filter的destroy()方法(永远只调用一次,服务器移除或者彻底关闭,并且在Servlet destory() 之后),doFilter()方法每次的访问请求如果符合拦截条件都会调用(程序第一次进入一个新的Servlet,会运行在Servlet调用init()方法后执行),但是不管第几次,都在调用doGet(),doPost()方法之前。


4.Servlet生命周期:程序第一次访问(而不是启动Tomcat时调用init()),会调用servlet的init()方法初始化(只执行一次),每次程序执行都会根据请求调用doGet()或者doPost()方法,程序停止调用destory()方法(服务器移除或者彻底关闭)。


5.待更新...


三、代码

  1. Filter & Servlet 的情况
CharactorFilterinit...            // 启动Tomcat服务器HttpServletinit...                // 第一次进入该ServletCharactorFilterdoFilter...    
service...
CharactorFilterdoFilter...        // 第二次进入该Servletservice...
CharactorFilterdoFilter...        // 第三次进入该Servletservice...
HttpServletdestroy...             // 服务器移除或关闭CharactorFilterdestroy...
Ps:过滤器匹配:“/*”

2.待更新...

目录
相关文章
|
3月前
|
JavaScript Java 容器
servlet过滤器Filter简要回顾-过滤请求字符编码,/和/*和/**的区别
本文简要回顾了Servlet过滤器Filter的概念和使用,通过实例演示了如何创建过滤器以过滤请求字符编码,并解释了在web.xml中配置过滤器时使用`/`、`/*`和`/**`的区别。
servlet过滤器Filter简要回顾-过滤请求字符编码,/和/*和/**的区别
|
3月前
|
Java 应用服务中间件 数据库连接
探索研究Servlet 生命周期
【9月更文挑战第22天】
56 7
|
3月前
|
Java 应用服务中间件 Maven
JavaWeb基础5——HTTP,Tomcat&Servlet
JavaWeb技术栈、HTTP、get和post区别、响应状态码、请求响应格数据式、IDEA使用Tomcat、报错解决、Servlet的体系结构、IDEA使用模板创建Servlet
JavaWeb基础5——HTTP,Tomcat&Servlet
|
6月前
|
NoSQL Java Redis
深入理解Servlet Filter及其限流实践
深入理解Servlet Filter及其限流实践
177 44
|
5月前
|
Java 数据库连接 开发者
Java中的Servlet生命周期详解
Java中的Servlet生命周期详解
|
6月前
|
前端开发 应用服务中间件
servlet执行流程&生命周期
servlet执行流程&生命周期
|
6月前
Servlet的生命周期
Servlet的生命周期
|
6月前
|
Java
servlet生命周期面试题
servlet生命周期面试题
|
5月前
|
Java 数据库连接 开发者
Java中的Servlet生命周期详解
Java中的Servlet生命周期详解
|
5月前
|
XML 存储 前端开发
JavaEE:Servlet创建和使用及生命周期介绍
JavaEE:Servlet创建和使用及生命周期介绍