码迷,mamicode.com
首页 > 其他好文 > 详细

Struts2拦截器说明

时间:2018-04-13 20:30:57      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:index   函数   array   nts   span   lse   imp   bubuko   rgs   

有关于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

 

Struts2拦截器说明

标签:index   函数   array   nts   span   lse   imp   bubuko   rgs   

原文地址:https://www.cnblogs.com/wbs19950305/p/8822994.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!