struts2拦截器

       拦截器是struts的核心组件,是AOP思想的一种实现,拦截器实现了动态拦截Action调用的功能,提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行,同时也提供了一种可以提取action中可重用部分的方式。

        通常情况下,拦截器方法都是通过代理的方式来调用。用户在向web应用发送的HttpServletRequest请求经过各级过滤器传到核心控制FilterDispatcher,FilterDispatcher调用Action映射器ActionMapper.,将请求发送至Action代理ActionProxy.ActionProxy创建一个被请求的Action实例,用于处理客户端请求信息。在Action实例被调用前后存在于配置文件中的与Action相关的拦截器会被执行。

         Action处于拦截器层层包围之下,拦截器调用完毕后才会调用Action方法,而后按相反顺序调用拦截器。

         

    

   自定义一个拦截器步骤:
1 自定义一个实现Interceptor接口(或者继承自AbstractInterceptor)的类。
2 在strutx.xml中注册上一步中定义的拦截器。
3 在需要使用的Action中引用上述定义的拦截器,为了方便也可将拦截器定义为默认的拦截器,这样在不加特殊声明的情况下所有的Action都被这个拦截器拦截。

    拦截器配置:

    

<interceptor name="interceptorName" class="interceptorClass">

    拦截器应用:

    拦截器拦截并处理用户请求,执行Action中的execute方法。通过<interceptor-ref>标签指定Action中的拦截器。

    

<package name="default" extends="struts-default">
<interceptors>
  <interceptor name="interceptor1" class="interceptorClass"/>
  <interceptor name="interceptor2" class="interceptorClass"/>
  <interceptor name="interceptor3" class="interceptorClass"/>
       <param name="paramName">paramValue1</param>
  </interceptor>

  <interceptor-stack name="myStack">
   <interceptor-ref name="interceptor1"/>
   <interceptor-ref name="interceptor2"/>
  </interceptor-stack>


评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值