我有一个servlet,myservlet,在servlet映射下的web.xml文件中,我已映射到url模式index.html。请求http://mydomain/myservlet/index.html会调用servlet。但是,对http://mydomain/myservlet/的请求将调用一个弹出式登录窗口。我改用/ *模式,但是这破坏了我的样式表等的路径,即使我将它们全部放在顶层也将导致本地硬编码帮助文件出现问题。

有什么方法可以使用URLRewriteFilter(或其他任何方法),以便将对http://mydomain/myservlethttp://mydomain/myservlet/的传入请求重新映射为http://mydomain/myservlet/index.html,但没有触及其他内容?

(我正在本地机器上的Tomcat上测试servlet,尽管它已部署在旧的Sun Web服务器上。)

最佳答案

我认为这应该可以解决问题:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN" "http://tuckey.org/res/dtds/urlrewrite3.0.dtd">

<urlrewrite>
    <rule>
        <from>^/myservlet[/]{0,1}$</from>
        <to>/myservlet/index.html</to>
    </rule>
</urlrewrite>


[/]{0,1}部分就像做[/]?来表示正则表达式中的零个或一个匹配项,但是使用?限定符在url重写过滤器中不起作用。

08-08 02:11