配置web.xml(Tomcat 5)以使一个servlet处理所有传入请求。

12 浏览
0 Comments

配置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
    /*


但结果相同,都不起作用... 有人有什么建议吗?

0
0 Comments

问题的原因是配置的web.xml中的servlet只会接收包含至少一个目录的请求,如果直接访问域名或域名加斜杠,servlet将不会被调用。这导致了403 Forbidden错误。解决方法是在web.xml中使用标签定义index.jsp作为欢迎页,并在index.jsp中将请求重定向到servlet。

0
0 Comments

问题的原因是需要将所有进来的请求都交给一个servlet处理,而不是分别处理不同的URL。解决方法有两种:一种是在web.xml中配置<url-pattern>/*</url-pattern>,确保webapp在根上下文中部署;另一种方法是创建一个ServletFilter来处理请求,并将其映射到相同的URL。两种方法各有优缺点,根据具体情况选择即可。如果只是将所有请求转发到另一个站点,那么两种方法都可以使用。

0
0 Comments

问题的原因是想要通过一个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="/"之间的区别,我以前看到过定义为"/"的情况,但具体取决于应用程序的要求。

0