Java 关于将特定servlet作为默认tomcat servlet命中的查询

Java 关于将特定servlet作为默认tomcat servlet命中的查询,java,tomcat,servlets,Java,Tomcat,Servlets,在我问这个问题之前,我已经经历了这一切 通常当我们浏览http://localhost:80/我们看到,。/tomcat/conf/web.xml(文件1)由servlet容器选择,但不是。/tomcat/webapps/ROOT/web-INF/web.xml(文件2),文件2中没有任何内容 现在,我可以访问企业应用程序,它作为默认的TomcatServlet(DTS)提供,当我说DTS时,它的意思是,当我键入http://localhost:80/我以http://localhost/ent

在我问这个问题之前,我已经经历了这一切

通常当我们浏览
http://localhost:80/
我们看到,
。/tomcat/conf/web.xml
(文件1)由servlet容器选择,但不是
。/tomcat/webapps/ROOT/web-INF/web.xml
(文件2),文件2中没有任何内容

现在,我可以访问企业应用程序,它作为默认的TomcatServlet(DTS)提供,当我说DTS时,它的意思是,当我键入
http://localhost:80/
我以
http://localhost/ent-app/

我的问题:

在中,它表示将所需的应用程序放在根文件夹中,以使特定的servlet成为DTS。但在我的例子中,根文件夹的WEB-INF/WEB.xml与ent应用程序无关,请帮助我理解,servlet容器是如何将我的ent应用程序挑选为DTS的


我需要在我的机器的tomcat文件夹中检查哪些内容才能理解这一点?

如果您想将
/
重定向到
/ent-app
,则需要对其进行配置。
ROOT
web应用程序没有神奇之处:您需要自己配置它来执行重定向


您可以编写自己的servlet/过滤器,映射到
/*
,将所有内容重定向到
/ent-app
,也可以使用类似的内容,并根据自己的喜好对其进行配置。

根文件夹与我的特定应用程序无关。ROOT/WEB-INF/WEB.xml具有以下内容。。。欢迎来到Tomcat欢迎来到Tomcat如果ROOT没有提供任何魔力,那么为什么上面的链接要在ROOT中替换我的servlet呢?这意味着,我需要检查tomcat/webapps/ent-app/web-INF/web.xml中的web.xml,以检查servlet映射是如何完成的。您的
ent-app
应用程序将只发送URL以
/ent-app/
开头的请求。这意味着如果您请求
/foo
,那么请求将转到其他应用程序。假设
/foo
没有映射到任何其他web应用程序,它将被发送到
根应用程序。只需编写一个从根web应用程序到
/entapp
应用程序的简单重定向程序。但为什么从tomcat/conf/web.xml指向defaultservlet呢?这是指导操作的web.xml。所以我的问题是,理想情况下,这个web.xml必须位于ROOT/web-INF文件夹中。
CATALINA_BASE/conf/web.xml
是所有web应用程序的默认
web.xml
。你几乎不应该编辑它。您需要的是
ROOT
webapp中执行重定向的servlet(或过滤器)。这在没有
WEB-INF/WEB.xml
的情况下是可以做到的,但如果这样做的话,会更简单
CATALINA_BASE/conf/web.xml
不应考虑编辑。