一尘不染

Servlet.init()和Filter.init()调用序列

java

在Java
Web应用程序中按什么顺序调用Servlet.init()和Filter.init()方法?首先叫哪个?是否比所有Filter.doFilter方法都先调用了所有Servlet.init()方法?


阅读 265

收藏
2020-12-03

共1个答案

一尘不染

筛选器始终在webapp启动期间按照定义的顺序进行初始化web.xml

默认情况下,仅在第一个HTTP请求期间按其url模式初始化servlet。但是,您也可以使用<load-on- startup>条目指定它们的优先级,并将它们配置为在webapp启动期间进行初始化。然后将按优先级顺序加载它们。
例如

<servlet>
    <servlet-name>myServlet</servlet-name>
    <servlet-class>mypackage.MyServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

如果有更多具有相同优先级顺序的servlet,则这些servlet的加载顺序未指定,并且可以是任意的。但是,Servlet是在过滤器初始化 之后
调用过滤器 之前 以任何方式初始化的。

2020-12-03