struts2学习-简单的拦截器
2013-08-28 18:59
253 查看
第一个接口:
package com.struts2.interceptorDemo;
/**
* @author Administrator
*
*/
public interface Dog {
//两个方法的声明
public void info();
public void run();
}
接口的实现类
package com.struts2.interceptorDemo;
/**
* @author Administrator
*
*/
public class DogImpl implements Dog{
public void info() {
System.out.println("INFO");
}
public void run() {
System.out.println("RUN");
}
}
拦截器的定义
package com.struts2.interceptorDemo;
public class DogInterceptor {
//第一个拦截器
public void method1(){
System.out.println("模拟方法1");
}
//第二个拦截器
public void method2(){
System.out.println("模拟方法1");
}
}
代理工厂
package com.struts2.interceptorDemo;
import java.lang.reflect.Proxy;
public class MyProxyFactory {
public static Object getProxy(Object o){
ProxyHandle handle=new ProxyHandle();
handle.setTarget(o);
return Proxy.newProxyInstance(DogImpl.class.getClassLoader(), o.getClass().getInterfaces(), handle);
}
}
handle类
/**
*
*/
package com.struts2.interceptorDemo;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
/**
* @author Administrator
*
*/
public class ProxyHandle implements InvocationHandler {
private Object target;
DogInterceptor dogInterceptor=new DogInterceptor();
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
Object result=null;
if(method.getName().equals("INFO")){
dogInterceptor.method1();
result=method.invoke(target, args);
dogInterceptor.method2();
}else{
result=method.invoke(target, args);
}
return result;
}
public void setTarget(Object o) {
this.target = o;
}
}
测试类
/**
*
*/
package com.struts2.interceptorDemo;
/**
* @author Administrator
*
*/
public class TestDog {
/**
* @param args
*/
public static void main(String[] args) {
//创建一个实例
Dog dogProxy=new DogImpl();
Dog dog=null;
Object proxy=MyProxyFactory.getProxy(dogProxy);
if(proxy instanceof Dog){
dog=(Dog)proxy;
}
dog.info();
dog.run();
}
}
package com.struts2.interceptorDemo;
/**
* @author Administrator
*
*/
public interface Dog {
//两个方法的声明
public void info();
public void run();
}
接口的实现类
package com.struts2.interceptorDemo;
/**
* @author Administrator
*
*/
public class DogImpl implements Dog{
public void info() {
System.out.println("INFO");
}
public void run() {
System.out.println("RUN");
}
}
拦截器的定义
package com.struts2.interceptorDemo;
public class DogInterceptor {
//第一个拦截器
public void method1(){
System.out.println("模拟方法1");
}
//第二个拦截器
public void method2(){
System.out.println("模拟方法1");
}
}
代理工厂
package com.struts2.interceptorDemo;
import java.lang.reflect.Proxy;
public class MyProxyFactory {
public static Object getProxy(Object o){
ProxyHandle handle=new ProxyHandle();
handle.setTarget(o);
return Proxy.newProxyInstance(DogImpl.class.getClassLoader(), o.getClass().getInterfaces(), handle);
}
}
handle类
/**
*
*/
package com.struts2.interceptorDemo;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
/**
* @author Administrator
*
*/
public class ProxyHandle implements InvocationHandler {
private Object target;
DogInterceptor dogInterceptor=new DogInterceptor();
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
Object result=null;
if(method.getName().equals("INFO")){
dogInterceptor.method1();
result=method.invoke(target, args);
dogInterceptor.method2();
}else{
result=method.invoke(target, args);
}
return result;
}
public void setTarget(Object o) {
this.target = o;
}
}
测试类
/**
*
*/
package com.struts2.interceptorDemo;
/**
* @author Administrator
*
*/
public class TestDog {
/**
* @param args
*/
public static void main(String[] args) {
//创建一个实例
Dog dogProxy=new DogImpl();
Dog dog=null;
Object proxy=MyProxyFactory.getProxy(dogProxy);
if(proxy instanceof Dog){
dog=(Dog)proxy;
}
dog.info();
dog.run();
}
}
相关文章推荐
- Struts2学习总结(3)--值栈,Ognl表达式,Struts标签库,国际化,数据校验,拦截器
- struts2拦截器简单例子
- Struts2拦截器总结学习
- struts2学习dem002_拦截器(interceptor)和tomcat下BASIC认证
- struts2第十三讲学习笔记,拦截器interceptor的详细讲解
- 简单的利用Struts2拦截器实现权限校验
- Struts2使用过滤器和拦截器进行简单权限校验
- Struts2学习总结(八):拦截器
- struts2实现简单action时间拦截器
- Struts2学习笔记之自定义拦截器
- 学习struts2的笔记--顺便学习博客写法---struts2的一些拦截器(部分)
- struts2 学习笔记拦截器
- Struts2学习(五)---什么时候用过滤器和拦截器及区别
- struts2学习笔记之拦截器(Interceptor)
- struts2学习笔记(8)——拦截器原理
- 码农小汪-struts2学习7-拦截器
- JAVA_WEB Struts2学习:struts2自定义拦截器
- 防止未登录用户操作—struts2拦截器简单实现
- Struts2学习---简单的数据校验、访问Web元素
- Struts2拦截器学习