• Struts2的拦截器


    Struts2拦截器的自定义实现

    Struts2提供了Interceptor接口,以及对该接口实现的一个对应抽象拦截器AbstracInterceptor。创建拦截器,只要选择其中一种即可。若实现方法拦截,就需要继承MethodFilterIntercepter

    1、创建拦截器类,并在interceptor方法中加入相关的处理代码

    package com.tools;
    
    import com.opensymphony.xwork2.ActionInvocation;
    
    public class MyIntercepter extends AbstractInterceptor {
        @Override
        public String intercept(ActionInvocation actionInvocation) throws Exception {
            return actionInvocation.invoke();
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    2、在Struts.xml中注册拦截器并引用拦截器

    <struts>
        <package name="intercepter" extends="struts-default" >
        <!--注册拦截器---->
            <interceptors>
                <interceptor name="replace" class="com.tools.MyIntercepter"></interceptor>
            </interceptors>
    
            <action name="public" class="com.tools.PublicAction" method="execute">
                <result name="success">/拦截器/success.jsp</result>
             
              <!--引用拦截器--->
                <interceptor-ref name="replace"></interceptor-ref>
                <interceptor-ref name="defaultStack"></interceptor-ref>
            </action>
        </package>
    </struts>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    自定义方法拦截器

    1、建立拦截器:继承MethodFilterIntercepter,
    2、配置拦截器

    <struts>
        <package name="intercepter" extends="struts-default" >
        <!--注册拦截器---->
            <interceptors>
                <interceptor name="replace" class="com.tools.MyIntercepter"></interceptor>
            </interceptors>
    
            <action name="public" class="com.tools.PublicAction" method="execute">
                <result name="success">/拦截器/success.jsp</result>
             
              <!--引用拦截器--->
                <interceptor-ref name="replace">
                <param name="includeMethod">***</param>
                <param name="excludeMethod">**</param>
           </interceptor-ref>
                
            </action>
        </package>
    </struts>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • includeMethod :指定不被拦截的方法,若多个方法以逗号隔开
    • excludeMethod:指定被拦截的方法,若多个方法以逗号隔开
  • 相关阅读:
    linux之shell脚本练习
    docker详解(尚硅谷阳哥)
    Machine Learning with Graphs
    python家庭个人理财记账收支系统django558
    js去重都有哪些方法?
    用项目管理管PMP考试我该如何准备?
    杀疯了,GitHub疯传2022Java面试八股文解析+大厂面试攻略
    Spring MVC面试题
    基于GATK流程化进行SNP calling
    Nginx监控模块
  • 原文地址:https://blog.csdn.net/ccb1372098/article/details/128049654