我的Tomcat部署在conf文件夹下有一个web.xml文件。 什么是在Tomcat中使用的conf / web.xml而不是WEB-INF中的那个?我需要吗?
答案 0 :(得分:28)
是的,你绝对需要它!它包含default servlet和JSP 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>