Struts2中的FilterDispatcher

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kk121150/article/details/78169580
【FilterDispatcher作用】核心控制器FilterDispatcher是STRUTS 2框架的基础,包含了框架内部的控制流程和处理机制。业务控制器Action和业务逻辑组件是需要用户来自己实现的。用户在开发Action和业务逻辑组件的同时,还需要编写相关的配置文件,供核心控制器FilterDispatcher来使用。主要作用如下:
1、执行action:过滤器根据请求的url判断是否需要调用action(判断的依据是根据actionMapper)如果需要执行action那么处于过滤器链中的其他过滤器将终止,并且调用action.
这意味着其他一些一定要执行的过滤器必须放在FilterDispatcher前面.以保证他们的执行。
2、清空ActionContext上下文:FilterDispatcher讲自动的清除上下文,确保没有内存泄露.但是有时候将导致在集成其他产品时出现某些问题。
3、服务静态的内容:FilterDispatcher同时会加载常用的静态内容,例如javascript文件,css文件。FilterDispatcher会查找/struts/*这个目录,并且映射"/struts/"后面的的所有常用的包。

4、中断请求生命周期中的XWORKS拦截器

FilterDispatcher是struts2.0.x到2.1.2版本的核心过滤器. 从2.1.3版本开始, 就用StrutsPrepareAndExecuteFilter代替FilterDispatcher了.

如果是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>
如果是 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>


猜你喜欢

转载自blog.csdn.net/kk121150/article/details/78169580