8

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

我明白这种模式

    /示例/路径/*

将匹配一个 URL

    http://example.com/example/path/

并且这似乎有效。然而,同样的模式也会匹配

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

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

澄清:不允许以斜杠结尾的 URL 模式。

4

2 回答 2

8

您很可能无法通过在 web.xml 中进行映射来做到这一点。

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

于 2009-01-19T22:03:49.183 回答
1

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

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

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

于 2015-08-20T03:32:03.203 回答