- 浏览: 991156 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (223)
- JDBC技术 (29)
- Java Base (21)
- SSH框架的集合 (5)
- Javascript部分 (16)
- Sping2.5框架 (6)
- Hibernate框架 (19)
- JDBC中的数据库连接 (5)
- Ajax技术应用 (9)
- Java工具包下载 (3)
- Database (4)
- Java Web (13)
- 我的生活 (4)
- Struts2 (25)
- S2SH (1)
- Prototype (1)
- jfreeChart (5)
- JPA (7)
- JBPM (1)
- JasperReport (6)
- DWR (1)
- freeMark (2)
- IBatis (2)
- FCKeditor (2)
- POI (1)
- JQuery (6)
- JSON (1)
- JavaMail (3)
- Flex (2)
- CSS收藏夹 (1)
- 润乾报表 (2)
- 开源技术 (1)
- Android (2)
- Android_UI (1)
- Android_OS (6)
- Android_OpenLibs (3)
- Volley (1)
- JS_OpenLibs (1)
- Hessian (3)
- OS (1)
最新评论
-
damoluomu:
简单易懂
Java Web开发Session超时设置 -
di1984HIT:
学习了~~~~~~
Java Web开发Session超时设置 -
lord_is_layuping:
...
Java Web开发Session超时设置 -
15111285554:
...
Java Web开发Session超时设置 -
sfg1314:
暂停后重新下载就会报错:ClientAbortExceptio ...
Java Web 文件下载之断点续传
第一步:创建目标对象的接口
/**
* 目标对象的接口 JDK的动态代理要求目标对象必须实现一个接口
*
* @author 张明学
*
*/
public interface TargetInter {
public void doSomething();
}
第二步: 实现接口创建目标对象
/**
* 目标对象
*
* @author 张明学
*
*/
public class Target implements TargetInter {
public void doSomething() {
System.out.println("目标对象的方法执行!");
}
}
第三步:创建我们的拦截器对象
/**
* 拦截器对象
*
* @author 张明学
*
*/
public class Interceptor {
public void before() {
System.out.println("before方法执行!");
}
public void after() {
System.out.println("after方法执行!");
}
}
第四步:创建我们的处理器
/**
* 处理器类 JDK代理要求实现java.lang.reflect.InvocationHandler接口
*
* @author 张明学
*
*/
public class MyHandler implements InvocationHandler {
/**
* 目标对象
*/
private Object target;
public void setTarget(Object target) {
this.target = target;
}
/**
* 拦截器对象
*/
private Interceptor interceptor = new Interceptor();
/**
* invoke为真正执行的方法
*/
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
Object result = null;
interceptor.before();
result = method.invoke(target, args);
interceptor.after();
return result;
}
}
第五步:创建代理对象
/**
* 代理对象
*
* @author 张明学
*
*/
public class MyProxy {
/**
* 得到对象的实例
* @param obj
* @return
*/
public Object getProxy(Object obj) {
MyHandler myHandler = new MyHandler();
myHandler.setTarget(obj);
/**
* 第一个参数:得到目标对象的class对象的ClassLoader
* 第二个参数:目标对象所实现的接口数组
* 第三个参数:真正执行的对象(处理器)
*/
return Proxy.newProxyInstance(Target.class.getClassLoader(), obj
.getClass().getInterfaces(), myHandler);
}
}
测试:
public class MyTest {
public static void main(String[] args) {
TargetInter targer = new Target();
MyProxy myProxy = new MyProxy();
/**
* 得到代理
*/
TargetInter proxy = (TargetInter) myProxy.getProxy(targer);
proxy.doSomething();
}
}
- Struts2_6.rar (5.9 KB)
- 描述: Struts2拦截器原理分析实例
- 下载次数: 31
发表评论
-
Struts2 + JasperReport应用二:jasperReport Web形式打印
2010-02-02 16:16 5276将jasperReport设计文件和编译文件放到webRoot ... -
Struts2 + JasperReport应用一:导PDF,Excel,HTML显示
2010-01-29 16:34 9883我用的是struts2.1.6,从struts2的自带的dem ... -
Struts2 标签使用简介
2009-12-23 19:33 2667web.xml配置如下: <fil ... -
Struts2 的OGNL使用简介
2009-12-22 13:25 2361<div align="center" ... -
POI与Struts2的使用 poi-2.5.1.jar
2009-09-25 17:43 4893一.POI 简介 Jakarta POI 是apache的子项 ... -
jFreeChart与Struts2的组合,将jFreeChart作为显示视图
2009-09-25 16:26 1487jFreeChart与Struts2的组合: 一,加 ... -
Struts2与Spring2.0的组合
2009-09-09 09:46 1059Struts2与Spring的集成: 一,加入Str ... -
Struts2的异常处理
2009-09-07 13:41 1386Struts2的异常处理: 1,定义自己的异常信息类:继承Ex ... -
Struts2.0深入学习 Strust2与Servlet API,Action多方法调用,result标签的type的类型
2009-09-06 11:08 4446Struts2深入探索: 1,package中的ab ... -
Struts2.0深入学习 命名空间,模型驱动,表单重复提交
2009-09-06 11:04 1884Struts2深入探索: 1,package中的ab ... -
Struts2国际化详解
2009-09-03 15:32 2726Struts2国际化: 1,国际 ... -
Struts2文件下载
2009-09-02 20:09 10618Struts2文件下载: Struts2文件下载对应将一个In ... -
设置Struts2文件上传的类型和大小
2009-09-02 20:09 5229设置Struts2文件上传的类型和大小: 在struts. ... -
Struts2多文件上传
2009-09-02 20:08 2466Struts2多文件上传: 在Action中配置三个属性: p ... -
Struts2文件上传详解
2009-08-31 17:27 2398Struts2文件上传: 一:请选参看Struts2_9中的S ... -
Struts2.0文件上传原理
2009-08-31 13:12 3069Struts2文件上传默认采用apache的文件上传的包,新建 ... -
Struts2的监听器的使用
2009-08-25 19:02 2538Struts2的监听器: 一,建立监听器: ... -
Struts2的拦截器的使用详解
2009-08-25 18:59 2382Struts2的拦截器: 一,拦截器的使用: ... -
Struts2的检证框架详解
2009-08-25 13:00 2457Struts2的检证框架: 一,根据字段校验(为每一 ... -
Struts2的Action多个方法配置和验证
2009-08-18 20:16 4799Struts2的Action多个方法配置和验证: 1 ...
相关推荐
下面将详细探讨Struts2拦截器及其工作原理。 ### 一、Struts2 拦截器概念 1. **拦截器是什么**:拦截器是一种动态拦截Action调用的对象,它可以理解为一个过滤器,它在Action被调用之前和之后执行特定的逻辑。...
通过对Struts2拦截器的深入分析,我们可以看出拦截器不仅是Struts2框架的核心组成部分,也是实现代码重用、提高代码质量的有效手段。理解并合理运用拦截器,对于提升项目的开发效率和代码质量具有重要意义。
分析这个文件或目录可以帮助我们更深入地理解Struts2拦截器的内部工作机制,包括它如何与ActionInvocation交互,以及如何处理请求和响应。 总结来说,Struts2拦截器是框架的核心部分,它们提供了一种灵活的方式,以...
本篇文章将深入剖析Struts2拦截器的工作原理,并通过案例"struts007"来展示如何实际应用。 首先,我们了解下拦截器的基本概念。拦截器是一个实现了Struts2提供的`Interceptor`接口的类,它定义了两个方法:`...
下面将详细探讨Struts2拦截器的源码及其工作原理。 首先,理解拦截器的定义:拦截器是AOP(面向切面编程)的一个概念,在Struts2中,拦截器是基于Java的动态代理机制实现的。它们是一系列实现了`Interceptor`接口的...
在本篇文章中,我们将深入探讨Struts2的拦截器原理以及如何在实际项目中应用拦截器。 拦截器在Struts2中的作用就像电影中的导演,它在动作执行前后插入额外的逻辑,比如日志记录、权限检查、数据验证等。这些操作不...
这篇博客“Struts2 拦截器的执行顺序(二十九)”可能探讨了Struts2拦截器链的工作原理和它们的执行顺序,这对于理解Struts2的内部机制至关重要。 首先,让我们深入理解Struts2的拦截器。拦截器是在Action调用前后...
Struts2 拦截器是JavaWeb开发中Struts2框架的核心组件之一,它基于AOP(面向切面编程)理念,允许...通过理解拦截器的工作原理和如何自定义拦截器,开发者可以更好地利用Struts2框架来构建高效、稳定的JavaWeb应用。
### Struts2拦截器原理与实战案例解析 #### 一、Struts2拦截器概述 Struts2框架作为Java Web开发中的重要工具之一,其核心优势在于强大的MVC架构支持和丰富的扩展性。其中,拦截器(Interceptor)是Struts2框架的...
实践是学习的最佳途径,通过分析和运行代码,你将更深入地了解Struts2拦截器的内部工作原理。 总的来说,Struts2拦截器是实现业务逻辑复用和控制流管理的强大工具。它们提高了代码的可维护性和可扩展性,使得开发者...
Struts拦截器是Java Web开发中的重要概念,尤其在基于Struts 2框架的应用中扮演着核心角色。这个"struts拦截器的例子"提供了一个学习和理解拦截器工作原理的起点,非常适合对这一主题感兴趣的初学者。 Struts 2框架...
Struts2提供了一系列内置的拦截器,如`params`拦截器用于处理请求参数,`exception`拦截器处理异常,`i18n`拦截器实现国际化,`chain`拦截器使请求继续执行下一个Action,`timer`记录Action的执行时间等。这些拦截...
本文将深入探讨Struts2的拦截器使用,结合实例和源码分析,帮助你更好地理解和运用这一特性。 一、拦截器的概念与作用 拦截器是Struts2框架的核心组件之一,它是在动作执行前后插入的一段代码,能够对请求进行...
下面我们将深入探讨Struts2拦截器的工作原理和应用场景。 1. 拦截器的定义: 拦截器是基于AOP(面向切面编程)思想的一种设计模式,它在Action执行前后进行拦截,对请求和响应进行额外处理。在Struts2中,拦截器是...
浪曦Struts2拦截器源码分析是深入理解Struts2工作原理的关键部分。拦截器在Struts2中扮演着重要的角色,它们是AOP(面向切面编程)的一种实现,用于在动作执行前后插入额外的功能,如日志记录、权限检查等。 首先,...
Struts2 拦截器是该框架中的核心组件之一,它允许开发者在Action执行前后插入自定义逻辑,实现如日志记录、权限验证、性能监控等功能。拦截器的机制基于AOP(面向切面编程)思想,通过拦截器链的方式,使得在执行...
2. **拦截器的工作原理**: - 当FilterDispatcher接收到用户的HTTP请求时,会根据配置的拦截器链对请求进行处理。每个拦截器都有`preintercept`和`postintercept`方法,分别在Action方法执行前和执行后被调用。 - ...
这篇博客文章将深入探讨Struts2拦截器的概念、工作原理以及如何在实际项目中应用。 **1. 拦截器概念** 在Struts2框架中,拦截器是一个实现了`Interceptor`接口的Java类,它可以对请求进行预处理或后处理。拦截器链...
通过分析这些文件,你可以更深入地了解Struts2如何处理请求,执行类型转换,应用拦截器以及进行数据校验。 总结来说,Struts2的类型转换、拦截器和校验机制是构建健壮、可维护的Java web应用程序的重要工具。理解并...