Struts2 拦截器

<!– 定义拦截器栈 –>
<interceptor-stack name=”basicStack”>

 

Struts2底默认拦截器可以翻 struts-default.xml 文件。

方法2: 继承AbstractInterceptor
抽象类【推荐以该模式】
该类提供了 init() 和
destroy()方法的空实现; 只待贯彻intercept()方法即可

手续:1) 继承AbstractInterceptor实现拦阻器类
        2) struts.xml中定义拦截器
      <interceptor name=”…” class=”…” />
  3) <action> 引用拦截器
    单独引用: 引用从定义跟默认拦截器
    拦截栈引用: 定义拦截器栈包含自定义跟默认拦截器

<!– 指定引用的拦截器 –>
<interceptor-ref name=”exception”/>
<interceptor-ref name=”servletConfig”/>
<interceptor-ref name=”prepare”/>
</interceptor-stack>
</interceptors>

  1. 执行Action之后的拍卖

   

3. Struts2 放到拦截器
1) params 拦截器
2)staticParams拦截器
3)servletConfig拦截器
4)fileUpload 拦截器
5) validation 拦截器
6)workflow 拦截器
7) exceiption 拦截器

2. 拦截器的规律
其有三独号:1. 执行Action在此以前的处理
2.调用ActionInvocation的invoke()方法以控制器转交给后续拦截器或者再次回到结果字符串终止执行

形式3:继承MethodFilterInterceptor类: 指定拦截的法门;
指定不阻止的章程

4. 拦截器的布【自定义】
<interceptor …/>
<interceptor-ref …>

5. 从定义拦截器
方法1: 实现Interceptor接口
欠接口提供了3单艺术,1) void
init(),该拦截器被开首化之后,在拦截器执行拦截在此之前,系统回调该方法。2)
void destroy() ,在拦截器实例被销毁在此以前。 3) String
intercept(ActionInvocation ai) throws Exception:
用户需要实现的拦截器动作。
提拔: ActionInvocatio 代表时action 执行之状态


  1. 怎么而利用拦截器

6. 拦截器与过滤器
相似点: 效能相似; 原理相似;方法类似;
不同点:内容见仁见智,拦截器用于拦截对Action请求,而过滤器几乎可以过滤所有的情节
拦截器中得获Action的当前进行状态,而过滤器不能够
过滤器是Servlet中概念,在Web.xml中布置;
拦截器是struts/webWork中概念,在struts.xml中配置。

提拔:
拦截器栈有两个<interceptor-ref>,何人当前,什么人先打功用
拦截器起效能的相继:先<action>,
再本包,再父包

 

<!– 定义默认的拦截器引用 –>
<default-interceptor-ref name=”defaultStack”/>

<interceptors>
<!– 定义拦截器 –>
<interceptor name=”deprecation”
class=”org.apache.struts2.interceptor.DeprecationInterceptor” />