`
wang吖
  • 浏览: 240688 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Structs2的interceptor模拟实现

 
阅读更多

Structs2的interceptor模拟实现

1、自定义interceptor接口

public interface MyInterceptor {

	public void interceptor(Invocation invocation);
}

 2、拦截器1

 

public class FirstInterceptor implements MyInterceptor {

	@Override
	public void interceptor(Invocation invocation) {
		System.out.println("第一次拦截开始---------");
		invocation.invoke();
		System.out.println("第一次拦截结束---------");
	}

}

 3、拦截器2

public class SecondInterceptor implements MyInterceptor {

	@Override
	public void interceptor(Invocation invocation) {
		System.out.println("第二次拦截开始---------");
		invocation.invoke();
		System.out.println("第二次拦截结束---------");
	}

}

 4、Invocation的实现

 

import java.util.ArrayList;
import java.util.List;

public class Invocation {

	List<MyInterceptor> interceptors = new ArrayList<MyInterceptor>();
	int index = -1;

	public Invocation() {
		this.interceptors.add(new FirstInterceptor());
		this.interceptors.add(new SecondInterceptor());
	}

	public void invoke() {
		index++;
		if (index < interceptors.size()) {
			interceptors.get(index).interceptor(this);
		} else {
			// 拦截器拦截完毕后执行Action
			new Action().execute();
		}
	}
}

 5、模拟Action类

 

public class Action {

	public void execute() {
		System.out.println("Action 执行**********************");
	}
}

 6、客户端Client调用

 

public class Client {

	public static void main(String[] args) {
		new Invocation().invoke();
	}

}

 总结:

          Structs2拦截器的实现方式类似于设计模式中的责任链模式,为了能更容易理解拦截器的原理http://787141854-qq-com.iteye.com/admin/blogs/2070819,建议先去学习一下责任链模式。

 

分享到:
评论

相关推荐

    struts2框架模拟-教学示范代码

    3. **拦截器(Interceptor)**:拦截器是Struts2的一个重要特性,它可以插入到Action调用的前后,执行一些预处理或后处理任务,如日志记录、权限检查等。Struts2提供了一系列内置的拦截器,同时允许自定义拦截器以...

    自己模拟实现struts的dispatcherAction

    实际的Struts框架在DispatcherAction的实现上还考虑了拦截器(Interceptor)、多视图(多个Forward)支持、国际化(Internationalization)等问题,模拟实现时也可以考虑这些增强功能。 通过以上步骤,你可以理解...

    Servlet简单模拟Struts2

    在本主题"Servlet简单模拟Struts2"中,我们将探讨如何利用Servlet来实现类似Struts2框架的一些关键功能,包括请求拦截、XML配置解析、动态代理以及日志拦截。 首先,让我们了解一下Struts2框架的核心特性。Struts2...

    struts2实现留言板

    在这个“struts2实现留言板”的项目中,我们将深入探讨如何利用Struts2框架来创建一个功能完备的留言板系统,包括添加、回复和删除留言等基本操作。 首先,我们要了解Struts2的核心组件和工作原理。Struts2框架通过...

    \\(^_^)/ 模拟Struts2的AOP实现 (转)

    这篇博客文章将探讨如何模拟Struts2的AOP实现。 AOP的核心概念是切面(Aspect)、连接点(Join Point)、通知(Advice)和切入点(Pointcut)。在Struts2中,这些概念通过拦截器(Interceptor)来实现。拦截器是...

    运用struts2技术的拦截器实现的页面检测和用户注册

    在Struts2中,我们可以通过实现`com.opensymphony.xwork2.interceptor.Interceptor`接口或者继承`InterceptorSupport`类来创建自定义拦截器。拦截器需要重写`intercept()`方法,这是执行拦截逻辑的地方。 2. **...

    struts1和struts2的区别

    - **Struts2**: 支持为每个Action定义不同的拦截器堆栈(Interceptor Stacks),这意味着可以根据不同的Action来配置不同的拦截器组合,增加了灵活性。 通过上述对比可以看出,Struts2相比Struts1在很多方面进行了...

    模拟struts2框架代码.rar_模拟struts框架

    本项目旨在通过Java代码模拟实现Struts2框架的基本功能,帮助我们理解其工作原理。 首先,Struts2的核心是Action类,它是处理用户请求的中心。在模拟实现中,我们需要创建一个或多个Action类,这些类通常会继承自...

    基于Struts2的留言板系统.zip

    7. **Interceptor(拦截器)**: 拦截器是Struts2的一大特色,它可以插入到Action调用链中,执行预处理或后处理操作,如权限检查、日志记录等。 8. ** strut2-convention-plugin**: Struts2提供了一种约定优于配置的...

    struts2整合hibernate的网上银行模拟项目

    Struts2 使用拦截器(Interceptor)机制来扩展功能,如验证、日志、事务管理等。在本项目中,可能会包含多个Action类,每个类对应特定的银行服务,如账户查询、转账、存款等。 接下来,我们来看Hibernate。...

    struts2拦截器实现原理模拟 2013-8-8

    拦截器是Struts2框架中的核心组件之一,它在MVC(Model-View-Controller)架构中扮演着重要角色,实现了灵活的业务逻辑处理和请求流程控制。本文将深入探讨Struts2拦截器的工作原理及其应用。 首先,我们要理解什么...

    Struts2的简单模拟

    3. **拦截器(Interceptor)**:Struts2使用拦截器链来处理请求,拦截器可以实现如日志记录、权限检查等功能。默认的拦截器栈包括了`params`(处理请求参数)、`validation`(表单验证)和`exception`(异常处理)等...

    struts2经典实例

    `struts2-mailreader-2.0.1.war` 是一个模拟邮件阅读器的实例,展示了Struts2处理表单数据、文件上传、用户认证和授权的使用。它可以帮助开发者理解如何在Struts2中实现用户交互和数据管理。 3. **Struts2 Portlet...

    Struts2单元测试

    2. **Interceptor测试**:拦截器是Struts2中强大的功能,可以在请求处理流程中插入自定义逻辑。测试拦截器需要确保它们在正确的时间点被调用,以及它们如何影响Action的执行流程。通过Mockito或EasyMock等工具,可以...

    struts2测试工具

    2. **Mockito**:它允许模拟对象,使你可以在不依赖实际环境的情况下测试Struts2的动作类和其他依赖组件。 3. **Struts2 TestNG Plugin**:这是一个用于Struts2的TestNG集成,提供了一种方便的方式在TestNG框架下...

    模拟struts

    8. **拦截器(Interceptor)**:Struts 2引入了拦截器机制,这是一种AOP(面向切面编程)的概念,可以用来实现日志、权限检查、事务管理等功能,提高了代码的可复用性和可维护性。 9. **Struts与Spring的整合**:在...

    利用struts2实现的网上购物模拟系统

    在这个“利用struts2实现的网上购物模拟系统”中,我们可以深入探讨以下几个核心知识点: 1. **Struts2框架**:Struts2作为MVC框架,提供了一种组织应用程序逻辑的方式。它处理HTTP请求,通过Action类将这些请求...

    Struts2工作原理模拟

    3. **拦截器(Interceptor)**:Struts2的核心机制之一是拦截器,它们按照预定义的顺序在Action调用前后执行。常见的拦截器有结果映射、参数校验、异常处理等,可以实现通用的功能,降低代码重复。 4. **Action上...

    转:struts1与struts2的区别

    - **Struts2**: 通过配置拦截器堆栈(Interceptor Stacks)来为每个Action定制不同的执行流程。这种机制使得开发者可以根据具体需求灵活地组合和调整拦截器,实现了更细粒度的控制。 综上所述,Struts2相比Struts1...

Global site tag (gtag.js) - Google Analytics