package com.interceptor;
public class Interceptor
{
public void before()
{
System.out.println("before");
}
public void after()
{
System.out.println("after");
}
}
package com.interceptor;
public class Target implements TargetInterface
{
public void doSomething()
{
System.out.println("do something");
}
}
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;
}
}
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);
}
}
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();
}
}
分享到:
相关推荐
这个压缩包包含的"src_java_xwork"和"src_java_struts2"是Struts2的核心源码,分别对应XWork框架和Struts2框架的主要部分。 XWork是Struts2的基础,它提供了一套行动调度、类型转换、拦截器等基础服务。在"src_java...
标题"struts2-src"表明我们讨论的是Struts2框架的源代码,而描述提到的"struts2.0的源码,这个源代码都在里面"则暗示我们将深入探究Struts2的核心机制和实现细节。 Struts2源码分析可以从以下几个关键点展开: 1. ...
在这个"struts2 src lib"压缩包中,包含的是Struts2框架的源代码(src)和库文件(lib)。 源码(src)部分是Struts2的核心组件和模块的Java源代码,这对于开发者来说是非常宝贵的资源。通过阅读源码,开发者可以...
而"struts2 interceptor annotation plugin"则是Struts2框架提供的一种使用注解来配置拦截器的方式,这种方式更加简洁、直观,减少了XML配置文件的复杂性。 注解(Annotation)是Java编程语言的一个重要特性,它...
在“struts2_src”部分,我们主要关注的是Struts2框架的源代码,这对于理解其内部工作原理、进行定制开发或调试是非常有价值的。 一、Struts2框架的核心组件和原理 1. FilterDispatcher:Struts2的核心控制器,它...
在"struts2-src.rar"这个压缩包中,包含了Struts2框架的源代码以及相关的插件代码,这对于学习和理解Struts2的工作原理以及进行定制化开发具有极大的价值。 首先,源码分析是理解任何软件框架的基础。通过阅读...
Struts2_CMS_Src.rar 是一个包含Struts2内容管理系统源代码的压缩包,它提供了深入了解和学习Struts2框架的机会。Struts2是一个基于MVC(模型-视图-控制器)设计模式的Java Web应用程序框架,它极大地简化了构建可...
- **com.opensymphony.xwork**包:XWork是Struts 2的基础,提供了动作调度、类型转换、异常处理等功能的实现。 - **ognl**包:Struts 2使用OGNL(Object-Graph Navigation Language)作为表达式语言,处理Action...
3. **Interceptor(拦截器)**:拦截器是Struts 2中实现AOP(面向切面编程)的关键组件。它们在Action调用前后执行,可以用来实现如日志记录、权限检查、性能监控等功能。 4. **Value Stack(值栈)**:值栈是...
这个压缩包`struts_src-2.1.8.rar`包含了Struts 2框架的核心源代码和其他相关组件,对于开发者来说是学习和理解Struts 2工作原理的宝贵资源。以下将详细解析这个压缩包中的各个部分: 1. **apps**: 这个目录可能...
本资源"struts_2_src"提供了Struts 2的源代码,非常适合在MyEclipse环境中进行加载和查看,以帮助开发者深入理解其内部工作原理。 Struts 2的核心组件包括Action、Result、Interceptor等。Action是业务逻辑的载体,...
它的源代码可以在"struts2_src.zip"这个压缩包中找到,这为开发者提供了一个深入理解框架工作原理、自定义行为或优化性能的机会。"src"标签暗示了这个压缩包包含的是源代码文件。 在Struts2框架中,主要包含以下几...
import org.apache.struts2.interceptor.SessionAware; import com.opensymphony.xwork2.ActionSupport; public class HelloWorldAction extends ActionSupport implements SessionAware { private static final ...
7. **Interceptor(拦截器)**:拦截器是Struts2引入的一个强大特性,允许在Action调用前后插入自定义逻辑,例如日志、权限检查等。 在“lib”目录下,你可能会找到Struts框架以及其他依赖的库文件,比如: - **...
2. **Interceptor(拦截器)**:拦截器是Struts2处理请求的核心机制,它们在Action调用前后执行,实现了如日志记录、事务管理、权限控制等功能。开发者可以自定义拦截器来满足特定需求。 3. **Plug-in架构**:...
5. `org.apache.struts2.interceptor`: 定义了内置的拦截器,拦截器是Struts2处理请求的重要部分,可以进行预处理和后处理操作。 6. `org.apache.struts2.util`: 实用工具包,提供各种辅助功能。 7. `org.apache....
在【标题】"struts-2.0.14-src.zip"中,我们看到的是Struts2框架的版本号为2.0.14的源码压缩包。这个版本可能发布于若干年前,但它的核心概念和技术对于理解Struts2的工作机制仍然非常有价值。源码的获取通常通过...
2. **src/main/resources**:可能有struts.properties或struts.xml,这是Struts2的配置文件,定义了Action的映射、拦截器栈等。 3. **src/main/webapp**:Web应用的根目录,内含WEB-INF目录下的web.xml(定义servlet...
Struts2是一个强大的Java web应用程序框架,用于构建和部署可维护、高性能的MVC(Model-View-Controller)架构的应用程序。在Web开发中,图片上传和预览是常见的功能需求,尤其对于用户交互丰富的应用来说。Struts2...
Struts2通过Action和Interceptor的概念,实现了请求的路由和业务逻辑的处理。Action是业务逻辑的载体,Interceptor则是拦截请求并在Action执行前后进行预处理或后处理的组件。此外,Struts2还支持多种视图技术,如...