mar*_*its 31 java servlets java-ee servlet-filters
在java Web应用程序中调用的Servlet.init()和Filter.init()方法的顺序是什么?首先叫哪一个?是否所有Servlet.init()方法都被调用,而不是任何Filter.doFilter方法?
Bal*_*usC 28
始终在webapp启动期间按顺序初始化过滤器,因为它们在中定义web.xml.
默认情况下,servlet在其url-pattern上的第一个HTTP请求期间初始化.但您也可以配置它们以在webapp启动期间使用<load-on-startup>可以指定其优先级的条目进行初始化.然后将按优先顺序加载它们.
例如
<servlet>
<servlet-name>myServlet</servlet-name>
<servlet-class>mypackage.MyServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
Run Code Online (Sandbox Code Playgroud)
如果有更多具有相同优先级顺序的servlet,那么这些servlet的加载顺序是未指定的,可能是任意的.但是,在过滤器初始化之后,但在调用过滤器之前,Servlet会以任何方式进行初始化.
Filter.init()web.xml:Servlet.init()Filter.doFilter()Servlet.init()Servlet.service()