010 - Interceptor

1. 自定义Interceptor

//MyInterceptor.java

public class MyInterceptor extends AbstractInterceptor {

 

 public String intercept(ActionInvocation invocation) throws Exception {


  long start = System.currentTimeMillis();       //Action前做点事


  String r = invocation.invoke();                     //调用Action中的某个方法


  long end = System.currentTimeMillis();        //Action 执行后再做点事


  System.out.println("action time = " + (end - start));
  return r;


 }

}

 

 

 

//struts.xml

<struts>


 <constant name="struts.devMode" value="true"></constant>
 <package name="test" namespace="/" extends="struts-default">
          <interceptors>
                   <interceptor name="my" class="MyInterceptor"/>  //向struts2注册自己的Interceptor
          </interceptors>


          <action name="test" class="TestAction">
                    <result>/test.jsp</result>

                    <!-- 注意两个interceptor-ref的顺序, 顺序不同, 执行效果也不同: 先配置的先执行/后配置的先退出(先进后出) --> 
                     <interceptor-ref name="my"></interceptor-ref>                    //应用到这个Action上
                     <interceptor-ref name="defaultStack"></interceptor-ref>


           </action>

 </package>


</struts>

 

 

2. 使用token拦截器防止重复提交

 //struts.xml

<struts>

     <constant name="struts.devMode" value="true"></constant>
     <package name="test" namespace="/" extends="struts-default">
  
     <action name="input" class="InputAction">
              <result>/input.jsp</result>
     </action>

 

     <action name="user" class="UserAction">
             <result>/addOK.jsp</result>
      
            <interceptor-ref name="defaultStack"></interceptor-ref>


            <interceptor-ref name="token"></interceptor-ref>
            <result name="invalid.token">/error.jsp</result>


     </action>

 </package>

</struts>

 

 

//表单的写法

    <form action="user" method="post">
            name:<input name="name">
            age:<input name="age">
            <input type="submit" value="add">

            <s:token></s:token>
    </form>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值