马士兵struts2视频教程第七十六集
来源:互联网 发布:音乐变调软件 编辑:程序博客网 时间:2024/04/30 15:24
实现拦截器主要是在actionInvocation里面,interceptor在构造方法装载,然后在invoke方法里面循环加载,每个interceptor里面invoke下一个interceptor,直到action,然后倒着输出每个interceptor中invoke后面的方法。
package com.ceair.core.util;public interface Interceptor {public void interceptor(ActionInvocation invocation);}
package com.ceair.core.util;public class FirstInterceptor implements Interceptor {public void interceptor(ActionInvocation invocation) {System.out.println("1");invocation.invoke();System.out.println("-1");}}
package com.ceair.core.util;public class SecondInterceptor implements Interceptor {public void interceptor(ActionInvocation invocation) {System.out.println("2");invocation.invoke();System.out.println("-2");}}
package com.ceair.core.util;public class Action {public void execute() {System.out.println("Action");}}
package com.ceair.core.util;import java.util.ArrayList;import java.util.List;public class ActionInvocation {List<Interceptor> list = new ArrayList<Interceptor>();int index = -1;Action a = new Action();public ActionInvocation() {this.list.add(new FirstInterceptor());this.list.add(new SecondInterceptor());}public void invoke() {index ++;if (index >= this.list.size()) {a.execute();} else {this.list.get(index).interceptor(this);}}}
package com.ceair.core.util;public class Main {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubnew ActionInvocation().invoke();}}
0 0
- 马士兵struts2视频教程第七十六集
- 马士兵struts2视频教程第四十六集
- 马士兵struts2视频教程第五十六集
- 马士兵struts2视频教程第六十六集
- 马士兵struts2视频教程第七集
- 马士兵struts2视频教程第七十二集
- 马士兵struts2视频教程第七十三集
- 马士兵struts2视频教程第七十七集
- 马士兵struts2视频教程第七十八集
- 马士兵struts2视频教程第七十九集
- 马士兵struts2视频教程第七十四、七十五集
- 马士兵struts2视频教程第六集
- 马士兵struts2视频教程第九集
- 马士兵struts2视频教程第十集
- 马士兵struts2视频教程第十一集
- 马士兵struts2视频教程第十二集
- 马士兵struts2视频教程第十三集
- 马士兵struts2视频教程第十四集
- Java调用SQL Server的存储过程详解
- Redis C语言客户端库hiredis使用方法
- Android常用适配器总结
- maven 整体学习笔记
- 第9周项目 6.3 等差数列
- 马士兵struts2视频教程第七十六集
- 常见颜色关键字
- iOS中定时器NSTimer的使用
- 打造完美的ImageLoader——LruCache+DiskLruCache
- main函数中两个参数的用法
- 大白话系列之C#委托与事件讲解(三)
- oracle接收函数返回值的三种形式
- scp
- ffmpeg学习资料