大家好,又见面了,我是你们的朋友全栈君。
抽象类AbstractInterceptor实现了Interceptor接口,提供了init和destroy方法的空实现。如果我们的拦截器不需要打开资源,则可以无需实现这两个方法。可见通过继承AbstractInterceptor抽象类来实现自定义拦截器会更简单。
将上篇文章中的SimpleInterceptor.java 改为如下实现,其余所有代码一律不变:
public class SimpleInterceptor extends AbstractInterceptor {
private String name;
public void setName(String name) {
this.name = name;
}
@Override
public String intercept(ActionInvocation invocation) throws Exception {
LoginAction loginaction=(LoginAction)invocation.getAction();
System.out.println(name+"拦截器的动作------"+"开始执行登录Action的时间为:"+new Date());
long start=System.currentTimeMillis();
String result=invocation.invoke(); //要理解这行代码
System.out.println(name+"拦截器的动作------"+"执行完登录Action的时间为:"+new Date());
long end=System.currentTimeMillis();
System.out.println("执行完该Action耗时:"+(end-start)+"毫秒");
return result; //要理解这行代码
}
}
struts2拦截器的功能非常强大,它既可以在Action的execute方法之前插入执行代码,也可以在execute方法之后插入执行代码,这种方式的实质就是
AOP(面向切面编程)的思想。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/146309.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...