sturts2 自定义拦截器的详解

自定义拦截器 方式 一

实现 接口 Interceptor
拦截器的生命周期(不可能是每个访问都创建一遍 拦截器)

随着程序的开始 而 创建
随着程序的结束 而 销毁

public class Myintercept01  implements  Intercetor{
    //下面 三个都是 生命周期方法

    @Override
    public void init(){

    }
    //拦截方法
    @Override
    public String intercept(ActionInvocation  actionInvocation) throws Exception{
        return "";

    }
    //销毁方法
    @Override
    public void destroy(){


    }

}

自定义拦截器方法 二
继承 AbstractInterceptor

public class Myintercept02 extends AbstractInterceptor{
    @Override
    public  String intercept(ActionInvocation actionInvocation) throws ExceptionP{

    return "";

}

(常用的)自定义过滤器方式三
继承方法 过滤 拦截器 MethodFilterInterceptor

public class Myintercept03 extends MethodFilterInterceptor{
    //拦截方法
    @Override
    protected String doIntercept(ActionInvocation invocation) throws Excetion{
        //前处理
        System.out.prinln("前处理");

        //放心方法
        //所有的拦截器都执行完毕后 会拿到一个字符串
        //这个字符串 就是 action 类 执行完毕后 返回的字符串 

        String result = invocation.invoke();

        //后处理
        System.out.println("后处理");

        return result;
    }
}

配置 自定义拦截器
可以指定 拦截 或者 不拦截 那些方法

public class Demo01Actin
extends ActionSupport{
public String  add();

    return "success";

}

publuic String delete(){
    System.out.println("delete");
    return "success";
}

public String update (){
    System.out.println("update");
    return "success";
}

public  String find(){
    System.out.println("find");
    return "success";
}

配置 struts.xml



<struts>
<package name="inter" namespace ="/" extends ="struts-default">

<interceptors>

<interceptor name="Myintercept03" class = "com.lanou.intercept.Myintercept03">interceptor>

<interceptor-stack name="myStack">

    
     
     <interceptor-ref name="defaultStack">interceptor-ref>
    interceptor-stack>
    interceptors>

    
    <default-interceptor-ref name="myStack">default-interceptor-ref>

    
        <action name="Demo01Action_*" class="com.lanoug.intercept.Demo01Action"
            method="{1}">
            <result name="success">/hello.jspresult>
        action>

    package>
struts>

你可能感兴趣的:(interceptor,class,struts)