注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

一线天色 天宇星辰

天下武功,唯快不破

 
 
 

日志

 
 

Struts2默认拦截器解析(二)  

2011-09-11 19:45:44|  分类: struts2 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

注:因博文字数限制,上文部分请参见Struts2默认拦截器解析(一)

http://yhjhappy234.blog.163.com/blog/static/3163283220118117525758/

(续上文)

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

拦截器名< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />

AliasInterceptor

【别名拦截器】

配置名

alias

描述

允许参数在跨越多个请求时使用不同别名,这个拦截器可将多个action使用不同名字链接起来,然后用于处理同一信息

对应的类

com.opensymphony.xwork2.interceptor.AliasInterceptor

拦截器名

ActionAutowiringInterceptor

【自动装配拦截器】

配置名

autowiring

描述

信息自动装配的拦截器,主要用于当struts2Spring整合时,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,就是通过这个拦截器实现,它提供访问HttpServletRequestHttpServletResponse的方法,以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

描述

这是一个JAASJava 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

描述

验证失败,此拦截器可以将fieldErrorsactionErrors两个属性给序列化成json返回给客户端

对应的类

com.opensymphony.xwork2.interceptor.annotations.AnnotationWorkflowInterceptor

以上就是struts2默认的拦截器,我们大部分时间是不需要单独配置这些拦截器的,一般都是配置对应的拦截器栈,下面我们来看对应的拦截器栈都有哪些?都是做什么的?

已配置栈名

包含的拦截器

basicStack

exceptionservletConfigpreparecheckboxparamsconversionError

如使用栈,最起码要使用这几个拦截器

validationWorkflowStack

basicStackvalidationworkflow

在基本栈的基础上增加验证和工作流特性

fileUploadStack

fileUploadbasicStack

在基本栈的基础上增加文件上传特性

modelDrivenStack

modelDrivenbasicStack

在基本栈的基础上增加模型功能特性

chainStack

chainbasicStack

在基本栈的基础上增加链接特性

i18nStack

i18nbasicStack

在基本栈的基础上增加区域持久化特性

paramPrepareParamsStack

exceptionaliasparamsservletConfigpreparei18nchainmodelDrivenfile- UploadcheckboxstaticParamsparamsconversionErrorvali- dationworkflow

提供包括前actionpre-action)方法调用的完整栈。params栈使用两次:第一次是在调用prepare()方法之前提供参数,第二次是在预备阶段为可能被检索的对象重新使用参数

defaultStack

exceptionaliasservlet- Configpreparei18nchaindebuggingprofilingscoped- ModelDrivenmodelDrivenfileUploadcheckboxstatic- Paramsparamsconversion- Errorvalidationworkflow

提供一个完整栈,包括调试和概要

executeAndWaitStack

execAndWaitdefaultStackexecAndWait

提供执行与等待栈,比如在上传文件时需要向用户显示一个等待页面时,就可以使用这个栈

如果不配置拦截器,默认使用他自己的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>

 

 你觉得本文对你有用吗?  

票数:54 投票时间:2011-09-11 19:45:50 到 2014-12-30 23:00:00

  •     48(98%)
  •     0(0%)
  •     1(2%)
查看参与情况
编辑投票|删除投票

最新投票|博友投票

      评论这张
     
    阅读(3508)| 评论(2)
    推荐 转载

    历史上的今天

    评论

    <#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
     
     
     
     
     
     
     
     
     
     
     
     
     
     

    页脚

    网易公司版权所有 ©1997-2017