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

相关文章

Redis在windows环境下如何启动

《Redis在windows环境下如何启动》:本文主要介绍Redis在windows环境下如何启动的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis在Windows环境下启动1.在redis的安装目录下2.输入·redis-server.exe

解决SpringBoot启动报错:Failed to load property source from location 'classpath:/application.yml'

《解决SpringBoot启动报错:Failedtoloadpropertysourcefromlocationclasspath:/application.yml问题》这篇文章主要介绍... 目录在启动SpringBoot项目时报如下错误原因可能是1.yml中语法错误2.yml文件格式是GBK总结在启动S

springboot filter实现请求响应全链路拦截

《springbootfilter实现请求响应全链路拦截》这篇文章主要为大家详细介绍了SpringBoot如何结合Filter同时拦截请求和响应,从而实现​​日志采集自动化,感兴趣的小伙伴可以跟随小... 目录一、为什么你需要这个过滤器?​​​二、核心实现:一个Filter搞定双向数据流​​​​三、完整代码

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

SpringBoot启动报错的11个高频问题排查与解决终极指南

《SpringBoot启动报错的11个高频问题排查与解决终极指南》这篇文章主要为大家详细介绍了SpringBoot启动报错的11个高频问题的排查与解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一... 目录1. 依赖冲突:NoSuchMethodError 的终极解法2. Bean注入失败:No qu

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

一文带你了解SpringBoot中启动参数的各种用法

《一文带你了解SpringBoot中启动参数的各种用法》在使用SpringBoot开发应用时,我们通常需要根据不同的环境或特定需求调整启动参数,那么,SpringBoot提供了哪些方式来配置这些启动参... 目录一、启动参数的常见传递方式二、通过命令行参数传递启动参数三、使用 application.pro

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于

Spring Boot拦截器Interceptor与过滤器Filter详细教程(示例详解)

《SpringBoot拦截器Interceptor与过滤器Filter详细教程(示例详解)》本文详细介绍了SpringBoot中的拦截器(Interceptor)和过滤器(Filter),包括它们的... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)详细教程1. 概述1

SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法

《SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法》本文主要介绍了SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法,具有一定的参考价值,感兴趣的可以了解一下... 目录方法1:更改IDE配置方法2:在Eclipse中清理项目方法3:使用Maven命令行在开发Sprin