`

<转>web.xml 中的listener、 filter、servlet 加载顺序及其详解

阅读更多
转载自 ailongni
最终编辑 ailongni

    在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰。

        首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关。即不会因为 filter 写在 listener 的前面而会先加载 filter。最终得出的结论是:listener -> filter -> servlet

        同时还存在着这样一种配置节:context-param,它用于向 ServletContext 提供键值对,即应用程序上下文信息。我们的 listener, filter 等在初始化时会用到这些上下文中的信息,那么 context-param 配置节是不是应该写在 listener 配置节前呢?实际上 context-param 配置节可写在任意位置,因此真正的加载顺序为:context-param -> listener -> filter -> servlet

        对于某类配置节而言,与它们出现的顺序是有关的。以 filter 为例,web.xml 中当然可以定义多个 filter,与 filter 相关的一个配置节是 filter-mapping,这里一定要注意,对于拥有相同 filter-name 的 filter 和 filter-mapping 配置节而言,filter-mapping 必须出现在 filter 之后,否则当解析到 filter-mapping 时,它所对应的 filter-name 还未定义。web 容器启动时初始化每个 filter 时,是按照 filter 配置节出现的顺序来初始化的,当请求资源匹配多个 filter-mapping 时,filter 拦截资源是按照 filter-mapping 配置节出现的顺序来依次调用 doFilter() 方法的。

        servlet 同 filter 类似,此处不再赘述。

       由此,可以看出,web.xml 的加载顺序是:context-param -> listener -> filter -> servlet ,而同个类型之间的实际程序调用的时候的顺序是根据对应的 mapping 的顺序进行调用的。

 

web.xml文件详解

分享到:
评论

相关推荐

    web.xml 中的listener、 filter、servlet 加载顺序及其详解.doc

    Web.xml 中的 listener、filter、servlet 加载顺序及其详解 在 Web 应用程序中,web.xml 文件扮演着非常重要的角色,它定义了 Web 应用的结构和配置。其中,listener、filter、servlet 是三个非常重要的概念,它们...

    web.xml 文件详解

    `web.xml`文件主要由两部分组成:`&lt;web-app&gt;`元素内的全局配置和`&lt;servlet&gt;`、`&lt;servlet-mapping&gt;`、`&lt;filter&gt;`、`&lt;filter-mapping&gt;`、`&lt;listener&gt;`等元素定义的特定组件配置。 ```xml &lt;web-app&gt; &lt;!-- 全局配置 --...

    java/jsp web.xml详解

    在Java和JSP开发中,`web.xml`文件是一个至关重要的组成部分,它是Servlet容器(如Tomcat)的部署描述符。这个文件包含了关于Web应用程序的配置信息,包括Servlet的定义、过滤器、监听器、会话配置、MIME类型映射、...

    web.xml配置汇总(servlet2.3)

    ### Web.xml配置详解(Servlet 2.3) #### 一、概述 `web.xml`作为Java Web应用程序的核心配置文件,在Servlet 2.3规范中扮演着至关重要的角色。该文件通常位于WEB-INF目录下,用于定义和配置Web应用程序的各种...

    Web.xml配置文件.pdf

    5. `&lt;filter-mapping&gt;`:将过滤器与URL模式或Servlet关联,控制过滤器的执行顺序。例如: ```xml &lt;filter-mapping&gt; &lt;filter-name&gt;MyFilter&lt;/filter-name&gt; &lt;url-pattern&gt;/protected/*&lt;/url-pattern&gt; &lt;/filter-...

    Tomcat(二) Tomcat实现:Servlet与web.xml介绍 以及 源码分析Tomcat实现细节1

    在web.xml中,你可以通过`&lt;servlet&gt;`和`&lt;servlet-mapping&gt;`元素定义Servlet。 ```xml &lt;servlet&gt; &lt;servlet-name&gt;MyServlet&lt;/servlet-name&gt; &lt;servlet-class&gt;com.example.MyServlet&lt;/servlet-class&gt; &lt;/servlet&gt; ...

    web.xml 详解

    ### Web.xml 详解 #### 1. 定义头和根元素 在开始解析`web.xml`文件前,我们先了解其基本结构。部署描述符文件即`web.xml`文件,像所有XML文件一样,必须以一个XML头开始。这个头声明指定了可用的XML版本及文件的...

    详解Spring mvc的web.xml配置说明

    除了以上提到的配置,`web.xml`还可以包含错误页面定义、安全配置(如`&lt;security-constraint&gt;`)、本地化支持(`locale-encoding-mapping-list`)等。正确的配置有助于提升应用程序的性能、安全性和可维护性。理解并...

    Web.xml常用元素

    ### Web.xml常用元素详解 `Web.xml`是Java Web应用程序中的核心配置文件,它用于配置应用程序的上下文信息、servlet映射、过滤器、监听器等关键组件。以下是对`Web.xml`中常见元素的详细解析: #### &lt;web-app&gt; - ...

    部署描述文件web.xml配置详解.doc

    ### 部署描述文件web.xml配置详解 #### 一、引言 在Java Web开发中,`web.xml`是一个非常重要的配置文件,它作为Web应用程序的部署描述符,负责管理与应用程序相关的各项配置信息。本文将深入解析`web.xml`的各项...

    WEB.XML详解

    WEB.xml详解主要涉及了Java EE Web应用程序的标准配置文件web.xml的详细使用说明,这是Servlet规范中定义的一个配置文件,用于配置web应用的初始化参数、servlet和filter、监听器等组件。 首先,web.xml文件在Web...

    Tomcat Web.xml 详解

    `web.xml` 文件是 Java Web 应用中的核心配置文件之一,它定义了应用程序的各种配置信息,包括但不限于 Servlet 的配置、过滤器(Filter)的配置、监听器(Listener)的配置等。通过 `web.xml` 文件,开发人员可以...

    web.xml 2.4详细说明

    本文将深入探讨`web.xml 2.4`版本中的关键节点及其详细说明,帮助开发者更好地理解和运用这一配置文件。 ### 1. `web-app`节点 这是`web.xml`文件的根元素,定义了整个Web应用的基本信息。`version`属性用于指定`...

    Tomcat中用web.xml控制Web应用详解

    web.xml 文件的加载顺序是:context-param -&gt; listener -&gt; filter -&gt; servlet。在这个顺序中,context-param 元素将被首先加载,然后是 listener 元素,接着是 filter 元素,最后是 servlet 元素。 结论 web.xml ...

    web.xml配置详解

    web.xml 是一个在 Java web 应用程序中用于配置 servlet、filter、listener、jsp 等组件的文件。它是 Java Servlet 规范的一部分,用于描述一个 web 应用程序的结构和组件关系。 Servlet 配置 在 web.xml 文件中,...

    web.xml文件配置.doc

    加载顺序遵循以下规则:context-param -&gt; listener -&gt; filter -&gt; servlet。context-param用于设置应用程序上下文参数,这些参数可以在整个应用程序中被访问,包括在listener和filter初始化时。listener是用于监听...

    web.xml文件的作用

    `web.xml`文件可以通过`&lt;welcome-file-list&gt;`元素来指定一组欢迎页面,服务器会按照列表中页面的顺序尝试加载它们。示例代码如下: ```xml &lt;welcome-file-list&gt; &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt; ...

    web.xml文件详解

    `&lt;filter&gt;`标签用于定义过滤器,过滤器可以对进入和离开Web组件(如Servlet)的请求进行预处理或后处理。一个典型的例子是登录检查过滤器,它可以确保只有已登录的用户才能访问某些页面。例如: ```xml &lt;filter&gt; ...

Global site tag (gtag.js) - Google Analytics