在Java Web应用程序中按什么顺序调用Servlet.init()和Filter.init()方法?首先叫哪个?是否比所有Filter.doFilter方法都先调用了所有Servlet.init()方法?
筛选器始终在webapp启动期间按照定义的顺序进行初始化web.xml。
web.xml
默认情况下,仅在第一个HTTP请求期间按其url模式初始化servlet。但是,您也可以使用<load-on- startup>条目指定它们的优先级,并将它们配置为在webapp启动期间进行初始化。然后将按优先级顺序加载它们。 例如
<load-on- startup>
<servlet> <servlet-name>myServlet</servlet-name> <servlet-class>mypackage.MyServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet>
如果有更多具有相同优先级顺序的servlet,则这些servlet的加载顺序未指定,并且可以是任意的。但是,Servlet是在过滤器初始化 之后 但 在 调用过滤器 之前 以任何方式初始化的。