gpt4 book ai didi

java - 搜索 Servlets : where are web. xml 文件?多个 web.xml 文件如何合并?

转载 作者:搜寻专家 更新时间:2023-11-01 03:05:33 25 4
gpt4 key购买 nike

我从 Servlet 3 规范中知道 web.xml 是在 WEB-INF/ 目录中查找的。但是,我相信还有其他 web.xml 文件。例如,Tomcat has a web.xml file under $CATALINA_BASE/conf/ .我认为还可以将 web.xml 文件放在 $CATALINA_HOME/conf/ 下。

web.xml 文件可以有多个吗?如果是这样,它们可以在什么位置,它们的处理顺序是什么,“合并”它们的语义是什么?(Servlet 规范谈到合并 web-fragment.xml 文件,但我认为这是一个单独的事情。)

最佳答案

您的问题有两个不同的方面。

Tomcat自带的web.xml

servlet 规范允许容器(此处为 Tomcat)定义一些默认组件(JSP、默认 servlet...)。如您所见,Tomcat 提供了一个默认的 web.xml 来执行此操作(并且只有一个,在 $CATALINA_BASE/conf/web.xml 中)。该 web.xml 允许 Tomcat 配置 among other things :

  1. 默认的 servlet(直接提供文件)
  2. 用于编译和执行 jsp(和 jspx)文件的 jsp servlet
  3. 不同的 mime 映射

Tomcat 的 web.xml 总是在应用程序中的 web.xml 之前被解析。因此任何应用程序都可以覆盖 tomcat 定义的值。

所以回答你的问题:在 Tomcat 中,有一个 web.xml 适用于所有 webapps(在 $CATALINA_BASE/conf 目录中)和 webapp 自己的 web.xml。

网络片段.xml

version 3.0 of the servlet specification ,web.xml 可以是 WEB-INF/web.xml 和容器可以在 webapp 类路径中找到的一些 META-INF/web-fragment.xml 的组合(WEB-INF/classesWEB-INF/lib).

可以确定解析这些网页片段的顺序。

并且 Tomcat 可以在上下文中使用 logEffectiveWebXml 属性记录生成的 web.xml (see doc)

关于java - 搜索 Servlets : where are web. xml 文件?多个 web.xml 文件如何合并?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24142497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com