除了一个 servlet 之外,过滤器映射到 Struts2 的所有内容?
Posted
技术标签:
【中文标题】除了一个 servlet 之外,过滤器映射到 Struts2 的所有内容?【英文标题】:Filter mapping for everything to Struts2 besides one servlet? 【发布时间】:2011-04-20 02:28:23 【问题描述】:我有一个 Struts2 (2.1.8.1) Web 应用程序。我的 web.xml 看起来像,
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这被配置为将所有请求映射到 struts 过滤器。我想在我的 Web 应用程序中添加一个 servlet。我想将具有特定 url 模式的所有请求发送到该 servlet。我希望其他所有内容都转到我的 struts servlet。
我知道我只能将“*.action”映射到 struts servlet,但我讨厌 .action 位于我所有 URL 的末尾。
【问题讨论】:
【参考方案1】:在你的 struts.xml 添加:
<constant name="struts.action.excludePattern" value="/ServletToExcludeFromStruts*"/>
对于多个排除项,该值也以逗号分隔。见http://struts.apache.org/2.2.1/docs/webxml.html
【讨论】:
以上是关于除了一个 servlet 之外,过滤器映射到 Struts2 的所有内容?的主要内容,如果未能解决你的问题,请参考以下文章
Java Servlet - 将 servlet 映射到除字符串之外的每个 URL
除了在 web.xml 中声明过滤器之外,还有啥方法可以指定过滤器的顺序吗?
将 /xxx/yyy/zzz 动态映射到类 XxxYyyZzz.java 的 servlet 或过滤器
如何在 Jetty 中的 /* 上映射 servlet 过滤器?