我有一个servlet,myservlet,在servlet映射下的web.xml文件中,我已映射到url模式index.html。请求http://mydomain/myservlet/index.html会调用servlet。但是,对http://mydomain/myservlet/的请求将调用一个弹出式登录窗口。我改用/ *模式,但是这破坏了我的样式表等的路径,即使我将它们全部放在顶层也将导致本地硬编码帮助文件出现问题。
有什么方法可以使用URLRewriteFilter(或其他任何方法),以便将对http://mydomain/myservlet或http://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重写过滤器中不起作用。