我的日常

登录/注册
您现在的位置:论坛 盖世程序员(我猜到了开头 却没有猜到结局) 盖世程序员 > StrutsPrepareAndExecuteFilter 与 FilterDispatcher
总共48086条微博

动态微博

查看: 745|回复: 0

StrutsPrepareAndExecuteFilter 与 FilterDispatcher

[复制链接]

326

主题

72

听众

999

金钱

实习版主

该用户从未签到

优秀版主

跳转到指定楼层
楼主
发表于 2015-03-16 11:44:11 |只看该作者 |倒序浏览
struts2 web.xml配置可以两种
' l- y$ M9 R+ q; ]3 e <filter>( t. L' D& T2 B3 U+ n3 T: c
  <filter-name>struts2</filter-name>3 d3 Z! q# g* n: A! f$ J% d
  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>( @6 p" A. M# C! R% q5 w% F3 h
  </filter>  h# [1 y+ h+ H6 W5 ?5 i% i. Y
  <filter-mapping>$ J! {( }) R: g, O) e# c! T6 ]
  <filter-name>struts2</filter-name>
+ p9 }9 D/ S" _$ ~2 S  <url-pattern>/*</url-pattern>
" Z5 o: A* M/ O4 {8 S  </filter-mapping>& N7 n: C, k  @: |" @0 R

  J! \5 f! o9 u1 {3 l- R% Y <filter>
5 l6 n6 ]1 M; w9 ^  <filter-name>struts2</filter-name>
/ k3 U3 k3 t) T! m4 c  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>! o, Y1 k, j& C+ G$ w5 Q/ q; Z
  </filter>
2 |- x( W. M5 k' c2 b6 Q# }  <filter-mapping>
7 k6 K/ \9 a( x" Q  <filter-name>struts2</filter-name>  |, L% n' ?2 w
  <url-pattern>/*</url-pattern>
2 d. U8 k9 {2 g. A$ I3 v  </filter-mapping>+ E, B* Y9 O4 |3 W8 u% K& U& \9 D) g
两者有什么区别呢?5 G# p4 J- b' B+ U+ t* I+ u
FilterDispatcher是struts2.0.x到2.1.2版本的核心过滤器.!  a. }; y  E+ g* K8 D
StrutsPrepareAndExecuteFilter是自2.1.3开始就替代了FilterDispatcher的.!6 q% P/ ^4 {, z0 I
这样的改革当然是有好处的.!+ M$ S) n7 C/ m9 Q9 B1 z
为什么这么说.? 应该知道如果我们自己定义过滤器的话, 是要放在strtus2的过滤器之前的, 如果放在struts2过滤器之后,你自己的过滤器对action的过滤作用就废了,不会有效!除非你是访问jsp/html!  h0 X! P! [4 ^$ ~* W
那我现在有需求, 我必须使用Action的环境,而又想在执行action之前拿filter做一些事, 用FilterDispatcher是做不到的.!
6 }8 S5 C/ w4 a  G+ f2 a6 U 那么StrutsPrepareAndExecuteFilter可以把他拆分成StrutsPrepareFilter和StrutsExecuteFilter,可以在这两个过滤器之间加上我们自己的过滤器.!
3 L# `' U& L: M给你打个比喻, 现在有病人要做手术, 现在struts2要做两件事, 搭病床(环境),执行手术.! 那么打麻药的工作呢.? 不可能要病人站着打吧, 所以必须有病床的环境,打完麻药之后再动手术.! 这个比喻非常形象了.!
9 t2 W' a/ n& Z+ G& L

. n% x% A2 w# g8 K* y( O- ]& C8 T

科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、科帮网管理员和版主有权不事先通知发贴者而删除本文


JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

快速回复
您需要登录后才可以回帖 登录 | 立即注册

   

关闭

站长推荐上一条 /1 下一条

发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
快速回复 返回顶部 返回列表