筛选器映射到最后一个路径段



我正在尝试将过滤器映射到web.xml中的特定URL。问题是 url 中有一个动态路径段,我只需要将我的过滤器映射到以特定路径结尾的 URL。对于给定的网址:

http://company.com/webApp/aaa/end
http://company.com/webApp/bbb/end
http://company.com/webApp/ccc/end

我需要映射一个 servlet,如下所示:

<filter id="EndFilter">
    <filter-name>EndFilter</filter-name>
    <filter-class>com.company.EndFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>EndFilter</filter-name>
    <url-pattern>*/end</url-pattern> 
</filter-mapping>

我知道 */不是有效的通配符,但我不知道这种类型的映射是否可行。将 URL 与带有结尾 *.png 或 *.jpeg 通配符的图片等资源映射很容易,但我找不到映射简单 url 路径段的方法。

摘自 servlet 3.1 规范第 12 章:

在 Web 应用程序部署描述符中 ,以下语法用于定义 映射:

  • /字符开头并以/*后缀结尾的字符串用于路径映射。
  • *. 前缀开头的字符串用作扩展映射。
  • 空字符串("")是一种特殊的URL模式,它完全映射到应用程序的上下文根,即http://host:port/形式的请求。在这种情况下,路径信息/,servlet 路径和上下文路径为空字符串 ("" )。
  • 仅包含/字符的字符串指示应用程序的"默认"servlet。在这种情况下,servlet 路径是请求 URI 减去上下文路径,路径信息为 null。
  • 所有其他字符串仅用于完全匹配。

所以看起来这是不可能的。

相关内容

  • 没有找到相关文章

最新更新