您的位置:首页 > 编程语言 > Java开发

Struts2默认拦截器

2014-09-02 17:18 393 查看


当然还有很多拦截器栈,我们先来看拦截器

拦截器名< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />
AliasInterceptor
【别名拦截器】
配置名
alias
描述
允许参数在跨越多个请求时使用不同别名,这个拦截器可将多个action使用不同名字链接起来,然后用于处理同一信息
对应的类
com.opensymphony.xwork2.interceptor.AliasInterceptor
拦截器名
ActionAutowiringInterceptor
【自动装配拦截器】
配置名
autowiring
描述
信息自动装配的拦截器,主要用于当struts2和Spring整合时,Struts可以使用自动装配的方式来访问Spring容器中的Bean.
对应的类
com.opensymphony.xwork2.spring.interceptor.ActionAutowiringInterceptor
拦截器名
ChainingInterceptor
【链拦截器】
配置名
chain
描述
允许当前action能够使用上一个被执行action的属性,这个拦截器通常要和“chain”结果类型一起使用(<result
type=”chain”…/>)
对应的类
com.opensymphony.xwork2.interceptor.ChainingInterceptor
拦截器名
Checkbox Interceptor
【多选框拦截器】
配置名
checkbox
描述
为没有被选定的多选框增加一个值为false的参数,协助管理多选框(在HTTP请求里,那些没有被选定的多选框通常是没有任何信息的)
对应的类
org.apache.struts2.interceptor.CheckboxInterceptor
拦截器名
ConversionErrorInterceptor
【转换错误拦截器】
配置名
conversionError
描述
将转换错误的信息(包括转换的字符串和参数类型等)存放到action的字段错误集里去
对应的类
org.apache.struts2.interceptor.StrutsConversionErrorInterceptor
拦截器名
CookieInterceptor
【Cookie拦截器】
配置名
cookie
描述
使用配置的name,value来指定cookies
对应的类
org.apache.struts2.interceptor.CookieInterceptor
拦截器名
ClearSessionInterceptor
【清除Session拦截器】
配置名
clearSession
描述
负责销毁HttpSeesion
对应的类
N/A
拦截器名
CreateSessionInterceptor
【会话创建拦截器】
配置名
createSession
描述
自动创建一个HttpSession会话(如果会话不存在),用来为需要使用到HttpSession的拦截器服务
对应的类
org.apache.struts2.interceptor.CreateSessionInterceptor
拦截器名
DebuggingInterceptor
【调试拦截器】
配置名
debugging
描述
当使用Struts2的开发模式时,此拦截器会提供更多的调试信息,为开发者提供几种不同调试界面
对应的类
org.apache.struts2.interceptor.debugging.DebuggingInterceptor
拦截器名
ExternalReferencesInterceptor
【扩展引用拦截器】
配置名
externalRef
描述
负责扩展引用
对应的类
com.opensymphony.xwork2.interceptor.ExternalReferencesInterceptor
拦截器名
ExecuteAndWaitInterceptor
【执行和等待拦截器】
配置名
execAndWait
描述
当action在后台执行时,给用户显示一个过渡性的等待页面
对应的类
org.apache.struts2.interceptor.ExecuteAndWaitInterceptor
拦截器名
ExceptionMappingInterceptor
【异常拦截器】
配置名
exception
描述
将action抛出的异常映射到结果,这样就通过重定向来自动处理异常,一般情况下,应该为最后一个拦截器
对应的类
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor
拦截器名
FileUploadInterceptor
【文件上传拦截器】
配置名
fileUpload
描述
此拦截器主要用于文件上传,它负责解析表单中文件域的内容
对应的类
org.apache.struts2.interceptor.FileUploadInterceptor
拦截器名
Internatio-nalization Interceptor
【国际化拦截器】
配置名
i18n
描述
这是支持国际化的拦截器,它负责把所选的语言、区域放入用户Session中。
对应的类
com.opensymphony.xwork2.interceptor.I18nInterceptor
拦截器名
Logging Interceptor
【日志拦截器】
配置名
logger
描述
通过输出被执行action的名字,提供简单的日志功能,记录用于追踪的信息(可位于拦截器序列的不同位置)
对应的类
com.opensymphony.xwork2.interceptor.LoggingInterceptor
拦截器名
Message Store Interceptor
【消息存储拦截器】
配置名
store
描述
在会话中为action存储和检索消息、字段错误以及action错误,该拦截器要求action实现ValidationAware接口
对应的类
org.apache.struts2.interceptor.MessageStoreInterceptor
拦截器名
Model Driven Interceptor
【模型驱动拦截器】
配置名
modelDriven
描述
这是一个用于模型驱动的拦截器,当某个Action类实现了ModelDriven接口时,它负责把getModel()方法的结果放入ValueStack中
对应的类
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor
拦截器名
Scoped Model Driven Interceptor
【作用域模型驱动拦截器】
配置名
scopedModelDriven
描述
如果一个Action实现了一个ScopedModelDriven接口,该拦截器负责从指定生存范围中找出指定的Modol,并将通过setModel方法将该Model传给Action实例
对应的类
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor
拦截器名
Parameters Interceptor
【参数拦截器】
配置名
params
描述
这是最基本的一个拦截器,它负责解析HTTP请求中的参数,并将参数值设置成Action对应的属性值
对应的类
com.opensymphony.xwork2.interceptor.ParametersInterceptor
拦截器名
Parameter Filter Interceptor
【参数过滤拦截器】
配置名
N/A
描述
控制action对参数的访问(非默认配置)
对应的类
org.apache.struts2.interceptor.ProfilingActivationInterceptor
拦截器名
Prepare Interceptor
【预备拦截器】
配置名
prepare
描述
如果action实现Preparable接口,将会调用该拦截器的prepare()方法
对应的类
com.opensymphony.xwork2.interceptor.PrepareInterceptor
拦截器名
Profiling Interceptor
【概要拦截器】
配置名
profiling
描述
允许action记录简单的概要信息日志
对应的类
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor
拦截器名
Scope Interceptor
【作用域拦截器】
配置名
scope
描述
这是范围转换拦截器,它可以将Action状态信息保存到HttpSession范围,或者保存到ServletContext范围内。
对应的类
org.apache.struts2.interceptor.ScopeInterceptor
拦截器名
Servlet Configuration Interceptor
【Servlet配置拦截器】
配置名
servletConfig
描述
如果某个Action需要直接访问ServletAPI,就是通过这个拦截器实现,它提供访问HttpServletRequest和HttpServletResponse的方法,以map的方式访问
对应的类
org.apache.struts2.interceptor.ServletConfigInterceptor
拦截器名
Static Parameters Interceptor
【静态参数拦截器】
配置名
staticParams
描述
设置action里的静态定义值(通过action配置里的param标签来实现);这个拦截器负责将struts.xml文件中<action>标签下<param>标签中的参数传入action
对应的类
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor
拦截器名
Roles Interceptor
【角色拦截器】
配置名
roles
描述
这是一个JAAS(Java
Authentication and Authorization Service, Java授权和认证服务)拦截器,只有当浏览者取得合适的授权后,才可以调用被该拦截器拦截的Action
对应的类
org.apache.struts2.interceptor.RolesInterceptor
拦截器名
Timer Interceptor
【计时拦截器】
配置名
timer
描述
以执行action所花时间的形式,简单记录action概要信息,此拦截器负责输出Action的执行时间,可以利用此拦截器分析该Action的性能瓶颈
对应的类
com.opensymphony.xwork2.interceptor.TimerInterceptor
拦截器名
Token Interceptor
【令牌拦截器】
配置名
token
描述
检查action的合法令牌,以防止重复提交表单,当表单被多次提交时,跳转到一个错误页面
对应的类
org.apache.struts2.interceptor.TokenInterceptor
拦截器名
Token Session Interceptor
【令牌会话拦截器】
配置名
tokenSession
描述
功能与令牌拦截器相同,但是对于非法令牌,提交的数据将保存在会话中,不跳转到错误页面,再次生成与第一次相同的页面。
对应的类
org.apache.struts2.interceptor.TokenSessionStoreInterceptor
拦截器名
ValidationInterceptor
【验证拦截器】
配置名
validation
描述
通过执行在xxxAction-validation.xml中定义的校验器,从而完成数据校验。
对应的类
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor
拦截器名
Workflow Interceptor
【工作流拦截器】
配置名
workflow
描述
为action定义默认的工作流,一般跟在validation等其他拦截器后,当验证失败时,不执行action然后重定向到INPUT视图
对应的类
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor
拦截器名
JsonValidationInterceptor
【Json拦截器】
配置名
jsonValidation
描述
验证失败,此拦截器可以将fieldErrors和actionErrors两个属性给序列化成json返回给客户端
对应的类
com.opensymphony.xwork2.interceptor.annotations.AnnotationWorkflowInterceptor
以上就是struts2默认的拦截器,我们大部分时间是不需要单独配置这些拦截器的,一般都是配置对应的拦截器栈,下面我们来看对应的拦截器栈都有哪些?都是做什么的?
已配置栈名
包含的拦截器
描 述
basicStack
exception、servletConfig、prepare、checkbox、params、conversionError
如使用栈,最起码要使用这几个拦截器
validationWorkflowStack
basicStack、validation、workflow
在基本栈的基础上增加验证和工作流特性
fileUploadStack
fileUpload、basicStack
在基本栈的基础上增加文件上传特性
modelDrivenStack
modelDriven、basicStack
在基本栈的基础上增加模型功能特性
chainStack
chain、basicStack
在基本栈的基础上增加链接特性
i18nStack
i18n、basicStack
在基本栈的基础上增加区域持久化特性
paramPrepareParamsStack
exception、alias、params、servletConfig、prepare、i18n、chain、modelDriven、file-Upload、checkbox、staticParams、params、conversionError、vali-
dation、workflow
提供包括前action(pre-action)方法调用的完整栈。params栈使用两次:第一次是在调用prepare()方法之前提供参数,第二次是在预备阶段为可能被检索的对象重新使用参数
defaultStack
exception、alias、servlet-
Config、prepare、i18n、chain、debugging、profiling、scoped-
ModelDriven、modelDriven、fileUpload、checkbox、static-
Params、params、conversion-
Error、validation、workflow
提供一个完整栈,包括调试和概要
executeAndWaitStack
execAndWait、defaultStack、execAndWait
提供执行与等待栈,比如在上传文件时需要向用户显示一个等待页面时,就可以使用这个栈
如果不配置拦截器,默认使用他自己的defaultStack,我们看到,defaultStack包含了基本上所有的拦截器,所以基本上都能满足我们的需求,但是我们一般情况下用不了这么多拦截器栈的,经过这么多拦截器栈肯定会影响性能的,所以我们可以根据不通的场景,选择合适的拦截器栈。如下面的action只需要上传,那我们只需要添加上次的拦截器即可!

<?xml version="1.0" encoding="UTF-8"?><
xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />
<!DOCTYPE struts PUBLIC "-//Apache
Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<package name="upload" namespace="/front/upload" extends="struts-default">
<!-- 对应报下面值包含fileUploadStack拦截器栈 -->
<default-interceptor-ref name="fileUploadStack"></default-interceptor-ref>
<action name="upload"class="com.shunwang.passport.actu.web.ActuUploadAction">
</action>
</package>

</struts>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: