Struts2拦截器

1. Struts2拦截器简介:

 

拦截器可以实现横切功能并使这些实现相对action甚至struts2框架保持独立。它是动态拦截Action调用的对象。它提供了一种机制可以使开发者定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其操作。同时也是提供了一种可以提取action中可重用的部分的方式。

 

2.Struts2框架提供的拦截器

 

 

拦截器名

配置名

描述

AliasInterceptor

【别名拦截器】

alias

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

ActionAutowiringInterceptor

【自动装配拦截器】

autowiring

信息自动装配的拦截器,主要用于当struts2Spring整合时,Struts可以使用自动装配的方式来访问Spring容器中的Bean. 

ChainingInterceptor

【链拦截器】

chain

允许当前action能够使用上一个被执行action的属性,这个拦截器通常要和“chain”结果类型一起使用(<result type=”chain”…/>

Checkbox Interceptor

【多选框拦截器】

checkbox

为没有被选定的多选框增加一个值为false的参数,协助管理多选框(在HTTP请求里,那些没有被选定的多选框通常是没有任何信息的)

ConversionErrorInterceptor

【转换错误拦截器】

conversionError

将转换错误的信息(包括转换的字符串和参数类型等)存放到action的字段错误集里去

CookieInterceptor

Cookie拦截器】

cookie

使用配置的name,value来指定cookies

ClearSessionInterceptor

【清除Session拦截器】

clearSession

负责销毁HttpSeesion

CreateSessionInterceptor

【会话创建拦截器】

createSession

自动创建一个HttpSession会话(如果会话不存在),用来为需要使用到HttpSession的拦截器服务

DebuggingInterceptor

【调试拦截器】

debugging

当使用Struts2的开发模式时,此拦截器会提供更多的调试信息,为开发者提供几种不同调试界面

ExternalReferencesInterceptor

【扩展引用拦截器】

externalRef

负责扩展引用

ExecuteAndWaitInterceptor

【执行和等待拦截器】

execAndWait

当action在后台执行时,给用户显示一个过渡性的等待页面

ExceptionMappingInterceptor

【异常拦截器】

exception

将action抛出的异常映射到结果,这样就通过重定向来自动处理异常,一般情况下,应该为最后一个拦截器

FileUploadInterceptor

【文件上传拦截器】

fileUpload

此拦截器主要用于文件上传,它负责解析表单中文件域的内容

Internatio-nalization Interceptor

【国际化拦截器】

 

i18n

这是支持国际化的拦截器,它负责把所选的语言、区域放入用户Session

Logging Interceptor

【日志拦截器】

 

logger

通过输出被执行action的名字,提供简单的日志功能,记录用于追踪的信息(可位于拦截器序列的不同位置)

Message Store Interceptor

【消息存储拦截器】

store

在会话中为action存储和检索消息、字段错误以及action错误,该拦截器要求action实现ValidationAware接口

Model Driven Interceptor

【模型驱动拦截器】

modelDriven

这是一个用于模型驱动的拦截器,当某个Action类实现了ModelDriven接口时,它负责把getModel()方法的结果放入ValueStack

Scoped Model Driven Interceptor

【作用域模型驱动拦截器】

scopedModelDriven

如果一个Action实现了一个ScopedModelDriven接口,该拦截器负责从指定生存范围中找出指定的Modol,并将通过setModel方法将该Model传给Action实例

Parameters Interceptor

【参数拦截器】

params

这是最基本的一个拦截器,它负责解析HTTP请求中的参数,并将参数值设置成Action对应的属性值

Parameter Filter Interceptor

【参数过滤拦截器】

N/A

控制action对参数的访问(非默认配置)

Prepare Interceptor

【预备拦截器】

prepare

如果action实现Preparable接口,将会调用该拦截器的prepare()方法

Profiling Interceptor

【概要拦截器】

profiling

允许action记录简单的概要信息日志

Scope Interceptor

【作用域拦截器】

scope

这是范围转换拦截器,它可以将Action状态信息保存到HttpSession范围,或者保存到ServletContext范围内。

Servlet Configuration Interceptor

【Servlet配置拦截器】

servletConfig

如果某个Action需要直接访问ServletAPI,就是通过这个拦截器实现,它提供访问HttpServletRequestHttpServletResponse的方法,以map的方式访问

Static Parameters Interceptor

【静态参数拦截器】

staticParams

设置action里的静态定义值(通过action配置里的param标签来实现);这个拦截器负责将struts.xml文件中<action>标签下<param>标签中的参数传入action

Roles Interceptor

【角色拦截器】

 

roles

这是一个JAASJava Authentication and Authorization Service, Java授权和认证服务)拦截器,只有当浏览者取得合适的授权后,才可以调用被该拦截器拦截的Action

