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

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

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

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

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

          

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