配置和使用拦截器
在struts-default.xml中已经配置了以上的拦截器。如果您想要使用上述拦截器,只需要在应用程序struts.xml文件中通过“<include file="struts-default.xml" />”将struts-default.xml文件包含进来,并继承其中的struts-default包(package),最后在定义Action时,使用“<interceptor-ref name="xx" />”引用拦截器或拦截器栈(interceptor stack)。
注:一旦您继承了struts-default包(package),所有Action都会调用拦截器栈 ——defaultStack。当然,在Action配置中加入“<interceptor-ref name="xx" />”可以覆盖defaultStack。
Struts 2已经为您提供丰富多样的,功能齐全的拦截器实现
拦截器 |
名字 |
说明 |
Alias Interceptor |
alias |
在不同请求之间将请求参数在不同名字件转换,请求内容不变 |
Chaining Interceptor |
chain |
让前一个Action的属性可以被后一个Action访问,现在和chain类型的result(<result type=”chain”>)结合使用。 |
Checkbox Interceptor |
checkbox |
添加了checkbox自动处理代码,将没有选中的checkbox的内容设定为false,而html默认情况下不提交没有选中的checkbox。 |
Cookies Interceptor |
cookies |
使用配置的name,value来是指cookies |
Conversion Error Interceptor |
conversionError |
将错误从ActionContext中添加到Action的属性字段中。 |
Create Session Interceptor |
createSession |
自动的创建HttpSession,用来为需要使用到HttpSession的拦截器服务。 |
Debugging Interceptor |
debugging |
提供不同的调试用的页面来展现内部的数据状况。 |
Execute and Wait Interceptor |
execAndWait |
在后台执行Action,同时将用户带到一个中间的等待页面。 |
Exception Interceptor |
exception |
将异常定位到一个画面 |
File Upload Interceptor |
fileUpload |
提供文件上传功能 |
I18n Interceptor |
i18n |
记录用户选择的locale |
Logger Interceptor |
logger |
输出Action的名字 |
Message Store Interceptor |
store |
存储或者访问实现ValidationAware接口的Action类出现的消息,错误,字段错误等。 |
Model Driven Interceptor |
model-driven |
如果一个类实现了ModelDriven,将getModel得到的结果放在Value Stack中。 |
Scoped Model Driven |
scoped-model-driven |
如果一个Action实现了ScopedModelDriven,则这个拦截器会从相应的Scope中取出model调用Action的setModel方法将其放入Action内部。 |
Parameters Interceptor |
params |
将请求中的参数设置到Action中去。 |
Prepare Interceptor |
prepare |
如果Acton实现了Preparable,则该拦截器调用Action类的prepare方法。 |
Scope Interceptor |
scope |
将Action状态存入session和application的简单方法。 |
Servlet Config Interceptor |
servletConfig |
提供访问HttpServletRequest和HttpServletResponse的方法,以Map的方式访问。 |
Static Parameters Interceptor |
staticParams |
从struts.xml文件中将<action>中的<param>中的内容设置到对应的Action中。 |
Roles Interceptor |
roles |
确定用户是否具有JAAS指定的Role,否则不予执行。 |
Timer Interceptor |
timer |
输出Action执行的时间 |
Token Interceptor |
token |
通过Token来避免双击 |
Token Session Interceptor |
tokenSession |
和Token Interceptor一样,不过双击的时候把请求的数据存储在Session中 |
Validation Interceptor |
validation |
使用action-validation.xml文件中定义的内容校验提交的数据。 |
Workflow Interceptor |
workflow |
调用Action的validate方法,一旦有错误返回,重新定位到INPUT画面 |
Parameter Filter Interceptor |
N/A |
从参数列表中删除不必要的参数 |
Profiling Interceptor |
profiling |
通过参数激活profile |
相关推荐
拦截器是Struts2的核心组件之一,它们在Action执行前后执行自定义逻辑。Interceptor示例展示了如何创建和配置拦截器,如日志记录、权限检查等。通过拦截器,开发者可以实现跨Action的功能,如事务管理、性能监控等...
**知识点3:Struts2自带拦截器列表** | 序号 | 拦截器名称 | 功能描述 | |------|--------------|----------------------------------------------------------------------------------------------| | 1 | alias ...
3. **Interceptor(拦截器)**:拦截器是Struts2的重要特性,它们允许在Action调用前后插入额外的功能,如日志记录、权限检查、事务管理等。开发者可以自定义拦截器,并通过配置文件决定拦截器的执行顺序。 4. **...
自定义拦截器需要继承`org.apache.struts2.interceptor.AbstractInterceptor`类,并覆盖`intercept()`方法。下面是一个简单的自定义拦截器示例: ```java public class TokenAtionInterceptor extends ...
7.开启struts2自带的开发模式常量 6 8.vo传参模式 7 9.ModerDriven传参模式(不建议采用) 7 10.为什么要使用struts2代替struts1.x 7 二、struts.xml配置及例程 7 1.配置文件的优先级 7 2.配置形式 8 3.package配置...
拦截器是Struts2框架中用于处理请求前后的关键组件,但过度使用会显著拖慢性能。优化策略包括: 1. **去除不必要的拦截器**:审查`struts.xml`中的拦截器配置,移除不使用的拦截器,减少请求处理流程的复杂度。 ...
Struts2的核心在于它作为一个servlet,它使用拦截器(Interceptor)机制来处理HTTP请求,实现了业务逻辑与Servlet API的解耦。 在Struts2的工作流程中,客户端发起的请求首先会经过一系列过滤器,其中包括...
- **struts-default.xml**:提供Struts2的一些默认配置,包括核心bean和拦截器,会自动包含在struts.xml中。 - **其他配置文件**:如velocity.properties和struts-plugin.xml,分别与Velocity模板和Struts2插件...
3. **拦截器(Interceptor)**:拦截器是Struts2的一个重要特性,它们按照预定义的顺序在Action调用前后执行,可以用来进行日志记录、权限检查、数据验证等操作。例如,`ValidationInterceptor`用于字段验证,`...
Struts2通过拦截器(Interceptor)机制提供丰富的功能,如异常处理、国际化等,使得开发者能够更好地组织和控制应用程序的行为。 2. **Spring框架**:Spring是一个全面的后端开发框架,提供了依赖注入(DI)和面向...
例如,如果你想使用Struts2自带的文件上传拦截器,你可以在struts.xml文件中为你的Action添加fileUpload拦截器: ```xml <interceptor-ref name="defaultStack"/> <interceptor-ref name="fileUpload"/> ...
- **Interceptor(拦截器)**: 用于预处理Action或清理工作,比如自动填充Action属性、验证输入等。 #### Struts2的流转流程 1. **用户交互**: 用户通过JSP页面与系统交互,提交请求。 2. **请求处理**: 请求被发送...
Struts2的拦截器(Interceptor)机制也是其强大之处。拦截器可以理解为在Action调用前后执行的逻辑,比如日志记录、权限验证、事务管理等。通过灵活的拦截器链,开发者可以轻松地实现复杂的业务需求。 标签库是...
虽然Struts 2不再依赖于单独的验证框架,但提供了类似的机制——基于拦截器的Validation Interceptor。不过,其工作原理和配置方式与Struts 1.x有所不同。 总的来说,Struts的验证框架Validate是提高应用质量的...
1. **Struts2**:Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它继承了Struts1的优点并引入了更多现代特性,如拦截器(Interceptor)机制,提供了更强大的控制层支持。在MyEclipse 9.0中...
Struts 2提供了强大的拦截器、结果类型、插件等机制,使得开发者可以方便地处理请求、控制流程、验证数据等。 1. Struts 2框架基础:包括Action、Result、Interceptor等核心概念。Action是业务逻辑的载体,Result...