`
a25765339
  • 浏览: 62574 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【转】web.xml节点加载顺序

 
阅读更多
可以肯定的是,节点的加载顺序与它们在 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 类似。

【加载Spring】
比如filter 需要用到 bean ,如果加载顺序是先加载filter后加载spring,则filter中初始化操作中的bean为null;
所以,如果过滤器中要使用到 bean,可以将spring 的加载 改成 Listener的方式 :


<listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
</listener>



最终结论:
web.xml 的加载顺序是:[context-param -> listener -> filter -> servlet -> spring] ,而同类型节点之间的实际程序调用的时候的顺序是根据对应的 mapping 的顺序进行调用的。




分享到:
评论

相关推荐

    web.xml加载顺序与web.xml常用节点解析

    理解`web.xml`的加载顺序和各个节点的作用对于开发和维护高质量的Web应用至关重要。 1. **加载顺序**: - 当应用服务器启动并加载Web应用程序时,首先读取`web.xml`文件。 - 首先解析的是`&lt;context-param&gt;`节点,...

    Web.xml加载顺序[汇编].pdf

    《Web.xml加载顺序解析》 在Web应用开发中,`web.xml`是部署描述符,它定义了应用程序的行为和配置。了解`web.xml`的加载顺序对于优化和调试Web应用程序至关重要。本文将深入探讨`web.xml`的加载流程,以及各个元素...

    web.xml各种配置

    容器启动时会加载并读取web.xml文件,因此理解web.xml的配置项对于Web应用开发至关重要。 ### web.xml的内容 web.xml中可以定义多个配置元素,包括但不限于: - **icon**: 指定IDE和GUI工具用来表示Web应用的图像...

    WEB.XML详解

    web.xml的配置顺序也遵循一定的规则,比如ServletContext总是在其他组件之前被创建,而servlet的加载顺序则根据值的大小和实际出现的顺序进行配置。正确理解web.xml的每个标签及其作用是开发Java EE Web应用的基础。

    web.xml中&lt;/context-param&gt;等配置的作用

    了解 web.xml 的配置信息和加载顺序对于理解框架的流程至关重要。在 web.xml 中,&lt;context-param&gt; 配置起着非常重要的作用,它在 web 项目启动时发挥着关键的作用。 首先,让我们来了解一下 web 项目的启动过程。在...

    web.xml配置大全[汇编].pdf

    本文将深入探讨web.xml中的主要配置元素,包括listener、filter、servlet的加载顺序以及它们的工作原理。 一、启动过程与加载顺序 1. 当一个WEB项目启动时,Web容器首先读取web.xml文件,解析其中的和节点。 2. ...

    web.xml配置大全[定义].pdf

    本文将深入探讨`web.xml`中的`listener`、`filter`、`servlet`的加载顺序以及相关配置元素的详细解释。 首先,`web.xml`在Web应用启动时被读取,它包含`&lt;listener&gt;`、`&lt;context-param&gt;`等节点。`&lt;listener&gt;`定义了...

    web.xml中servlet, bean, filter, listenr 加载顺序_动力节点Java学院整理

    web.xml中的Servlet、Bean、Filter、Listener加载顺序详解 在Java Web应用程序中,web.xml文件扮演着非常重要的角色,它定义了Web应用程序的配置信息,包括Servlet、Bean、Filter、Listener等组件的配置。其中,...

    DWR.xml配置文件说明书(含源码)

    "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd"&gt; 整个配置文件的大体结构如下: &lt;creator id="..." class="..."/&gt; &lt;converter id="..." class="..."/&gt;...

    web项目的启动时文件加载顺序1

    本文将深入探讨这个主题,重点关注Web容器如何处理配置文件`web.xml`,以及不同组件(如`context-param`、`listener`、`filter`和`servlet`)的加载顺序。 首先,当一个Web项目启动时,Web容器(如Tomcat、Jetty等...

    Apress.Pro.XML.Development.with.Java.Technology.Sep.2006

    XPath是用于在XML文档中查找信息的语言,通过路径表达式定位XML节点。 7. **XSLT(Extensible Stylesheet Language Transformations)**:XSLT用于转换XML文档,通过定义模板规则,可以将XML转换成其他格式,如HTML...

    XMLDemo2学习研究例子.rar

    DOM将整个XML文档加载到内存中形成一个树形结构,方便遍历;SAX是事件驱动模型,按顺序读取XML,不保存整个文档;而StAX则允许程序以流式方式读写XML,适合处理大型文件。 2. **XPath和XSLT**:XPath是查询XML文档...

    北京动力节点-专题08-Servlet3.0特性.pdf

    在Servlet3.0中,开发者可以不再依赖传统的web.xml配置文件,转而使用注解进行组件(Servlet、Filter和Listener)的注册。 1. **Servlet注解**: 使用`@WebServlet`注解可以直接在Servlet类上声明,从而替代在web....

    flash+xml.rar_FLASH XML_Flash XML Picture_html轮换图片_toppicxml.xml

    在Web开发中,Flash曾是创建动画和交互性内容的流行工具,而XML(eXtensible Markup Language)则是一种用于存储和传输数据的语言,因其结构清晰、易于解析,常被用来作为Flash内容的数据源。 描述提到的“图片轮换...

    web.config配置节介绍

    `web.config`文件是一个基于XML格式的文件,其根节点为`&lt;configuration&gt;`。主要的子节点包括: - `&lt;configSections&gt;`:用于定义配置文件中可用的配置节。 - `&lt;appSettings&gt;`:用于存储应用程序级别的键值对配置信息...

Global site tag (gtag.js) - Google Analytics