java - Servlet.init() 和 Filter.init() 调用顺序

标签 java servlets jakarta-ee servlet-filters

在 java web 应用程序中调用 Servlet.init() 和 Filter.init() 方法的顺序是什么?哪个是第一个被调用的?是否所有的 Servlet.init() 方法都比任何 Filter.doFilter 方法都被调用过?

最佳答案

过滤器总是在 webapp 启动期间按照它们在 web.xml 中定义的顺序进行初始化。 .

默认情况下,servlet 仅在其 url 模式的第一个 HTTP 请求期间初始化。但是您也可以使用 <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 无论如何都会在过滤器初始化之后被初始化,但在过滤器调用之前

关于java - Servlet.init() 和 Filter.init() 调用顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2906344/

相关文章:

java - 有什么方法可以在tomcat中的不同应用程序之间共享 session 状态?

java - 在Java中将从两个数据库提取的对象列表写入txt文件的最快方法

java - HTML 表单方法 POST 调用 java servlet doGet 方法

java - Http 获取响应 utf-8

java - 如何运行java servlet?

java - 基于多个参数的对象列表排序

java - 将 arraylist 与字符串、int、double 一起使用

java - 设置新的像素值

java - 在java中的文件中向后跳

jakarta-ee - Apache Tomcat MimeTypes - 有什么方法可以获取它们?