关于使用urlreqriter与filter的冲突的有关问题

关于使用urlreqriter与filter的冲突的问题
1、web.xml中配置如下



<!--UrlRewriteFilter -->
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<init-param>
<param-name>logLevel</param-name>
<param-value>WARN</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>  
     <dispatcher>FORWARD</dispatcher>  
     <dispatcher>INCLUDE</dispatcher>  
</filter-mapping>

<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>
<dispatcher>REQUEST</dispatcher>  
     <dispatcher>FORWARD</dispatcher>  
     <dispatcher>INCLUDE</dispatcher>
</filter-mapping>

<!-- session超时定义,单位为分钟 -->
<session-config>
<session-timeout>2</session-timeout>
</session-config>

<!-- 需要登陆的验证- -->
<filter>
<filter-name>SessionFilter</filter-name>
<filter-class>com.abc.util.SessionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SessionFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>





我在页面使用的伪静态化,所以页面看到的都是.html的链接,实际执行的都是.action

2、想实现的需求是,
既要是的filter能拦截未登录用户,又使得urlrewriter起作用啊。


现在的情况是,这个filter根本就没起作用。
------解决思路----------------------
两个过滤都是  /*  冲突了,,,,
<url-pattern>/*</url-pattern>

解决之道::  两个filter 使用不同的url-pattern
或者自定义struts的filter, 自己实现urlrewriteing
------解决思路----------------------
1、2楼别误导人家,同一个URL匹配模式,可以有多个拦截器,这叫拦截器链,以xml配置的先后顺序来执行。
楼主的问题可能是要将SessionFilter加上:
<dispatcher>FORWARD</dispatcher>
原因是UrlRewriteFilter捕获到.html格式后转发(forward)给下面的StrutsFilter和SessionFilter,而SessionFilter默认是处理Request类型的dispatcher,所以就放过了forward来的。
另外应该要将SessionFilter放在中间吧,即StrutsFilter之前。