该用户从未签到
|
struts2 web.xml配置可以两种
2 M' _ ]& t* P+ Y <filter>
' C; I9 ^6 ^3 i4 m) q <filter-name>struts2</filter-name>, S* M& [3 C$ Z4 H, [9 h0 z. Q
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>& J. }& q! J9 n, v+ F
</filter>2 l. h0 a# I9 F0 \" h- I7 C3 E8 N* Q# a5 q
<filter-mapping>& P7 d$ y& `. N3 h/ R% B$ C( ^& W
<filter-name>struts2</filter-name>
+ Q0 ^4 x4 M5 i* ]- q2 C <url-pattern>/*</url-pattern>
4 J% f! b+ \6 g8 C2 H. U </filter-mapping>
( Q: w2 a% J) g- M- v/ P3 o- Q或! O4 ^0 Y4 S2 l5 C. L
<filter>: O. ?7 e- Y% t
<filter-name>struts2</filter-name>
, T+ }1 m1 y9 K4 L5 } d <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
: o% G# m# x; p& P </filter>) D3 ^ s6 G3 `- W3 f
<filter-mapping>" ?% p: f X# p- |
<filter-name>struts2</filter-name>$ l$ B; B. s) l$ B- M' i
<url-pattern>/*</url-pattern>* q# Y% ~9 G* L+ y! g, \4 R
</filter-mapping>* {, L8 D4 X. C# h9 _. w+ D+ Y
两者有什么区别呢?
. G" ]0 g" Q1 q/ n; kFilterDispatcher是struts2.0.x到2.1.2版本的核心过滤器.!
' o- n- |' h. J7 t. K7 sStrutsPrepareAndExecuteFilter是自2.1.3开始就替代了FilterDispatcher的.!' i5 G- B& e' A
这样的改革当然是有好处的.!9 I7 J) M% X: L. K6 O
为什么这么说.? 应该知道如果我们自己定义过滤器的话, 是要放在strtus2的过滤器之前的, 如果放在struts2过滤器之后,你自己的过滤器对action的过滤作用就废了,不会有效!除非你是访问jsp/html!
1 e; T/ m$ Z' d+ o( m9 n [那我现在有需求, 我必须使用Action的环境,而又想在执行action之前拿filter做一些事, 用FilterDispatcher是做不到的.!
* @: o! p, p. b$ k3 t+ \ 那么StrutsPrepareAndExecuteFilter可以把他拆分成StrutsPrepareFilter和StrutsExecuteFilter,可以在这两个过滤器之间加上我们自己的过滤器.! R/ d4 ~0 `( i, ^2 ]8 J. r$ a$ ~+ v
给你打个比喻, 现在有病人要做手术, 现在struts2要做两件事, 搭病床(环境),执行手术.! 那么打麻药的工作呢.? 不可能要病人站着打吧, 所以必须有病床的环境,打完麻药之后再动手术.! 这个比喻非常形象了.!
: z a% N' a; A- y- \
6 v- Y1 n; X( O( H: @) r |
|