模拟struts2的拦截器的流程

来源:互联网 发布:javascript 语法 编辑:程序博客网 时间:2024/06/06 02:58

 

 

package com.tch.test.struts2.interceptor;import java.util.Iterator;import java.util.List;public class ActionInvocation {private List<Interceptor> interceptors;private Iterator<Interceptor> iterator;public void invoke(){if(hasNext()){getInterceptor().intercept(this);}else{System.out.println("调用action方法");}}Interceptor getInterceptor(){return iterator.next();}private boolean hasNext() {return iterator.hasNext();}public List<Interceptor> getInterceptors() {return interceptors;}public void setInterceptors(List<Interceptor> interceptors) {this.interceptors = interceptors;this.iterator = interceptors.iterator();}}

 

package com.tch.test.struts2.interceptor;public interface Interceptor {void intercept(ActionInvocation invocation);}

 

package com.tch.test.struts2.interceptor;public class FirstInterceptor implements Interceptor {@Overridepublic void intercept(ActionInvocation invocation) {System.out.println("begin >>> first...");invocation.invoke();System.out.println("end  <<<  first");}}

 

package com.tch.test.struts2.interceptor;public class SecondInterceptor implements Interceptor {@Overridepublic void intercept(ActionInvocation invocation) {System.out.println("begin >>> second...");invocation.invoke();System.out.println("end  <<<  second");}}

 

package com.tch.test.struts2.interceptor;public class ThirdInterceptor implements Interceptor {@Overridepublic void intercept(ActionInvocation invocation) {System.out.println("begin >>> third...");invocation.invoke();System.out.println("end  <<<  third");}}

 

package com.tch.test.struts2.interceptor;public class FourthInterceptor implements Interceptor {@Overridepublic void intercept(ActionInvocation invocation) {System.out.println("begin >>> fourth...");invocation.invoke();System.out.println("end  <<<  fourth");}}

 

package com.tch.test.struts2.interceptor;import java.util.ArrayList;import java.util.List;public class TestInterceptor {public static void main(String[] args) {List<Interceptor> interceptors = new ArrayList<Interceptor>();FirstInterceptor first = new FirstInterceptor();SecondInterceptor second = new SecondInterceptor();ThirdInterceptor third = new ThirdInterceptor();FourthInterceptor fourth = new FourthInterceptor();interceptors.add(first);interceptors.add(second);interceptors.add(third);interceptors.add(fourth);ActionInvocation invocation = new ActionInvocation();invocation.setInterceptors(interceptors);invocation.invoke();}}

 

 

OK。。。

 

 

 

 

 

原创粉丝点击