`
阅读更多

在水木回一个大牛的帖子讨论拦截器,也发到这里。

所谓拦截,是新媳妇回娘家,路遇强盗。重要的是她能不能回家已经取决与强盗而不是自己。看下面的代码:

 

interface AbcInterceptor{

    
boolean beforeExecute(Context context,Command cmd);

    
void afterExecute(Context context,Command cmd);

}

 

我认为这个所谓的拦截器其实名不符其实。原因是这强盗太弱了,他无法阻止新媳妇回娘家,所以也就无所谓拦截,撑死是路边的野草在新媳妇经过的时候摆了摆头——所谓触发的事件而已。

真正的拦截器该是这样:

 

interface RealInterface{

    
void intercept(Context context,Command cmd);

}

 

看Xwork的代码会比较清楚。这样的拦截,才所谓拦截,可怜的人儿能不能见到她娘已经完全掌握在强盗的手里——在强盗的作用下,她可能根本回不了家,也可能被卖了还对外说自己回到了娘家。

XWork里面其实每个interceptor的intercept方法大多要调用actionInvocation.invoke()方法,来完成拦截器链式调用。而ServletFilter里面也大多要写一个chain.doFilter(..)。这里面其实有正主执行前后的玄机,也有控制其是否能走下去的能力。

一家之言。

分享到:
评论
1 楼 redcoatjk 2009-04-19  
这个例子有趣~

相关推荐

    拦截器的使用示例Interceptor

    以下是关于拦截器的详细知识点: 1. **拦截器的概念**: 拦截器是AOP(面向切面编程)的一种实现方式,它可以拦截并处理特定的系统调用,如HTTP请求。通过在控制器方法调用前或后插入自定义代码,拦截器可以实现...

    请求拦截器和响应拦截器.docx

    请求拦截器和响应拦截器 请求拦截器和响应拦截器是 Axios 库中提供的一种机制,用于在发送请求之前和响应数据返回之前对数据进行处理。下面是对这两个概念的详细解释: 请求拦截器 请求拦截器是指在发送请求之前...

    WebService之自定义拦截器(server+client)

    在IT行业中,Web服务是应用程序之间进行通信的一种标准方法,而WebService之自定义拦截器的实现,无论是对于服务器端还是客户端,都是为了增强服务的功能性和安全性。本文将深入探讨自定义拦截器的概念、作用以及...

    CXF3.0+Spring3.2 自定义拦截器

    1. **CXF拦截器基础**:CXF的拦截器是基于JAX-WS规范的Handler Chain模型,分为In-bound(请求进来时触发)和Out-bound(响应出去时触发)两类。拦截器可以通过在服务配置中指定,或者通过编程方式动态添加。 2. **...

    mybatis 分页拦截器及拦截器配置

    MyBatis 分页拦截器是实现数据库查询分页效果的一种高效解决方案。在传统的SQL查询中,我们通常需要手动编写分页语句,但这容易出错且不易维护。通过使用分页拦截器,我们可以将分页逻辑封装起来,使得在编写Mapper...

    微信小程序请求拦截器 ,响应拦截器

    微信小程序请求拦截器 ,响应拦截器,结合微信小程序二次封装request 一起使用

    自定义拦截器的实现以及拦截器的详细配置

    在Java Web开发中,拦截器(Interceptor)是一个重要的概念,特别是在使用MVC框架如Struts2时。拦截器可以理解为一种预处理和后处理机制,它在请求到达控制器之前和离开控制器之后进行操作,例如日志记录、权限检查...

    struts2--4.拦截器

    在`struts4_web`项目中,你可能会发现一些关于拦截器的实际应用示例。通过分析项目的配置文件和源代码,你可以了解到如何在实际项目中配置和使用拦截器,以及它们如何协同工作来提供高效、安全的Web服务。 总结来说...

    SpringBoot拦截器原理解析及使用方法

    在SpringBoot框架中,拦截器是一个非常重要的组件,它能够在请求到达控制器(Controller)之前或者之后对请求进行拦截,以完成一些预处理或后处理操作。拦截器通常用于权限检查、日志记录、性能监控等场景。 拦截器...

    uni-app 请求拦截器

    【uni-app请求拦截器】是基于uni-app框架实现的一种机制,它允许开发者在发送网络请求前和接收到响应后执行自定义的操作。这种机制对于统一处理请求头、数据格式、错误处理以及添加全局的请求前后的逻辑非常有用,极...

    理解拦截器用于在某个方法或字段被访

    【理解拦截器】 拦截器是面向切面编程(AOP)的一个重要概念,它允许在方法或字段被访问之前或之后插入额外的操作。这提供了一种灵活的方式,可以在不修改原有代码的情况下,增强或控制程序的行为。在Web开发框架如...

    拦截器解决中文乱码问题

    "拦截器解决中文乱码问题"这个主题,主要关注的是如何通过使用拦截器(Interceptor)这一技术手段来预防或解决乱码现象。拦截器是Spring MVC框架中的一个重要组件,它可以对HTTP请求进行预处理和后处理,从而在数据...

    MyBatis拦截器:给参数对象属性赋值的实例

    MyBatis拦截器是MyBatis框架中的一种插件机制,允许用户自定义代码来扩展MyBatis的功能。在这个特定的实例中,我们讨论的是一个用于给参数对象属性赋值的拦截器。这个拦截器的主要目标是在执行增删改操作时,自动为...

    mybatis拦截器实现通用权限字段添加的方法

    MyBatis拦截器实现通用权限字段添加的方法 MyBatis拦截器是一种非常实用的技术,可以用来实现各种复杂的数据库操作。本文将详细介绍如何使用MyBatis拦截器来实现通用权限字段添加,达到灵活、可靠、可维护的数据库...

    Spring Cloud OpenFeign - - - >拦截器

    初学者很容易将 Spring MVC 拦截器 和 Spring Cloud OpenFeign 拦截器搞混,误以为OpenFeign拦截器就是SpringMVC拦截器:Spring MVC拦截器发生在客户端 和 服务端之间,在客户端向服务端发送请求时进行拦截处理。...

    Struts2拦截器及其用法详细说明

    - XML配置:在`struts.xml`文件中,使用`<interceptor>`元素定义拦截器,`<interceptor-stack>`元素组合多个拦截器,`<package>`元素下的`interceptors`属性指定拦截器栈。 ```xml <!-- 可以添加其他内置或...

    SpringBoot的拦截器

    Spring Boot提供了对Spring MVC的集成,因此我们可以利用Spring MVC的拦截器机制来实现这些功能。 首先,让我们了解一下Spring Boot中创建拦截器的基本步骤: 1. 创建自定义拦截器类:你需要创建一个实现了`...

    拦截器和过滤器的区别

    ### 拦截器与过滤器的区别 #### 一、概念简介 在现代软件开发过程中,特别是Web应用程序中,为了实现灵活高效的业务逻辑处理及控制流管理,常常会使用到两种设计模式:拦截器(Interceptor)与过滤器(Filter)。...

Global site tag (gtag.js) - Google Analytics