问题

在Struts2开发中,很多人问到,声明过滤器的时候,为什么有的时候用"FilterDispatcher",而有的时候用"StrutsPrepareAndExecuteFilter"?两者都可以正常工作,那区别是什么呢?

1. FilterDispatcher 例子 

...
<filter>
   <filter-name>struts2</filter-name>
   <filter-class>
     org.apache.struts2.dispatcher.FilterDispatcher
   </filter-class>
</filter>
 
<filter-mapping>
   <filter-name>struts2</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

2. StrutsPrepareAndExecuteFilter 例子

...
<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>

 

答案
FilterDispathcer (org.apache.struts2.dispatcher.FilterDispatcher 在早期的Struts2开发中使用,从Struts 2.1.3开始,它已不推荐使用。
如果你使用的Struts的版本 >= 2.1.3,推荐升级到新的Filter-StrutsPrepareAndExecuteFilter  (org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter)。

 

参考:

  1. FilterDispatcher documentation
  2. StrutsPrepareAndExecuteFilter documentation

 

相关文章:

  • 2021-08-06
  • 2021-04-04
  • 2021-09-24
  • 2021-07-01
  • 2022-02-11
  • 2022-02-21
  • 2022-02-09
  • 2022-02-09
猜你喜欢
  • 2021-09-07
  • 2021-05-15
  • 2022-12-23
  • 2021-09-08
  • 2021-07-17
  • 2021-08-11
相关资源
相似解决方案