struts2拦截器

拦截器组件
   可用于封装共通的业务处理,之后可以通过配置作用到Action组件上.
   共通业务处理有:登录检查,日志记录,性能检测,事务处理
    (1)拦截器规范
       a.拦截器组件必须实现Interceptor接口,实现interceptor方法
     b.拦截器组件可以继承AbstractInterceptor类
     c.拦截器组件可以继承MethodFilterInterceptor类  拦截指定的方法
     (2)拦截器相关配置
       a.声明
       <interceptor name="拦截器名" class="包名.类名"/>
       b.引用
       <interceptor-ref name="拦截器名或拦截器栈名"/>
或<interceptor-ref name="myinter2"><param name="includeMethods">update,delete</param></interceptor-ref>拦
截指定方法必须是继承MethodFilterInterceptor类 
       c.注意:当为Action组件引用了拦截器后,需要显式将defaultStack引入
例子:
        <struts>
<constant name="struts.enable.DynamicMethodInvocation"
value="false" />
<constant name="struts.devMode" value="true" />

<package name="interceptor" namespace="/" extends="struts-default">
<interceptors>
<interceptor name="myinterceptor" class="interceptor.Myinterceptor"></interceptor>
<interceptor-stack name="myinter">
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="myinterceptor"></interceptor-ref>
</interceptor-stack>
</interceptors>
<!-- <default-interceptor-ref name="myinter"/>-->//全部拦截
<action name="inter" class="interceptor.Testinterator">
<interceptor-ref name="mystack"></interceptor-ref>//拦截action所有方法
<result>index.jsp</result>
</action>
</package>

<!-- Add packages here -->
</struts>

public class Myinterceptor implements Interceptor {
public void destroy() {
// TODO Auto-generated method stub
System.out.println("destroy");
}

public void init() {
// TODO Auto-generated method stub
System.out.println("init");
}
//如果想后调用拦截器可以
/*String str=arg0.invoke();
System.out.println("execute");
return str;
*/
public String intercept(ActionInvocation arg0) throws Exception {
System.out.println("execute");
return arg0.invoke();
}
      }
 *  拦截器只能在package内部
*  如果拦截器要想在package外部使用,让使用拦截器的package继承该package就可以了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值