`

Struts2拦截器的底层实现(AOP思想)

 
阅读更多

1.目标类接口:

package com.interceptor;

public interface TargetInterface
{
public void doSomething();
}

2.目标类实现:

复制代码
package com.interceptor;

public class Target implements TargetInterface
{
public void doSomething()
{
System.out.println("doSomething");
}
}
复制代码

3.自定义拦截器:

复制代码
package com.interceptor;

public class Interceptor
{

public void before()
{
System.out.println("before");
}

public void after()
{
System.out.println("after");
}
}
复制代码

4.将拦截器类和目标代码类结合在一起的处理类:

复制代码
package com.interceptor;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

public class MyHandler implements InvocationHandler
{

private Object object;
private Interceptor interceptor=new Interceptor();

public void setObject(Object object)
{
this.object=object;
}

public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {

Object result=null;
interceptor.before();
result=method.invoke(object, args);
interceptor.after();
return result;
}
}
复制代码

5.将目标类进行包装后的代理类:

复制代码
package com.interceptor;
import java.lang.reflect.Proxy;

public class MyProxy
{
public Object getProxy(Object object)
{
MyHandler myHandler=new MyHandler();
myHandler.setObject(object);
return Proxy.newProxyInstance(Target.class.getClassLoader(),object.getClass().getInterfaces(),myHandler);
}
}
复制代码

6.客户端程序测试类:

复制代码
package com.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拦截器实现原理模拟 2013-8-8

    在Struts2中,拦截器是基于AOP(面向切面编程)思想的类,它们可以拦截用户的请求,执行预定义的操作,如日志记录、权限检查、事务管理等,然后将控制权传递给下一个拦截器或最终的目标Action。拦截器链的概念使得...

    struts1拦截器实现所需saif.jar包

    总的来说,`struts1拦截器实现所需saif.jar包`提供了Struts1与Spring框架整合的能力,特别是利用Spring的AOP特性来实现拦截器功能。这使得开发者能够在Struts1项目中享受到Spring带来的便利,同时通过拦截器优化和...

    拦截器机制及其实现原理

    拦截器是Struts2框架的核心组成部分,通过本章的学习,应该掌握如下知识点: 了解AOP设计思想。 能够使用AOP设计思路,分离横切关注点 掌握Java中提供的动态代理方式实现拦截 了解拦截在开发中的意义 掌握Struts2...

    Spring-Struts-IBatis-AOP-Transaction

    它继承了 Struts 1 的优点,并引入了许多改进,如拦截器机制,使开发者可以更加灵活地处理请求和响应。Struts 2 与 Spring 的整合提供了更强大的功能,例如利用 Spring 的 DI 来管理 Struts 2 的动作类,以及事务...

    struts2 spring hibernate integration

    通过拦截器(Interceptor)机制,Struts2允许开发者自定义行为,如日志、权限检查等。此外,Struts2支持多种结果类型,包括JSP、FreeMarker、Velocity等模板引擎,使得视图与控制器分离,提高了代码的可维护性。 **...

    struts2 jar包及配置文件

    6. **拦截器配置**:Struts2的拦截器是实现AOP(面向切面编程)的关键,可以实现如日志记录、权限验证、事务管理等功能。拦截器可以全局配置,也可以针对特定Action进行配置。 理解并掌握Struts2的jar包和配置文件...

    基于Struts 2+Hibernate+Spring实现论坛系统

    此外,Struts 2 还提供强大的拦截器机制,可以实现权限控制、数据校验等功能,确保论坛系统的安全性和稳定性。 接着,Hibernate 是一个对象关系映射(ORM)框架,它简化了数据库操作,将Java对象和数据库表之间的...

    Struts2 开发包

    3. **Interceptor(拦截器)**:拦截器是Struts2中的重要概念,它们在Action执行前后插入代码,实现了AOP(面向切面编程)的理念。常见的拦截器有日志、验证、异常处理等。通过配置`struts.xml`,可以定制拦截器链,...

    struts2核心jar包

    3. **Interceptor(拦截器)**:Struts2的拦截器是AOP(面向切面编程)思想的体现,它们在Action调用前后执行,可以实现日志记录、权限验证、性能监控等功能。常见的拦截器有Validation拦截器(用于字段验证)、...

    struts2_2

    拦截器链可以实现AOP(面向切面编程)的概念,如日志记录、权限验证、性能监控等功能。开发者可以根据需求自定义拦截器,这些拦截器在Action执行前后进行操作。 关于源码分析,Struts2的源码提供了深入理解框架工作...

    传智播客struts2全程学习笔记

    拦截器的工作方式类似于AOP(面向切面编程),开发者可以通过简单的配置来实现复杂的业务逻辑,例如实现权限拦截等功能。 3. **类型转换器**:Struts2支持类型转换器,能够将HTTP请求中的字符串转换为需要的数据...

    struts2常用jar包

    2. xwork-core-2.3.4.1.jar:XWork是Struts2的底层框架,提供了许多基础功能,如类型转换、验证、AOP(面向切面编程)支持以及对象的映射。它是Struts2的核心组成部分,负责处理请求和业务逻辑的执行。 3. ...

    ssh最新框架搭建,加入拦截器

    在Struts2中,拦截器是实现业务逻辑增强的一种方式,它们在Action执行前后执行,可以实现日志记录、权限验证、性能监控等功能。要添加拦截器,你需要在struts.xml配置文件中定义拦截器栈,并关联到特定的Action或者...

    struts2的jar包

    Struts2的核心是拦截器模型,通过拦截器链实现了业务逻辑和表现层的分离。Action类是Struts2的核心组件,负责处理用户的请求。配置文件(struts.xml)用于定义Action、结果类型、包等核心元素,实现了基于注解或XML...

    struts2-spring-plugin-2.2.1.jar

    Struts2的核心功能包括:Action映射、结果映射、拦截器机制、强大的表单验证和国际化支持等。通过使用Struts2,开发者可以更专注于业务逻辑的实现,而非底层的HTTP请求处理。 **Spring框架** Spring 是一个全面的...

    struts2开发所需jar包

    在实际开发中,Struts2提供了强大的拦截器(Interceptor)机制,可以自定义拦截规则以实现登录验证、权限控制等功能。同时,通过Action和Result,可以定义业务逻辑和视图映射。Struts2的标签库则使得在JSP页面中操作...

    Struts2权威指南 加源码

    首先,Struts2的核心功能包括动作映射、结果类型、拦截器等。动作映射允许开发者将URL请求与特定的业务逻辑方法关联起来,而结果类型则定义了处理动作后如何展示结果,如跳转到某个页面或者发送JSON数据。拦截器则是...

    最新项目系统:Struts2+Spring4+Hibernate4三大框架整合

    Struts2的拦截器机制增强了框架的灵活性,可以添加自定义拦截器来实现如权限验证、日志记录等扩展功能。 Spring4作为企业级应用的全能框架,包含了依赖注入(DI)、面向切面编程(AOP)、数据访问/集成(DAO)、Web...

    真实项目论坛系统(Struts 2+Hibernate+Spring实现).

    【标题】:“真实项目论坛系统(Struts 2+Hibernate+Spring实现)”是指一个基于Java技术栈的Web应用程序,该程序使用了Struts 2、Hibernate和Spring框架的组合来构建一个完整的在线讨论平台。这四个关键词揭示了...

Global site tag (gtag.js) - Google Analytics