配置web.xml(Tomcat 5)以使一个servlet处理所有传入请求。
配置web.xml(Tomcat 5)以使一个servlet处理所有传入请求。
我希望一个servlet能够处理所有的请求,无论路径如何。我在一个共享主机环境中,可以访问并配置自己的web.xml文件。
我在web.xml中进行了如下配置,但在Tomcat 5上不起作用:
Redirect Redirect Redirect com.Redirect host www.myredirectdomain.com redirect-type 301 Redirect /
以上配置对于以路径中的目录开头的任何内容都起作用,例如:
www.mydomain.com/anypath1/anypath2... www.mydomain.com/anypath1
但是对于以下内容不起作用:
www.mydomain.com/ 或 www.mydomain.com
我还尝试了以下servlet映射配置:
Redirect /*
但结果相同,都不起作用... 有人有什么建议吗?
问题的原因是想要通过一个Servlet拦截所有请求,但在Tomcat 5中,需要对web.xml进行配置。解决方法是将webapp挂载到默认上下文("ROOT"),并将Servlet映射到web.xml中的默认servlet。
要实现这个目标,可以在web.xml中添加以下配置:
Redirect /
问题可能出在ROOT上下文。访问www.mydomain.com/和www.mydomain.com时会显示什么内容?如果共享主机环境允许访问和修改$TOMCAT5_HOME/conf目录,有几种方法可以解决这个问题。
最简洁的方法是在$TOMCAT5_HOME/conf/server.xml中添加以下配置:
这里假设你的应用程序叫做"your-app.war"。
至于Context path=""和path="/"之间的区别,我以前看到过定义为"/"的情况,但具体取决于应用程序的要求。