【Struts2三】拦截器
                        
拦截器:就是在訪问action之前。对其进行拦截!能够在拦截器中做一些逻辑的处理!
                    
    
比方权限验证。没有权限就不给予訪问!
拦截器等效于servlet中的过滤器!
使用拦截器步骤:
1.定义自己的拦截器:
| import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.Interceptor; /**  * 定义自己的拦截器,须要实现Intercept接口!  *  */ public class MyInterceptor implements Interceptor{      public void destroy()
 {      }      public void init()
 {      }      /**       * 重写intercept方法,在该方法中实现自己的拦截逻辑!       * 调用invocation.invoke()方法放行action!       */      public String
 intercept(ActionInvocation invocation) throws Exception
 {           System. out.println("图片上传" );            return invocation.invoke(); //        return null;//不运行action      } } | 
2.在struts-interceptor.xml的配置文件里声明:
  须要在struts.xml中包括上述配置文件!
struts-interceptor.xml:
| <?xml version= "1.0" encoding ="UTF-8" ?> <!DOCTYPE struts PUBLIC     "-//Apache
 Software Foundation//DTD Struts Configuration 2.0//EN"     "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts>      <package name="interceptor" namespace="/" extends="struts-default" >            <!-- 声明拦截器,拦截器声明应该位于action之前-->            <interceptors>                <!--声明自定义的拦截器
 -->                <interceptor name= "imageInterceptor"                     class= "cn.itheima03.struts2.interceptor.MyInterceptor" ></interceptor>                <!-- 声明拦截器栈
 -->                <interceptor-stack name= "myInterceptor">                     <interceptor-ref name="imageInterceptor" ></interceptor-ref>                     <interceptor-ref name="defaultStack" ></interceptor-ref>                </interceptor-stack>            </interceptors>            <!-- 改动默认的拦截器栈
 -->            <default-interceptor-ref name="myInterceptor" ></default-interceptor-ref>            <!--声明action,在运行action之前。会先运行拦截器中的方法 
 -->            <action name= "interceptorAction_*" method ="{1}"                 class= "cn.itheima03.struts2.interceptor.InterceptorTestAction" >                <result>                    index.jsp                </result>            </action>      </package > </struts> | 
3.定义action:
| import com.opensymphony.xwork2.ActionSupport; public class InterceptorTestAction extends ActionSupport{      public String
 interceptor(){           System. out.println("interceptor" );            return SUCCESS ;      } } | 
 
                    
                
 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号