①TargetInterface
package com.hzp.interceptor;
//目标对象接口
public interface TargetInterface {
public void doSomething();
}
②Target
package com.hzp.interceptor;
//目标对象
public class Target implements TargetInterface {
public void doSomething() {
System.out.println("doSomething");
}
}
③MyProxy
package com.hzp.interceptor;
import java.lang.reflect.Proxy;
//动态代理类
public class MyProxy {
public Object getProxy(Object o){
Handler handler=new Handler();
handler.setObject(o);
return Proxy.newProxyInstance(Target.class.getClassLoader(),o.getClass().getInterfaces(),handler);
}
}
④Interceptor
package com.hzp.interceptor;
//拦截器
public class Interceptor {
public void before(){
System.out.println("before");
}
public void after(){
System.out.println("after");
}
}
⑤Handler
package com.hzp.interceptor;
//处理类
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
public class Handler implements InvocationHandler {
private Object object;
private Interceptor interceptor=new Interceptor();
public void setObject(Object o){
this.object=o;
}
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
Object result= null;
interceptor.before();
method.invoke(object, args);
interceptor.after();
return result;
}
}
⑥Client
package com.hzp.interceptor;
//测试类
public class Client {
public static void main(String[] args){
TargetInterface target=new Target();
MyProxy myProxy=new MyProxy();
TargetInterface proxy=(TargetInterface)myProxy.getProxy(target);
proxy.doSomething();
}
}
分享到:
相关推荐
Struts2拦截器原理分析实例 博文链接:https://zmx.iteye.com/blog/457432
Struts2拦截器(Interceptor) Struts2拦截器(Interceptor)
模拟Struts2拦截器代码,模拟struts2拦截器的实现
里面是自己实现struts拦截器的一个原理,基于jdk的动态代理
在action执行之前先进行拦截器的拦截处理,然后再执行action的execute方法,返回给拦截器,再对应相应result
仿struts 2 拦截器原理
Struts2拦截器.ppt Struts2拦截器.ppt Struts2拦截器.ppt
struts2,Interceptor struts2拦截器实例,两套实例,一套是针对单个的action配置的,另一套实例是针对全局的action配置的拦截器interceptor
浅谈Struts2拦截器的原理与实现.docx
Struts2拦截器源程序 Struts2拦截器源程序 Struts2拦截器源程序 Struts2拦截器源程序 Struts2拦截器源程序
关于struts2 拦截器的详细的解释及其在开发中对struts2的拦截器的应用和拦截器在框架中的作用.
NULL 博文链接:https://zhouxianglh.iteye.com/blog/523783
struts2拦截器应用小例子,与大家共分享
Struts2拦截器实现权限控制demo,我感觉对初学者还是有一定帮助的
NULL 博文链接:https://cmexico.iteye.com/blog/621208
Struts2的处理流程: • 客户端产生一个HttpServletRequest的请求,该请求被提交到一系列的标准过滤器(Filter)组建链中(如ActionContextCleanUp:它主要是清理当前线程的ActionContext、Dispatcher,...
综合使用servlet filter与struts2 interceptor对权限进行验证。
基于struts2的拦截器测试,实现了页面的跳转,中间过程的拦截
struts2拦截器的使用说明文档,配置说明文档。可以看一下