将servlet映射到mydomain / myservlet /和mydomain / myservlet / index.html

时间:2015-06-29 14:45:27

标签: tomcat servlets url-rewriting tuckey-urlrewrite-filter

我有一个servlet,myservlet,它位于servlet-mapping下的web.xml文件中,我已经映射到url-pattern,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服务器上。)

1 个答案:

答案 0 :(得分:0)

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

<?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}部分就像执行[/]?来表示正则表达式中的零或一个匹配一样,但使用?限定符在网址重写过滤器中不起作用。