struts2拦截器

1)struts2常用的内置拦截器
       (在struts-default.xml定义)
      a. params拦截器
            -  将请求参数赋给Action类的属性
      b. fileUpload拦截器
      c. servlet-config:负责设置Servlet API对象
      d. workflow:负责输入验证,
       调用ActionSupport子类的validate方法,
       验证失败时,转向input逻辑视图。
      e. defaultStack:默认的拦截器栈 ,
      是struts-default包使用的默认拦截器栈
   2)接口Interceptor:
           方法: void init()           --初始化方法
                         void destrory()  -- 销毁方法
                         String intercept(ActionInvocation invocation)
                          - 用于拦截Action的方法
            ActionInvocation类的方法:
                 Object getAction() - 返回要调用的Action实例
                 ActionContext getInvocationContext()
                 String invoke() - 将请求传递给拦截器链的下一个进行处理
                
    3) 实现自定义拦截器的方式一:
             继承Interceptor的抽象实现类AbstractInterceptor
           Task.建立日志拦截器MyLogInterceptor
             
            实现自定义拦截器的方式二:
              继承MethodFilterInterceptor,
              能够对Action的业务进行过滤。
                             
     4)拦截器的配置:
           a. <interceptors>  - 用于包含拦截器或拦截器栈的定义,
                       是<package>的子元素,位于<action>之前。
          b. <interceptor> - 用于定义拦截器,
                       是<interceptors>的子元素
                <interceptor name="" class="">
                    <param name="参数名">
                                   参数值
                    </param>
                 </interceptor>
           c. <interceptor-ref> - 用于引用已经定义的拦截器
               或拦截器栈的名称。
               可以出现在<action>
               和<interceptor-stack>中
           d. <interceptor-stack> - 用于引用一组拦截器或其它拦截器栈
                <interceptor-stack name="">
                     <interceptor-ref name=""/>
                     ....
                 </interceptor-stack>
             5. <default-interceptor-ref name=""/>
                 -是<package>的子元素,
                 用于指定当前包使用的默认拦截器,
                 会应用于包中的所有Action。
                 一个Action没有定义所引用的拦截器时,
                 会使用所在包的默认拦截器。
                  defaultStack是struts-default包的默认拦截器
       5)拦截器的执行顺序:
          配置文件:
             interceptor1
             interceptor2
            运行时执行顺序:
               核心控制器-->interceptor1
                                    --->interceptor2
                                    --->Action
                                    --->interceptor2
                                    --->interceptor1
                                    ---->核心控制器

你可能感兴趣的:(struts2拦截器)