【struts2】拦截器的工作模拟实现
2014-11-09 20:42
471 查看
Main.java
ActionInvocation.java
Interceptor.java
FirstInterceptor.java
SecondInterceptor.java
Action.java
struts2的拦截器说白了就是几个递归调用,这里代码可以执行以下,可以吧断点设置在new ActionInvocation().invoke();这里,然后一步一步地执行,然后一点一点的体会应该就懂了
记住就一点,递归调用
/** * 书本:【struts2】 * 功能:模拟拦截器的工作,实际就是递归的思想 * 文件:Main.java * 时间:2014年11月9日20:04:55 * 作者:cutter_point */ public class Main { public static void main(String [] args) { new ActionInvocation().invoke(); } }
ActionInvocation.java
/** * 书本:【struts2】 * 功能:模拟拦截器的工作 * 文件:ActionInvocation.java * 时间:2014年11月9日20:04:55 * 作者:cutter_point */ import java.util.ArrayList; import java.util.List; public class ActionInvocation { List<Interceptor> interceptors=new ArrayList<Interceptor>(); int index = -1; //来指示循环到了第几个interceptor了 Action a = new Action(); public ActionInvocation() //构造函数 { this.interceptors.add(new FirstInterceptor()); this.interceptors.add(new SecondInterceptor()); } public void invoke() { index ++; if(index >= this.interceptors.size()) { a.execute(); } else { this.interceptors.get(index).intercept(this); } } }
Interceptor.java
/** * 书本:【struts2】 * 功能:模拟拦截器的工作 * 文件:Interceptor.java * 时间:2014年11月9日20:04:55 * 作者:cutter_point */ public interface Interceptor { public void intercept(ActionInvocation invocation); }
FirstInterceptor.java
/** * 书本:【struts2】 * 功能:模拟拦截器的工作 * 文件:FirstInterceptor.java * 时间:2014年11月9日20:04:55 * 作者:cutter_point */ public class FirstInterceptor implements Interceptor { public void intercept(ActionInvocation invocation) { System.out.println(1); invocation.invoke(); System.out.println(-1); } }
SecondInterceptor.java
/** * 书本:【struts2】 * 功能:模拟拦截器的工作 * 文件:SecondInterceptor.java * 时间:2014年11月9日20:04:55 * 作者:cutter_point */ public class SecondInterceptor implements Interceptor { public void intercept(ActionInvocation invocation) { System.out.println(2); invocation.invoke(); System.out.println(-2); } }
Action.java
/** * 书本:【struts2】 * 功能:模拟拦截器的工作 * 文件:Action.java * 时间:2014年11月9日20:04:55 * 作者:cutter_point */ public class Action { public void execute() { System.out.println("execute!"); } }
struts2的拦截器说白了就是几个递归调用,这里代码可以执行以下,可以吧断点设置在new ActionInvocation().invoke();这里,然后一步一步地执行,然后一点一点的体会应该就懂了
记住就一点,递归调用
相关文章推荐
- Struts学习总结(四)---简单模拟实现Struts2的拦截器
- Struts2拦截器之使用拦截器模拟实现登陆校验
- Struts2知识点回顾(五)拦截器的工作流程以及如何实现
- 模拟实现struts2拦截器原理
- 使用struts2拦截器实现防止表单数据重复提交
- struts2 使用拦截器 实现用户权限的验证
- Struts2:实现自已的拦截器
- Struts2教程9:实现自已的拦截器
- Struts2教程9:实现自已的拦截器
- 在Struts2下使用[拦截器]配合[session监听器]实现在线会员统计与防止重复登录
- struts2 拦截器实现实例
- Struts2 源码学习(一):模拟拦截器
- struts2自定义拦截器一――模拟登陆权限验证
- struts2中利用拦截器实现权限管理
- struts2自定义拦截器一——模拟登陆权限验证
- struts2自定义拦截器二——模拟session超时的处理
- struts2 实现权限控制拦截器
- [转]Struts2教程9:实现自已的拦截器
- Struts2教程9:实现自已的拦截器
- 浅谈Struts2拦截器的原理与实现