Servlet, Filter, Listener 启动与执行顺序

2024-09-02 08:12

本文主要是介绍Servlet, Filter, Listener 启动与执行顺序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Servlet, Filter, Listener 启动与执行顺序

    • 1、启动顺序 **Listener -> Filter -> Servlet**
    • 2、记忆口诀
    • 3、执行顺序


💖The Begin💖点点关注,收藏不迷路💖

在Java Web应用中,Servlet、Filter和Listener的启动与执行顺序至关重要,它们遵循着固定的流程:

1、启动顺序 Listener -> Filter -> Servlet

  • 1.1 Listener(监听器):最先加载,监听应用生命周期等事件。

启动时机

  • Web应用启动时,容器会首先加载并初始化Listener。

作用

  • 监听Web应用中的特定事件,如ServletContext的创建和销毁、HttpSession的创建和销毁等。
  • 在这些事件发生时执行相应的逻辑,如初始化资源、清理数据等。
  • 1.2 Filter(过滤器):随后初始化,处理请求前后的预处理和后处理。

初始化

  • 在Web应用启动且Listener初始化之后,Filter会被初始化。

作用

  • 在Servlet处理请求之前或之后,对请求和响应进行预处理和后处理。
  • 例如,进行请求验证(如身份验证、授权)、日志记录、字符编码转换等。
  • Servlet(服务器端程序):最后初始化,处理具体业务逻辑。

初始化

  • 在Filter之后,Servlet会被初始化。

作用

  • 处理客户端发送的请求,并生成响应返回给客户端。
  • 是Web应用中最核心的业务处理单元,负责执行具体的业务逻辑。

2、记忆口诀

理(Listener)发(Filter)师(Servlet)
这个口诀形象地帮助记忆它们的启动顺序。

3、执行顺序

需要注意的是,虽然启动顺序是固定的,但执行顺序(特别是在处理请求时)可能因Filter的配置和请求的具体路径而有所不同。Filter可以配置为拦截特定的URL模式,从而对符合条件的请求进行过滤处理。


在这里插入图片描述


💖The End💖点点关注,收藏不迷路💖

这篇关于Servlet, Filter, Listener 启动与执行顺序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1129455

相关文章

python 线程池顺序执行的方法实现

《python线程池顺序执行的方法实现》在Python中,线程池默认是并发执行任务的,但若需要实现任务的顺序执行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录方案一:强制单线程(伪顺序执行)方案二:按提交顺序获取结果方案三:任务间依赖控制方案四:队列顺序消

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

Python中的filter() 函数的工作原理及应用技巧

《Python中的filter()函数的工作原理及应用技巧》Python的filter()函数用于筛选序列元素,返回迭代器,适合函数式编程,相比列表推导式,内存更优,尤其适用于大数据集,结合lamb... 目录前言一、基本概念基本语法二、使用方式1. 使用 lambda 函数2. 使用普通函数3. 使用 N

Spring Boot项目如何使用外部application.yml配置文件启动JAR包

《SpringBoot项目如何使用外部application.yml配置文件启动JAR包》文章介绍了SpringBoot项目通过指定外部application.yml配置文件启动JAR包的方法,包括... 目录Spring Boot项目中使用外部application.yml配置文件启动JAR包一、基本原理

解决若依微服务框架启动报错的问题

《解决若依微服务框架启动报错的问题》Invalidboundstatement错误通常由MyBatis映射文件未正确加载或Nacos配置未读取导致,需检查XML的namespace与方法ID是否匹配,... 目录ruoyi-system模块报错报错详情nacos文件目录总结ruoyi-systnGLNYpe

解决hive启动时java.net.ConnectException:拒绝连接的问题

《解决hive启动时java.net.ConnectException:拒绝连接的问题》Hadoop集群连接被拒,需检查集群是否启动、关闭防火墙/SELinux、确认安全模式退出,若问题仍存,查看日志... 目录错误发生原因解决方式1.关闭防火墙2.关闭selinux3.启动集群4.检查集群是否正常启动5.

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

解密SQL查询语句执行的过程

《解密SQL查询语句执行的过程》文章讲解了SQL语句的执行流程,涵盖解析、优化、执行三个核心阶段,并介绍执行计划查看方法EXPLAIN,同时提出性能优化技巧如合理使用索引、避免SELECT*、JOIN... 目录1. SQL语句的基本结构2. SQL语句的执行过程3. SQL语句的执行计划4. 常见的性能优