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
不应考虑编辑。