web.xml中的和加载顺序是什么

admin 百科 12
容器先初始化所有再初始化所有,且均按web.xml中声明顺序执行init;请求处理时按顺序执行filter,再调用匹配的servlet。

web.xml中的和加载顺序是什么-第1张图片-佛山资讯网

web.xml 中的 <filter></filter><servlet></servlet> 本身没有直接的“加载顺序”依赖,但它们的 初始化顺序 是有明确规则的:容器先初始化所有 <filter></filter>,再初始化所有 <servlet></servlet>

filter 初始化早于 servlet

根据 Servlet 规范,Web 容器(如 Tomcat)在应用启动时按以下顺序处理:

  • 解析 web.xml,收集所有 <filter></filter><servlet></servlet> 声明
  • 按 web.xml 中声明的**先后顺序**,依次调用每个 Filter.init()
  • 再按 web.xml 中声明的**先后顺序**,依次调用每个 Servlet.init()

也就是说,哪怕某个 servlet 在 web.xml 中写在 filter 前面,只要它被声明为 <servlet></servlet>,就不会比任何 <filter></filter> 先 init —— 规范强制要求 filter 优先就绪。

filter-mapping 和 servlet-mapping 决定执行顺序

真正影响请求处理流程的是映射(mapping)配置,而非声明顺序:

标签: 编码 app tomcat

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~