我使用urlrewrite已经可以重定向了,但是重定向后不会经过我自己写的过滤器,我想先经过urlrewrite,然后再进入我自己写的过滤器,应该怎么写,我已经把自己的过滤器写在urlrewrite下面了,但是没有效果。下面是我的配置文件:
aa
bean.SetCharacterEncodingFilter
UrlRewriteFilter
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>aa</filter-name>
<url-pattern>*.do</url-pattern>
我就是想每次都要先经过UrlRewriteFilter ,然后再进入SetCharacterEncodingFilter,该怎么写?
在servlet-2.3中,Filter会过滤一切请求,包括服务器内部使用forward转发请求和<%@ include file="/index.jsp"%>的情况。
到了servlet-2.4中Filter默认下只拦截外部提交的请求,forward和include这些内部转发都不会被过滤,但是有时候我们需要forward的时候也用到Filter,这样就需要如下配置。
[code="xml"]
TestFilter
anni.TestFilter
TestFilter
/*
REQUEST
FORWARD
INCLUDE
EXCEPTION
[/code]
当某个url请求匹配了多个Filter时,应用服务器将多个Filter组织成FilterChain,[b]拦截资源是按照 filter-mapping 配置节出现的顺序来依次调用 doFilter() 方法的。[/b]
try this ...
[code="xml"]
UrlRewriteFilter
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
aa
bean.SetCharacterEncodingFilter
aa
*.do
[/code]
urlrewrite 重写后的 url 有没有 .do 结尾? 如果有应该可以实现你要的效果才是。
[code="xml"]
aa
bean.SetCharacterEncodingFilter
UrlRewriteFilter
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>aa</filter-name>
<url-pattern>*.do</url-pattern>
<!-- 关键是这里 -->
dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>EXCEPTION</dispatcher>
[/code]
dispatcher>REQUEST 少了一个 < ,你明白的。 :D