

新闻资讯
技术学院容器先初始化所有再初始化所有,且均按web.xml中声明顺序执行init;请求处理时按顺序执行filter,再调用匹配的servlet。
和
web.xml 中的 ,再初始化所有 。
根据 Servlet 规范,Web 容器(如 Tomcat)在应用启动时按以下顺序处理:
和 声明Filter.init()
Servlet.init()
也就是说,哪怕某个 servlet 在 web.xml 中写在 filter 前面,只要它被声明为 ,就不会比任何 先 init —— 规范强制要求 filter 优先就绪。
真正影响请求处理流程的是映射(mapping)配置,而非声明顺序:
中的 或 决定了哪些请求会经过该 filter 决定了哪个 servlet 负责处理匹配的请求 在 web.xml 中的顺序)→ 目标 servlet → filter 链逆序执行 doFilter 后续逻辑(即“出栈”)虽然 servlet 总是在 filter 之后初始化,但你可以用 指定 servlet 的相对优先级(仅限 servlet 之间):
不必纠结“谁先加载”,重点应放在:
基本上就这些。规范很明确,行为可预期,关键还是 mapping 配得对不对。