Timer Interceptor

【计时拦截器】

timer

以执行action所花时间的形式,简单记录action概要信息,此拦截器负责输出Action的执行时间,可以利用此拦截器分析该Action的性能瓶颈

Token Interceptor

【令牌拦截器】

token

检查action的合法令牌,以防止重复提交表单,当表单被多次提交时,跳转到一个错误页面

 

Token Session Interceptor

【令牌会话拦截器】

 

tokenSession

 

功能与令牌拦截器相同,但是对于非法令牌,提交的数据将保存在会话中,不跳转到错误页面,再次生成与第一次相同的页面。

ValidationInterceptor

【验证拦截器】

validation

通过执行在xxxAction-validation.xml中定义的校验器,从而完成数据校验。

Workflow Interceptor

【工作流拦截器】

workflow

action定义默认的工作流,一般跟在validation等其他拦截器后,当验证失败时,不执行action然后重定向到INPUT视图

JsonValidationInterceptor

Json拦截器】

jsonValidation

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

 

 

 

 

3.以上拦截器对应的类为:

 

拦截器配置名

对应的实现类

alias

com.opensymphony.xwork2.interceptor.AliasInterceptor

autowiring

com.opensymphony.xwork2.spring.interceptor.ActionAutowiringInterceptor

chain

com.opensymphony.xwork2.interceptor.ChainingInterceptor

conversionError

org.apache.struts2.interceptor.StrutsConversionErrorInterceptor

createSession

org.apache.struts2.interceptor.CreateSessionInterceptor

debugging

org.apache.struts2.interceptor.debugging.DebuggingInterceptor

externalRef

com.opensymphony.xwork2.interceptor.ExternalReferencesInterceptor

execAndWait

org.apache.struts2.interceptor.ExecuteAndWaitInterceptor

exception

com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor

fileUpload

org.apache.struts2.interceptor.FileUploadInterceptor

i18n

com.opensymphony.xwork2.interceptor.I18nInterceptor

logger

com.opensymphony.xwork2.interceptor.LoggingInterceptor

modelDriven

com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor

scopedModelDriven

com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor

params

com.opensymphony.xwork2.interceptor.ParametersInterceptor

prepare

com.opensymphony.xwork2.interceptor.PrepareInterceptor

staticParams

com.opensymphony.xwork2.interceptor.StaticParametersInterceptor

scope

org.apache.struts2.interceptor.ScopeInterceptor

servletConfig

org.apache.struts2.interceptor.ServletConfigInterceptor

timer

com.opensymphony.xwork2.interceptor.TimerInterceptor

token

org.apache.struts2.interceptor.TokenInterceptor

tokenSession

org.apache.struts2.interceptor.TokenSessionStoreInterceptor

validation

org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor

workflow

com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor

store

org.apache.struts2.interceptor.MessageStoreInterceptor

checkbox

org.apache.struts2.interceptor.CheckboxInterceptor

profiling

org.apache.struts2.interceptor.ProfilingActivationInterceptor

roles

org.apache.struts2.interceptor.RolesInterceptor

jsonValidation

com.opensymphony.xwork2.interceptor.annotations.AnnotationWorkflowInterceptor

 

4.Struts 2框架提供的拦截器栈

   

已配置栈名

包含的拦截器

描    述

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

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

期末大作业基于python的足球运动员数据分析源码+数据集(高分项目),个人经导师指导并认可通过的高分设计项目,评审分98分,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!主要针对计算机相关专业的正在做大作业、毕业设计的学生和需要项目实战练习的学习者,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于pyth
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值