用于匹配以斜杠(“/”)结尾的URL的Servlet URL模式

时间:2009-01-19 21:39:24

标签: java servlets web.xml url-pattern

我想指定一个Servlet网址模式,以匹配以斜杠(“/”)结尾且只有斜杠的网址。

我理解模式

    /example/path/*

将匹配

的网址
    http://example.com/example/path/

并且这似乎有效。但是,相同的模式也会匹配

的URL
    http://example.com/example/path/a/
    http://example.com/example/path/b/
    http://example.com/example/path/c/

我只是在寻找一个只匹配http://example.com/example/path/的网址格式,而不会匹配http://example.com/example/path/a/等等。

澄清:不允许以斜杠结尾的网址格式。

2 个答案:

答案 0 :(得分:8)

很可能你不能通过web.xml中的映射来做到这一点。

您可以做的是将servlet映射到/ mypath / *,然后通过request.getPathInto()检查/ mypath /之后的部分。如果是“/”,请运行您的代码。如果不是,则返回404错误。

答案 1 :(得分:1)

在NetBeans中,如果我转到web.xml文件上的Servlets选项卡,IDE会抱怨,"错误:URL模式不能以斜杠(/)"结尾。从URL spec,它读取,

httpurl        = "http://" hostport [ "/" hpath [ "?" search ]]
hpath          = hsegment *[ "/" hsegment ]

所以是的,带有结尾斜杠的URI无效。