什么是在Tomcat中使用的conf / web.xml而不是WEB-INF中的那个?

时间:2011-05-09 13:01:24

标签: java tomcat web.xml

我的Tomcat部署在conf文件夹下有一个web.xml文件。 什么是在Tomcat中使用的conf / web.xml而不是WEB-INF中的那个?我需要吗?

2 个答案:

答案 0 :(得分:28)

是的,你绝对需要它!它包含default servletJSP servlet的声明。没有它,所有未映射到任何servlet(例如CSS / JS / images)的请求都将停止工作,所有JSP请求将作为普通的未解析源代码返回。

此外,它还包含一个大的mime类型映射,以便根据文件扩展名设置正确的内容类型。如果没有它,所有内容将以application/octet-stream的形式发送,浏览器可能无法解释内容。

删除Tomcat自己的web.xml。它包含使您的Web应用程序正常工作所需的最少设置。您最多可以更改默认servlet和JSP servlet的初始化参数,例如启用/禁用目录列表以及启用/禁用空白修剪和其他次要性能设置。您还可以在那里添加额外的mime类型映射,但您也可以在webapp自己的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.   -->

答案 1 :(得分:7)

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