• Struts2拦截器说明


    有关于Struts2的拦截器的原理

    在此共设置了两个拦截器,firstInterception、SecondInterception

     1 package struts2_inteception;
     2 
     3 public class firstInterception implements Interception{
     4     public void interceptor(ActionInvocaton invocation){
     5         System.out.println("-1");
     6         invocation.invoke();
     7         System.out.println("1");
     8         
     9     }
    10 }
     1 package struts2_inteception;
     2 
     3 public class SecondInterception2 implements Interception{
     4     public void interceptor(ActionInvocaton invocation){
     5         System.out.println("-2");
     6         invocation.invoke();
     7         System.out.println("2");
     8         
     9     }
    10 }

    主函数Main类

    1 package struts2_inteception;
    2 
    3 public class Main {
    4     public static void main(String []args){
    5         new ActionInvocaton().invoke();
    6     }
    7 
    8 }

    拦截器接口Interceptor

    1 package struts2_inteception;
    2 
    3 public interface Interception {
    4     public void interceptor(ActionInvocaton actionInvocaton);
    5 }

    一个模拟struts2的Action类

     

    package struts2_inteception;
    
    public class Action {
        public void execute(){
            System.out.println("execute()方法的执行");
        }
    
    }

     

    一个ActionInvocation类,

     

    package struts2_inteception;
    
    import java.util.List;
    import java.util.ArrayList;
    
    
    public class ActionInvocaton {
        int index=-1;
        Action action=new Action();
        List<Interception> interceptions=new ArrayList<Interception>();
        public ActionInvocaton(){
            //在此调用一系列的拦截器
            this.interceptions.add(new firstInterception());
            this.interceptions.add(new SecondInterception2());
        }
        public void invoke(){
            index++;
            if (index>=interceptions.size()){
                //调用action的方法
                action.execute();
            }else{
                //调用拦截器中加的东西
                this.interceptions.get(index).interceptor(this);
            }
            
        }
        
        
    
    }

     真正的struts2的拦截器执行过程如下:

     

    执行的结果如下:

    -1
    -2
    execute()方法的执行
    2
    1
  • 相关阅读:
    Docker宿主机登陆Container方法
    Get Docker for CentOS and Installing Docker
    CentOS7网络配置
    国内npm镜像源推荐及使用
    CentOS6.5源码安装python3.5.2
    阿里云SLB后Nginx、Tomcat获取真实IP
    MacOS清除管理员密码
    SVN-修改已提交的日志
    爬虫的初始和requests模块基础用法
    利用面向对象写的登录与注册
  • 原文地址:https://www.cnblogs.com/wbs19950305/p/8822994.html
Copyright © 2020-2023  润新知