在Tomcat中,与WEB-INF中的那个相比,conf/web.xml用于什么?

28
我的Tomcat部署在conf文件夹下有一个web.xml文件。相对于WEB-INF下的那个,conf/web.xml在Tomcat中有什么用途?我需要它吗?
2个回答

32

是的,你肯定需要它!它包含了默认servlet和JSP servlet的声明,以及其他内容。默认servletJSP servlet是其中之一。如果没有它,所有未映射到任何Servlet的请求(例如CSS/JS/images)将停止工作,并且所有JSP请求将返回为纯文本源代码。

此外,它还包含大量的MIME类型映射,以便根据文件扩展名设置正确的内容类型。如果没有它,所有内容都将作为application/octet-stream传递,并且浏览器可能无法解释内容。

不要删除Tomcat自己的web.xml。它包含了最少的设置,使您的Web应用程序正常工作所需的设置。您最多可以在那里更改默认servlet和JSP servlet的初始化参数,例如启用/禁用目录列表和启用/禁用空格修剪以及其他小型性能设置。您也可以在那里添加额外的MIME类型映射,但您也可以在您Web应用程序自己的web.xml中执行此操作。这也明确在Tomcat的web.xml的第一个注释块中提到:

<!-- ======================== Introduction ============================== -->
<!-- This document defines default values for *all* web applications      -->
<!-- loaded into this instance of Tomcat.  As each application is         -->
<!-- deployed, this file is processed, followed by the                    -->
<!-- "/WEB-INF/web.xml" deployment descriptor from your own               -->
<!-- applications.                                                        -->
<!--                                                                      -->
<!-- WARNING:  Do not configure application-specific resources here!      -->
<!-- They should go in the "/WEB-INF/web.xml" file in your application.   -->

好的,它包含了我本地应用程序web.xml文件中可能未定义的部分。听起来不错。谢谢。 - sproketboy
2
值得一提的是,自己阅读web.xml文件并理解Servlet容器的默认操作也是值得努力的。 - BalusC

9
< p >位于 WEB-INF 下的 web.xml 是一种部署描述符,仅适用于当前Web应用程序,并因此控制该Web应用程序的运行。它允许您定义servlet、servlet映射到URL、上下文(启动)参数等。
Tomcat的 conf 目录下的 web.xml 定义了Tomcat实例上所有应用程序的默认参数。理论上,这可能会丢失,但随后部署的所有Web应用程序都必须在其中定义所有设置,以便.jsp页面由JspServlet处理(将编译它们并加载生成的servlet等),所有mime映射和默认文件列表(对于那些没有指定的应用程序)。将其视为一组默认值,您始终可以覆盖它们,但是它们存在是为了方便您,因此您不需要为每个应用程序定义它们。 < / p >

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接