Struts2拦截器说明
2024-08-30 12:04:17
有关于Struts2的拦截器的原理
在此共设置了两个拦截器,firstInterception、SecondInterception
package struts2_inteception; public class firstInterception implements Interception{
public void interceptor(ActionInvocaton invocation){
System.out.println("-1");
invocation.invoke();
System.out.println("1"); }
}
package struts2_inteception; public class SecondInterception2 implements Interception{
public void interceptor(ActionInvocaton invocation){
System.out.println("-2");
invocation.invoke();
System.out.println("2"); }
}
主函数Main类
package struts2_inteception; public class Main {
public static void main(String []args){
new ActionInvocaton().invoke();
} }
拦截器接口Interceptor
package struts2_inteception; public interface Interception {
public void interceptor(ActionInvocaton actionInvocaton);
}
一个模拟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
最新文章
- Bootstrap之样式风格与下拉菜单
- Ext JS 6 新特性和工具
- ios NSString常见的字符串操作 分割 查找
- idHTTP访问百度
- Codeforces Round #188 (Div. 1) B. Ants 暴力
- noip2006T1 能量项链
- POJ 1637 混合图欧拉回路
- XML解析器(TinyXML)的使用指南
- 新iPhone开售现场:土豪金火了
- utf8 和 UTF-8 在使用中的差别
- (6)UIView常见属性二
- 多节点通过PPP连接,节点/用户/客户机之间互相访问ping
- 杂谈迁移tomcat项目到docker,以及遇到的问题
- [BUAA2017软工]第1次个人项目 数独
- ResNet152网络复现(Caffe)
- python 切片知识大全
- 数据库savepoint
- Windows Sockets错误标识及对应解释
- Linux下JDK、Tomcat安装及Web应用部署
- js调用父级frame中的方法