【问题标题】:How to NOT run servlet filters for specific url-patterns?如何不为特定的 url 模式运行 servlet 过滤器?
【发布时间】:2012-08-02 22:44:24
【问题描述】:

我想创建一个 servlet 过滤器,它适用于我的所有 URL 路径,除了少数指定(或理想情况下由正则表达式指定)。

这可能吗?不幸的是,我无法更改路径,以使我所有其他 URL 都以常见的内容开头....

【问题讨论】:

标签: java tomcat servlets servlet-filters web.xml


【解决方案1】:

您不能通过符合规范的配置来做到这一点。您确实有几个选择:

  1. 重新编写您的 <filter-mapping>s,使其更加具体(例如,/foo 变为 /foo/bar/foo/baz,但不是 /foo/foo)。
  2. 更改过滤器中的代码,使其了解“排除”URI 模式的列表。如果你想在web.xml 中配置它们,你甚至可以使用<init-param>,但你必须自己做真正的工作。
  3. 添加一组<filter-mapping>s 和<servlet-mapping>s, 共享一个共同的 URI 前缀并开始使用 那些(保留旧的映射)。

【讨论】:

  • 谢谢!目前,我使用选项 2,但最终可能会像 1 一样重构所有路径。
  • 是的,我认为选项 #2 可能是从 A 点到 B 点最快的路径。
猜你喜欢
  • 2014-10-20
  • 2011-10-17
  • 2012-07-23
  • 2011-04-09
  • 2015-03-06
  • 2015-10-06
  • 2012-11-10
  • 2014-06-13
  • 2011-11-01
相关资源
最近更新 更多