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.待更新...

目录
相关文章
|
1月前
Servlet生命周期
Servlet生命周期
12 1
|
2月前
|
Java 数据库连接 容器
Servlet的生命周期
Servlet的生命周期
14 0
|
5天前
|
存储 安全 JavaScript
JavaWeb之Servlet(下)
本文主要介绍了JavaWeb开发中关于请求、响应、会话和Servlet3.0注解的相关知识。首先讲解了请求(Request)的常用方法,以及处理请求乱码问题的几种方式。接着讨论了响应(Response)的方法,,以及设置全局初始化参数。然后介绍了会话(Session)的概念,包括其生命周期、如何设置和获取初始化参数,并对比了全局初始化参数和Servlet3.0的`@WebServlet`注解。文中给出了具体的代码示例和测试结果,帮助读者更好地理解和掌握这些概念。
|
5天前
|
Java 应用服务中间件 程序员
JavaWeb之Servlet(上)
本篇博文介绍了JavaWeb中Servlet的基本概念和应用。Servlet是用于交互式浏览和修改数据、生成动态Web内容的Java程序,通常运行在支持Java的应用服务器上。文章讲解了Servlet的工作模式,包括客户端请求、服务器调用Servlet以及响应返回客户端的过程。此外,还提到了Servlet API,特别是doGet和doPost方法用于处理请求和响应。作者通过创建第一个Servlet的步骤,展示了如何实现Servlet接口并配置web.xml文件。最后,文章简述了Servlet的工作原理和生命周期,强调了Servlet的单例特性以及初始化、服务和销毁的过程。
|
7天前
|
Java
springboot项目出现Exception in thread “main“ java.lang.NoClassDefFoundError: javax/servlet/Filter
springboot项目出现Exception in thread “main“ java.lang.NoClassDefFoundError: javax/servlet/Filter
13 0
|
29天前
|
Java 容器
Servlet 教程 之 Servlet 生命周期 6
Servlet生命周期包括:初始化(调用`init()`)、处理请求(通过`service()`)、销毁(调用`destroy()`),最终由JVM垃圾回收。当首个请求到达时,容器加载Servlet,后续请求多线程共享同一实例,每次请求调用`service()`。
26 6
|
1月前
|
Java
Servlet 教程 之 Servlet 生命周期 3
Servlet生命周期包括初始化(init())、服务(service())和销毁(destroy())三个阶段。doGet()方法处理GET请求,接收HttpServletRequest和HttpServletResponse参数。当Servlet不再使用时,由JVM的垃圾回收器自动清理。
24 5
|
4月前
|
存储 前端开发 Java
JavaWeb:servlet+jsp+mybatis商品管理增删改查
商品管理通常包括增加(添加)、删除、修改和查询商品信息
60 1
JavaWeb:servlet+jsp+mybatis商品管理增删改查
|
4月前
|
安全 Java
javaweb实训第四天下午——员工管理系统-JSP&Servlet&JDBC综合练习-CRUD
1.课程介绍 Servlet细节; (掌握) 员工信息相关的CRUD; (掌握) 部门信息相关的CRUD; (掌握) 2.Servlet细节 2.1.多种匹配方式
43 0
|
4月前
|
编解码 应用服务中间件 数据库