- 浏览: 507877 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
huyuran:
...
CheckStyle使用手册 -
三剑客二无名:
楼主给力。成功完成tomcat部署打包,上来只是为了评论一下。 ...
maven自动部署war包到tomcat -
yx09167415:
盛大在为的印象中多么的伟岸。我投了几次。机会都不给。,。。。祝 ...
盛大面试经历 -
kunsyliu:
楼主给力。成功完成tomcat部署打包
maven自动部署war包到tomcat -
MrLee23:
哎,中枪了。。。
坏公司鉴别方法
拦截器在Struts2中的缺省应用
通过前几章介绍,读者应该明白在Web项目中,客户先在视图界面提交一个HTTP请求,在Struts2的ServletDispatcher接收请求时,Struts2会查找配置文件,如struts.xml文件。根据xml文件中定义的拦截器配置,会去调用拦截器。如果配置了拦截器栈,则根据拦截器在拦截器栈中的前后顺序,一一进行调用。而Struts2自带的源代码中也提供了缺省的拦截器配置。
在第一章中,笔者曾经介绍了Struts2的各个文件夹内容,也说过在src文件夹中包含了Struts2的所有底层实现源代码,读者们可到自己安装Struts2的文件路径下找到src\core\src\main\resources\,其中有个名为struts-default.xml。它是Struts2自定义的配置文件,其中有关拦截器的配置代码正是本节需要介绍的拦截器在Struts2中的缺省应用。
技术要点
本节代码说明Struts2中的拦截器缺省配置及其各拦截器的功能。
(1)在xml配置文件中配置拦截器和拦截器栈都是以“<interceptors>”开头,以“</interceptors>”结尾。
(2)配置拦截器的格式如上面代码所示以“<interceptor/>”格式显示,其中两个属性name是拦截器名字,另一个是对应的类路径,因为之前也已经说过其实拦截器也是一个普通的Java对象。
(3)拦截器栈的格式是以“<interceptor-stack >”开头,以“</interceptor-stack>”结尾。其中属性name是拦截器栈名字。在“<interceptor-stack >”和“</interceptor-stack>”之间可以设置拦截器。如代码所示格式为“<interceptor-ref />”,其中name属性也是拦截器名字。如果系统运行拦截器栈都是按照拦截器栈中定义的拦截器先后顺序执行拦截器。请读者仔细查看那个基础栈配置,其中配置的拦截器都是在xml文件中定义的拦截器。
注意:拦截器栈中不单单可以配置拦截器,它甚至还可以配置拦截器栈。比如在“validationWorkflowStack” 拦截器栈中就配置了“basicStack”拦截器栈。这样的话,配置的子拦截器栈中的拦截器也会被执行。这就类似于父集合和子集合的概念。
(4)针对struts-default.xml文件中各个拦截器配置,笔者一一做介绍,因为如果使用Struts2在Web项目开发中,这些拦截器都是默认缺省的会被执行的。因此了解一下Struts2底层的拦截器到底实现什么功能对开发人员来说是很有帮助的。
alias:对于HTTP请求包含的参数设置别名。
autowiring:将某些JavaBean实例自动绑定到其他Bean对应的属性中。有点类似Spring的自动绑定,在Spring部分会详细说明。
Chain:在Web项目开发中,以前使用Struts开发时候经常碰到两个Action互相传递参数或属性的情况。该拦截器就是让前一Action的参数可以在现有Action中使用。
conversionError:从ActionContext中将转化类型时候发生的错误添加到Action的值域错误中,在校验时候经常被使用到来显示类型转化错误的信息。
cookie:从Struts2.0.7版本开始,可以把cookie注入Action中可设置的名字或值中。
createSession:自动创建一个HTTP的Session,尤其是对需要HTTP的Session的拦截器特别有用。比如下面介绍的TokenInterceptor。
debugging:用来对在视图间传递的数据进行调试。
ExecAndWait:不显式执行Action,在视图上显示给用户的是一个正在等待的页面,但是Action其实是在“背后”正在执行着。该拦截器尤其在对进度条进行开发的时候特别有用。
exception:将异常和Action返回的result相映射。
fileUpload:支持文件上传功能的拦截器。
i18n:支持国际化的拦截器。
logger:拥有日志功能的拦截器。
modelDriven:Action执行该拦截器时候,可以将getModel方法得到的result值放入值栈中。
scopedModelDriven:执行该拦截器时候,它可以从一个scope范围检索和存储model值,通过调用setModel方法去设置model值。
params:将HTTP请求中包含的参数值设置到Action中。
prepare:假如Action继承了Preparable接口,则会调用prepare方法。
staticParams:对于在struts.xml文件中Action中设置的参数设置到对应的Action中。
scope:在session或者application范围中设置Action的状态。
servletConfig:该拦截器提供访问包含HttpServletResquest和HttpServletResponse对象的Map的方法。
timer:输出Action的执行时间。
token:避免重复提交的校验拦截器。
tokenSession:和token拦截器类似,但它还能存储提交的数据到session里。
validation:运行在action-validation.xml(校验章节将介绍)文件中定义的校验规则。
workflow:在Action中调用validate校验方法。如果Action有错误则返回到input视图。
store:执行校验功能时候,该拦截器提供存储和检索Action的所有错误和正确信息的功能。
checkbox:视图中如果有checkbox存在的情况,该拦截器自动将unchecked的checkbox当作一个参数(通常值为“false”)记录下来。这样可以用一个隐藏的表单值来记录所有未提交的checkbox,而且缺省unchecked的checkbox值是布尔类型的,如果视图中checkbox的值设置的不是布尔类型,它就会被覆盖成布尔类型的值。
profiling:通过参数来激活或不激活分析检测功能,前提是Web项目是在开发模式下。(涉及到调试和性能检验时使用)
roles:进行权限配置的拦截器,如果登录用户拥有相应权限才去执行某一特定Action。
此书已出~
http://www.china-pub.com/195377&ref=xiangguan
通过前几章介绍,读者应该明白在Web项目中,客户先在视图界面提交一个HTTP请求,在Struts2的ServletDispatcher接收请求时,Struts2会查找配置文件,如struts.xml文件。根据xml文件中定义的拦截器配置,会去调用拦截器。如果配置了拦截器栈,则根据拦截器在拦截器栈中的前后顺序,一一进行调用。而Struts2自带的源代码中也提供了缺省的拦截器配置。
在第一章中,笔者曾经介绍了Struts2的各个文件夹内容,也说过在src文件夹中包含了Struts2的所有底层实现源代码,读者们可到自己安装Struts2的文件路径下找到src\core\src\main\resources\,其中有个名为struts-default.xml。它是Struts2自定义的配置文件,其中有关拦截器的配置代码正是本节需要介绍的拦截器在Struts2中的缺省应用。
技术要点
本节代码说明Struts2中的拦截器缺省配置及其各拦截器的功能。
拦截器和拦截器栈的定义配置格式。
Struts2定义的各个拦截器功能介绍。
演示代码
Struts2定义的各个拦截器功能介绍。
<!------------------------文件名: struts-default.xml-----------------------------> <interceptors> <interceptor name="alias" class="com.opensymphony.xwork2.interceptor.AliasInterceptor"/> …………… <interceptor name="roles" class="org.apache.struts2.interceptor.RolesInterceptor" /> <!—基础栈 --> <interceptor-stack name="basicStack"> <interceptor-ref name="exception"/> <interceptor-ref name="servletConfig"/> <interceptor-ref name="prepare"/> <interceptor-ref name="checkbox"/> <interceptor-ref name="params"/> <interceptor-ref name="conversionError"/> </interceptor-stack> <!—校验和工作流栈 --> <interceptor-stack name="validationWorkflowStack"> <interceptor-ref name="basicStack"/> <interceptor-ref name="validation"/> <interceptor-ref name="workflow"/> </interceptor-stack> <!—文件上传栈--> <interceptor-stack name="fileUploadStack"> <interceptor-ref name="fileUpload"/> <interceptor-ref name="basicStack"/> </interceptor-stack> <!—模型驱动栈 --> <interceptor-stack name="modelDrivenStack"> <interceptor-ref name="modelDriven"/> <interceptor-ref name="basicStack"/> </interceptor-stack> <!—action链栈 --> <interceptor-stack name="chainStack"> <interceptor-ref name="chain"/> <interceptor-ref name="basicStack"/> </interceptor-stack> <!-- i18n国际化栈 --> <interceptor-stack name="i18nStack"> <interceptor-ref name="i18n"/> <interceptor-ref name="basicStack"/> </interceptor-stack> </interceptors>代码解释
(1)在xml配置文件中配置拦截器和拦截器栈都是以“<interceptors>”开头,以“</interceptors>”结尾。
(2)配置拦截器的格式如上面代码所示以“<interceptor/>”格式显示,其中两个属性name是拦截器名字,另一个是对应的类路径,因为之前也已经说过其实拦截器也是一个普通的Java对象。
(3)拦截器栈的格式是以“<interceptor-stack >”开头,以“</interceptor-stack>”结尾。其中属性name是拦截器栈名字。在“<interceptor-stack >”和“</interceptor-stack>”之间可以设置拦截器。如代码所示格式为“<interceptor-ref />”,其中name属性也是拦截器名字。如果系统运行拦截器栈都是按照拦截器栈中定义的拦截器先后顺序执行拦截器。请读者仔细查看那个基础栈配置,其中配置的拦截器都是在xml文件中定义的拦截器。
注意:拦截器栈中不单单可以配置拦截器,它甚至还可以配置拦截器栈。比如在“validationWorkflowStack” 拦截器栈中就配置了“basicStack”拦截器栈。这样的话,配置的子拦截器栈中的拦截器也会被执行。这就类似于父集合和子集合的概念。
(4)针对struts-default.xml文件中各个拦截器配置,笔者一一做介绍,因为如果使用Struts2在Web项目开发中,这些拦截器都是默认缺省的会被执行的。因此了解一下Struts2底层的拦截器到底实现什么功能对开发人员来说是很有帮助的。
alias:对于HTTP请求包含的参数设置别名。
autowiring:将某些JavaBean实例自动绑定到其他Bean对应的属性中。有点类似Spring的自动绑定,在Spring部分会详细说明。
Chain:在Web项目开发中,以前使用Struts开发时候经常碰到两个Action互相传递参数或属性的情况。该拦截器就是让前一Action的参数可以在现有Action中使用。
conversionError:从ActionContext中将转化类型时候发生的错误添加到Action的值域错误中,在校验时候经常被使用到来显示类型转化错误的信息。
cookie:从Struts2.0.7版本开始,可以把cookie注入Action中可设置的名字或值中。
createSession:自动创建一个HTTP的Session,尤其是对需要HTTP的Session的拦截器特别有用。比如下面介绍的TokenInterceptor。
debugging:用来对在视图间传递的数据进行调试。
ExecAndWait:不显式执行Action,在视图上显示给用户的是一个正在等待的页面,但是Action其实是在“背后”正在执行着。该拦截器尤其在对进度条进行开发的时候特别有用。
exception:将异常和Action返回的result相映射。
fileUpload:支持文件上传功能的拦截器。
i18n:支持国际化的拦截器。
logger:拥有日志功能的拦截器。
modelDriven:Action执行该拦截器时候,可以将getModel方法得到的result值放入值栈中。
scopedModelDriven:执行该拦截器时候,它可以从一个scope范围检索和存储model值,通过调用setModel方法去设置model值。
params:将HTTP请求中包含的参数值设置到Action中。
prepare:假如Action继承了Preparable接口,则会调用prepare方法。
staticParams:对于在struts.xml文件中Action中设置的参数设置到对应的Action中。
scope:在session或者application范围中设置Action的状态。
servletConfig:该拦截器提供访问包含HttpServletResquest和HttpServletResponse对象的Map的方法。
timer:输出Action的执行时间。
token:避免重复提交的校验拦截器。
tokenSession:和token拦截器类似,但它还能存储提交的数据到session里。
validation:运行在action-validation.xml(校验章节将介绍)文件中定义的校验规则。
workflow:在Action中调用validate校验方法。如果Action有错误则返回到input视图。
store:执行校验功能时候,该拦截器提供存储和检索Action的所有错误和正确信息的功能。
checkbox:视图中如果有checkbox存在的情况,该拦截器自动将unchecked的checkbox当作一个参数(通常值为“false”)记录下来。这样可以用一个隐藏的表单值来记录所有未提交的checkbox,而且缺省unchecked的checkbox值是布尔类型的,如果视图中checkbox的值设置的不是布尔类型,它就会被覆盖成布尔类型的值。
profiling:通过参数来激活或不激活分析检测功能,前提是Web项目是在开发模式下。(涉及到调试和性能检验时使用)
roles:进行权限配置的拦截器,如果登录用户拥有相应权限才去执行某一特定Action。
评论
4 楼
gao0516
2009-10-29
我已经无法用表达我的心情了只能说声 强 太强了
3 楼
黑暗浪子
2009-10-29
yuyijia 写道
楼主真的挺用心,挺不错的,个人觉得简洁明了,可以出书了!
此书已出~
http://www.china-pub.com/195377&ref=xiangguan
2 楼
yuyijia
2009-10-29
楼主真的挺用心,挺不错的,个人觉得简洁明了,可以出书了!
1 楼
一个人过
2009-10-29
受教啦,学到很多东西
发表评论
-
struts2讲义每章节代码包汇总
2009-11-12 20:57 8305不知道javaeye一个blog允许上传多大的附件。 先试试 ... -
放出完整的Struts2讲义
2009-11-06 08:17 15336谢谢各位长期以来的支持~ -
Struts2讲义46
2009-11-05 08:46 256010.2.2 <decorator:use ... -
Struts2讲义45
2009-11-04 09:40 183510.2 sitemesh 高级应用 在 ... -
Struts2讲义44
2009-11-03 08:26 1857第10 章 Struts2 页面布局实现 ... -
Struts2讲义43
2009-11-02 13:21 23229.3 用户主动选择国 ... -
Struts2讲义42
2009-11-01 02:05 15779.2.3 Struts2 临时范围属性文件国 ... -
Struts2讲义41
2009-10-31 11:36 15069.2.2 Struts2Action 范围属 ... -
Struts2讲义40
2009-10-30 00:16 16279.2 Struts2 国际化使用范围说明 ... -
Struts2讲义39
2009-10-29 10:44 17919.1.2 占位符国际化使用 ... -
Struts2讲义38
2009-10-28 08:56 2130第9 章 Struts2 国际化 在第 ... -
Struts2讲义37
2009-10-27 15:23 18708.4 Struts2 输入校验器大全 在 ... -
Struts2讲义36
2009-10-26 11:15 16268.3 集合类型输入校验介绍 于之前类 ... -
Struts2讲义35
2009-10-25 14:21 13478.2 利用配置文件进行输入校验方法说明 ... -
Struts2讲义34
2009-10-24 01:47 1827第8 章 Struts2 输入校验 ... -
Struts2讲义33
2009-10-23 08:37 16397.2 类型转换发生异常处理方案 类型 ... -
Struts2讲义32
2009-10-22 13:19 19617.1.3 Set 集合类型数据类型转换功能 ... -
Struts2讲义31
2009-10-21 08:14 18187.1.2 List 集合类型数据类型转换功能 ... -
Struts2讲义30
2009-10-20 09:11 1793第7 章 Struts2 类型转换技术 ... -
Struts2讲义29
2009-10-19 08:33 18466.3 JasperReports 报表视图技术使 ...
相关推荐
opencv_python-4.1.0.25-cp37-cp37m-linux_armv7l.whl
onnxruntime-1.13.1-cp38-cp38-win_amd64.whl
Few-shot CIFAR100数据集,来自CIFAR100数据集。 数据集共包含100类别,每个类别600张图像,合计60,000张图像。 数据集介绍:分为训练集、验证集、测试集 --data--train--:60个文件夹,36,000张图片 --data--val--: 20个文件夹,12,000张图片 --data--test--:20个文件夹,12,000张图片 FC100按照超类(Superclass)进行划分:训练集60个超类,验证集20个超类,测试集20个类别。
numpy-1.19.5-cp39-cp39-linux_armv7l.whl
基于springboot的城乡商城协作系统源码数据库文档.zip
基于springboot宠物管理系统源码数据库文档.zip
基于springboot餐饮连锁店管理系统源码数据库文档.zip
基于springboot在线问诊系统源码数据库文档.zip
1、资源内容地址:https://blog.csdn.net/2301_79696294/article/details/143734777 2、数据特点:今年全新,手工精心整理,放心引用,数据来自权威,且标注《数据来源》,相对于其他人的控制变量数据准确很多,适合写论文做实证用 ,不会出现数据造假问题 3、适用对象:大学生,本科生,研究生小白可用,容易上手!!! 4、课程引用: 经济学,地理学,城市规划与城市研究,公共政策与管理,社会学,商业与管理
功能说明: 陕理工图书馆管理系统包括两种用户,管理员,和学生用户。不同的用户都需要进行登录,然后针对其操作权限才能进入管理系统。 系统的设计将分为后台和前台,后台是系统管理员进行登录后管理,前台是学生使用的部分。 前台实现的功能包括:学生用户注册、登录,座位信息查看、阅览室信息、在线交流、座位预约、查看图书位置等。 服务器后台管理实现的功能包括:管理员登录,阅览室信息管理,座位管理,预约管理,图书管理以及用户管理等。 环境说明: 开发语言:python Python版本:3.6.8 数据库:mysql 5.7数据库工具:Navicat11开发软件:pycharm
numpy-1.16.1-cp35-cp35m-linux_armv7l.whl
scipy-1.2.0-cp35-cp35m-linux_armv7l.whl
opencv_python-4.0.1.24-cp37-cp37m-linux_armv7l.whl
ASP.NET酒店管理系统源码(WPF) 一、源码特点 采用WPF进行开发的酒店管理系统源码,界面相当美观,功能齐全 二、菜单功能 1、预订登记:可选择入住时间、离店时间、所在城市、证件类型,保存、删除、查询、返回 2、住宿结算:新增入住、保存、删除、查询、返回 3、今日盘点:查询、返回 4、查询统计: 5、房间管理:增加房间类型、删除类型、增加房间、删除房间、保存、返回 6、用户管理:增加用户、删除用户、保存、返回 7、系统配置:基本功能 8、显示当前系统时间等功能的实现
基于springboot的c语言学习辅导网站源码数据库文档.zip
基于springboot医疗废物管理系统源码数据库文档.zip
opencv_python-4.5.5.64-cp39-cp39-linux_armv7l.whl
gee_python基于机器学习ML(随机森林RF)的土地分类.ipynb
ta_lib-0.5.1-cp310-cp310-win32.whl
内容概要:本文档详细介绍了全国大学生电子设计竞赛的相关信息,包括竞赛的目的、流程、内容和技术要求等。竞赛涵盖了电子电路设计、嵌入式系统开发、信号处理等多个领域,通过竞赛可以有效提升学生的实践动手能力、创新意识和团队协作能力。 适合人群:准备参加全国大学生电子设计竞赛的学生及教师。 使用场景及目标:帮助学生和教师全面了解比赛的要求和流程,为备赛做好充分准备。 其他说明:文中提供了详细的竞赛内容介绍、技术要求、评审标准和注意事项,有助于参赛队伍制定合理的参赛策略,提高竞赛水平。