• 【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 ;
         }
    }



  • 相关阅读:
    LeetCode OJ 107. Binary Tree Level Order Traversal II
    LeetCode OJ 116. Populating Next Right Pointers in Each Node
    LeetCode OJ 108. Convert Sorted Array to Binary Search Tree
    LeetCode OJ 105. Construct Binary Tree from Preorder and Inorder Traversal
    LeetCode OJ 98. Validate Binary Search Tree
    老程序员解Bug的通用套路
    转载 四年努力,梦归阿里,和大家聊聊成长感悟
    转载面试感悟----一名3年工作经验的程序员应该具备的技能
    Web Service和Servlet的区别
    关于spring xml文件中的xmlns,xsi:schemaLocation
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8340585.html
Copyright © 2020-2023  润新知