Interceptor 拦截器,是AOP概念
1.关于Interceptor原理及简单运用:
参考:http://tech.ddvip.com/2009-01/1232351683106360.html
2.关于AOP:
3.struts-default.xml中定义的一些interceptor
l timer:记录Action执行的时间,并做为日志信息输出;
l logger:在日志信息中输出要执行的Action信息;
l chain:将前一个执行结束的Action属性设置到当前的Action中。它被用在ResultType为“chain”指定结果的Action中,该结果Action对象会从OgnlValueStack中获得前一个Action对应的属性,它实现Action链之间的数据传递;
l static-params:将xwork.xml配置文件里定义的Action参数,设置到对应的Action中。Action参数使用<param />标签,是<action />标签的直接子元素。我们这里定义的Action类必需实现com.opensymphony.xwork.config.entities. Parameterizable接口;
l params:将Request请求的参数设置到相应Action对象的属性中,用户注册例子用到过这个拦截器;
l model-driven:如果Action实现ModelDriven接口,它将getModel()取得的模型对象存入OgnlValueStack中;
l component:激活组件功能支持,让注册过的组件在当前Action中可用,即为Action提供IoC(依赖倒转控制)框架的支持;
l token:核对当前Action请求(request)的有效标识,防止重复提交Action请求(request)。
l token-session:功能同上,但是当提交无效的Action请求标识时,它会将请求数据保存到session中。
l validation:实现使用xml配置文件({Action}-validation.xml)对Action属性值进行验证,详细请看后面介绍的验证框架。
l workflow:调用Action类的验证功能,假设Action使用ValidationAware实现验证(ActionSupport提供此功能),如果验证没有通过,workflow会将请求返回到input视图(Action的<result />中定义的)。
l servlet-config:提供Action直接对HttpServletRequest或HttpServletResponse等JavaServlet api的访问,Action要实现相应的接口,例如:ServletRequestAware或ServletResponseAware等。如果必需要提供对JavaServlet api的访问,我们建议使用ServletActionContext,在前面ActionContext章节中有介绍。
l prepare:在Action执行之前调用Action的prepare()方法,这个方法是用来准备Action执行之前要做的工作。它要求我们的Action必需实现com.opensymphony.xwork. Preparable接口
| conversionError:用来处理框架进行类型转化(Type Conversion)时的出错信息。它将存储在ActionContext中的类型转化(Type Conversion)错误信息转化成相应的Action字段的错误信息,保存在堆栈中。根据需要,可以将这些错误信息在视图中显示出来。
4.使用struts-default.xml中的Interceptor
引入:
<include file="struts-default.xml" />
action配置中声明使用interceptor
<interceptor-ref name="timer"></interceptor-ref>
4.使用自定义Interceptor 过程
创建Interceptor,实现Interceptor或者直接继承AbstactInterceptor
关于创建Interceptor的细节,在下一篇介绍
分享到:
相关推荐
利用反射和动态代理机制实现自定义拦截器Interceptor 在本文中,我们将探讨如何利用反射和动态代理机制来实现自定义拦截器Interceptor。拦截器Interceptor是一种常见的设计模式,用于在方法调用前后执行某些操作,...
### Struts2 拦截器 Interceptor #### 一、概述 在Struts2框架中,拦截器(Interceptor)是一种非常重要的机制,它能够帮助开发者实现诸如权限控制、事务管理、日志记录等跨切关注点的功能。通过定义不同的拦截器...
STRUTS2:拦截器Interceptor
"Spring Boot 中的拦截器Interceptor 配置和使用详解" Spring Boot 框架提供了拦截器Interceptor机制,用于在请求处理前、后执行某些操作。拦截器Interceptor可以用来实现身份验证、日志记录、缓存、权限控制等...
在Spring Boot中,我们可以通过实现`HandlerInterceptor`接口并重写其三个方法——`preHandle()`, `postHandle()`, 和 `afterCompletion()` 来创建自定义的拦截器。 `preHandle()` 方法在目标处理方法调用之前执行...
struts2 拦截器_教程.zip
Struts2拦截器(Interceptor) Struts2拦截器(Interceptor)
Spring MVC 拦截器 interceptor 用法详解 Spring MVC 中的拦截器(Interceptor)类似于 Servlet 中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理。例如通过拦截器可以进行权限验证、记录请求信息的...
jfinal中拦截器(Interceptor)的参数注入jfinal中拦截器(Interceptor)的参数注入
接下来,我们将深入探讨Android OkHttp包中的HTTP拦截器Interceptor的使用方法。 首先,Interceptor接口只有一个核心方法`intercept(Chain chain)`,这个方法会在请求发送之前或响应返回之后被调用。`Chain`对象...
拦截器 interceptor 过滤器 filter web.xml implements filter filterchain arg2.doFilter(req,resp); 监听器 servlet application /session /request 6/8 个 1、拦截器 定义拦截器的包 定义拦截器的...
Retrofit Interceptor(拦截器) 的使用和实现 Retrofit Interceptor(拦截器) 是一个非常重要的组件,在 Retrofit 框架中扮演着关键角色。拦截器可以拦截请求并做相关处理,典型的处理方式是修改 header,但我们也...
在Java Web开发中,拦截器(Interceptor)是一种重要的设计模式,它主要用于在请求处理之前、之后或处理过程中执行一些预定义的任务。拦截器通常被应用于MVC(Model-View-Controller)框架,如Spring MVC,Struts等...
### Struts2 Interceptor 拦截器详解 #### 一、概述 在现代Web开发中,特别是基于Java的Web应用程序开发中,Struts2框架因其简洁性和强大的扩展能力而备受青睐。Struts2框架的核心设计理念之一是MVC(Model-View-...
本文将详细讲解如何利用OkHttp的请求拦截器(Interceptor)实现请求的拦截并打印日志到logcat,这对于调试和监控网络请求极其有用。 首先,我们来了解什么是OkHttp的Interceptor。Interceptor是OkHttp框架中的一个...
Struts2是一个流行的Java web框架,它引入了拦截器(Interceptor)的概念,这是一种基于AOP(面向切面编程)的设计模式,用于在Action执行前后插入额外的处理逻辑。拦截器的使用大大增强了代码的可维护性和可扩展性...
在Spring MVC框架中,Interceptor(拦截器)是一个强大的工具,用于在请求被控制器处理之前或之后执行特定的逻辑。它们可以用来实现通用的功能,如权限验证、日志记录、性能统计等,避免在每个控制器方法中重复编写...
**请求拦截器(request interceptor)**: 1. **设置全局请求头**: 可以统一设置所有请求的Header,例如设置`Content-Type`为`application/json`,或者添加自定义的Authorization token。 2. **数据预处理**: 在发送...