默认拦截器在stuts2-core.jar中的struts-deafult.xml中配置功能如下:
timer:记录Action执行的时间,并做为日志信息输出;
logger:在日志信息中输出要执行的Action信息;
chain:将前一个执行结束的Action属性设置到当前的Action中。它被用在ResultType为“chain”指定结果的Action中,该结果Action对象会从OgnlValueStack中获得前一个Action对应的属性,它实现Action链之间的数据传递;
static-params:将xwork.xml配置文件里定义的Action参数,设置到对应的Action中。Action参数使用<param />标签,是<action />标签的直接子元素。我们这里定义的Action类必需实现com.opensymphony.xwork.config.entities. Parameterizable接口;
params:将Request请求的参数设置到相应Action对象的属性中,用户注册例子用到过这个拦截器;
model-driven:如果Action实现ModelDriven接口,它将getModel()取得的模型对象存入OgnlValueStack中;
component:激活组件功能支持,让注册过的组件在当前Action中可用,即为Action提供IoC(依赖倒转控制)框架的支持;
token:核对当前Action请求(request)的有效标识,防止重复提交Action请求(request)。
token-session:功能同上,但是当提交无效的Action请求标识时,它会将请求数据保存到session中。
validation:实现使用xml配置文件({Action}-validation.xml)对Action属性值进行验证,详细请看后面介绍的验证框架。
workflow:调用Action类的验证功能,假设Action使用ValidationAware实现验证(ActionSupport提供此功能),如果验证没有通过,workflow会将请求返回到input视图(Action的<result />中定义的)。
servlet-config:提供Action直接对HttpServletRequest或HttpServletResponse等JavaServlet api的访问,Action要实现相应的接口,例如:ServletRequestAware或ServletResponseAware等。如果必需要提供对JavaServlet api的访问,我们建议使用ServletActionContext,在前面ActionContext章节中有介绍。
prepare:在Action执行之前调用Action的prepare()方法,这个方法是用来准备Action执行之前要做的工作。它要求我们的Action必需实现com.opensymphony.xwork. Preparable接口
分享到:
相关推荐
2. **默认拦截器栈**:`defaultStack`包含了Struts2内置的一些拦截器,如`params`(处理参数),`i18n`(处理国际化),`exception`(处理异常)等。 3. **应用全局拦截器**:现在,所有Action都会在执行前经过`...
通过`<package>`标签的`default-interceptor-ref`属性,可以指定默认拦截器栈,或者在具体的Action配置中使用`interceptor-ref`引用特定的拦截器栈。 **5. 拦截器的生命周期** 拦截器的生命周期包括实例化、初始化...
这里,我们创建了一个名为“myStack”的拦截器栈,并在其中添加了默认拦截器栈和我们自定义的`authorization`拦截器。 3. 应用拦截器:接下来,我们需要在Action配置中引用这个拦截器栈。这样,每次请求该Action时...
-- 拦截器栈中其他默认的拦截器 --> <!-- 将你的拦截器添加到栈中 --> <!-- 使用自定义的拦截器栈 --> <result>success.jsp ``` 这里的`WelcomeAction`是你定义的一个控制器,`success.jsp`是对应的...
-- 将自定义拦截器添加到默认拦截器栈中 --> <!-- 配置Action使用自定义拦截器栈 --> <result name="profanityError">/errorPage.jsp <!-- 其他结果配置 --> </struts> ``` 在上述配置中,`...
例如,`struts-default.xml`中包含了默认的拦截器栈,如`params`拦截器用于处理请求参数,`exception`拦截器用于处理异常,`validation`拦截器进行数据校验。 在深入源码之前,我们需要了解几个关键类: 1. `...
### Java Struts 实现拦截器的关键知识点 #### Struts2框架概述 Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用框架。它利用一系列的组件来处理用户请求并生成响应。其中,拦截器...
Struts2 拦截器是Struts2框架的核心组件之一,它允许开发者在Action执行前后插入自定义的处理逻辑,实现对请求的预处理和后处理,从而增强应用程序的功能和控制流程。以下是对Struts2拦截器原理与实现的详细解析: ...
在这个例子中,`defaultStack`是Struts2默认提供的拦截器栈,包含了一些基础的拦截器,如`params`(处理请求参数)、`i18n`(国际化)等。`myCustomInterceptor`则是我们自定义的拦截器。 创建自定义拦截器有三种...
`saif-0.1.jar`可能包含自定义的拦截器实现,这些拦截器可以扩展Struts的默认行为。例如,它可能包含登录验证、事务管理、性能监控等功能。开发者可以通过在Struts配置文件中声明这些拦截器,将它们插入到Action执行...
通过分析这些源代码,我们可以了解自定义拦截器的实现方式以及与默认拦截器如何协同工作。 而`WebRoot`目录则包含了Web应用的静态资源,如HTML、CSS、JavaScript文件,以及Struts2的配置文件(如`struts.xml`)和...
然而,Struts2从2.1版本开始引入了拦截器注解,使得无需在配置文件中显式声明拦截器,就可以直接在Action类或方法上使用注解来应用拦截器。这种方式更简洁,减少了配置工作量,提高了代码可读性。 以下是几种常见的...
这里的`myStack`定义了一个拦截器栈,将默认拦截器栈与我们的`loginCheck`拦截器组合在一起。`protectedAction`将使用这个拦截器栈,如果用户未登录,`loginCheck`将返回"login",使得用户被重定向到登录页面。 ...
在某些情况下,我们需要在拦截器中处理国际化问题,例如根据用户的选择或浏览器的默认语言动态切换资源包。这时,我们可以编写一个自定义拦截器来实现这一功能: 1. 自定义拦截器中,检查请求头或Cookie以获取用户...
默认拦截器栈包含了Struts2框架预定义的一些拦截器,如`ExceptionMappingInterceptor`用于处理异常,`PrepareInterceptor`用于准备Action,`ModelDrivenInterceptor`用于模型驱动等。 3. `destroy()`: 这个方法在...
通过以上详细介绍,我们了解了Struts2中的拦截器和验证框架的基本概念、如何创建自定义拦截器以及如何配置拦截器和使用验证功能。这些知识点对于初学者来说非常重要,能够帮助他们更好地理解和使用Struts2框架。
`defaultStack`是Struts2提供的默认拦截器栈,包含了如`exception`、`params`、`i18n`等常用拦截器。 了解了拦截器的基本原理后,我们可以通过`Struts2.x 拦截器.avi`这个视频文件深入学习Struts2拦截器的实现细节...
`prepare`拦截器是Struts2框架中的一个默认拦截器,它在执行Action之前进行预处理工作。 `prepare`拦截器的主要职责是确保Action对象在处理请求之前被初始化。在Struts2配置文件中,这个拦截器通常位于默认拦截器栈...
3. **默认拦截器**:Struts2框架提供了许多内置拦截器,如`params`(处理请求参数)、`validation`(进行表单验证)、`i18n`(国际化支持)等。理解并熟练使用这些默认拦截器是基础。 4. **自定义拦截器**:当默认...
虽然这些Action没有显式地配置拦截器,但它们会继承自`struts-shop`包的默认拦截器栈`myStack`,因为`LogonAdmin`包扩展了`struts-shop`包。 ```xml <package name="LogonAdmin" extends="struts-shop"> <!-- ...