010 - Interceptor

xiaoxiao2021-03-01  18

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>

转载请注明原文地址: https://www.6miu.com/read-3199970.html

最新回复(0)