admin 管理员组

文章数量: 887031


2023年12月23日发(作者:dw网页设计步骤图解)

第23卷第l期 计算机技术与发展 COMPUTER TECHNOI OGY AND DEVELOPMENT V01.23 No.1 2013年1月 Jan. 2013 Struts2框架校验文件自动生成技术 常革新,任永昌 (渤海大学信息科学与技术学院,辽宁锦州121013) 摘要:良好的输入校验是成熟软件的必备条件。针对Struts2框架的Web页面服务器端校验代码难于编写等问题,文中 研究将页面的数据设置到表中,由应用程序自动生成validation.xml配置文件的技术。在对Struts2的输入校验流程进行分 析的基础上,设计自动生成时用到的“校验器字典”和“页面控件设置”两个表的结构;然后进行自动生成程序设计,包括程 序设计流程和主要的校验函数;最后通过自动生成实例进行验证。结果表明,自动生成输入校验的validation.xml配置文 件,提高了软件开发劳动生产率,同时,自动生成技术也是软件工程未来重要的研究方向。 关键词:Struts2;校验文件;validation.xml;自动生成技术 中图分类号:TP311 文献标识码:A 文章编号:1673-629X(2013)O1—0059—04 doi:10.3969/j.jssn.1673—629X.2003.01.015 Automatic Generation Technology of Validation File 0f Struts2 Framework CHANG Ge—xin,REN Yong—chang (College of Information Science and Technology,Bohai University。Jinzhou 121013,China) Abstract:Good input validation is a prerequisite for sophisticated software.Aiming at the problem which validation code is hard to com— pile for Web page server for the Struts2 framework,study the technology that put page s data set into the tables.automatically generate validation.XI/11 by the application program.On the basis of the Struts2 input validation processes。design the structure of two tables,the” checker dictionary”and”control settings page”used when automatically generated;then automatically generates programming I including program design process and the main validation function;finally veilfy through automatic generation of examples.The results show that input validation.xml configuration files automatically generated,is to improve software development productivity,and automatical genera・ tion technology is an important future research directions of software engineering. Key words:Struts2;validation file;validation.xml;automatic generation technology O 引 言 Struts是Open Source项目,采用MVC模式,能够 很好地帮助Java开发者利用J2EE开发Web应用。 Stutrs2是WebWork的升级,吸收了Strutsl和Web— 题 “ 。输入校验一般可分为客户端校验和服务器校 验。 客户端校验最常用的方式就是用JavaScript脚本 语言对用户输入的数据进行校验。使用JavaScript脚 本校验一般都是进行一些初步的检查和过滤,由于无 Work的精华…。由于Web应用的开放性,网络上所 有的浏览都可以使用该应用,因此该应用通过输入页 面收集的数据就非常复杂,不仅包含正常用户的错误 输入,还可能包含恶意用户的恶意输入。一个健壮的 须同服务器端进行交互,所以提高了校验的响应速度, 不影响服务器的运行性能。使用JavaScript脚本进行 输入校验,需要在每一个页面中嵌人大量的脚本代码, 降低了代码的可读性,同时调试JavaScript代码也是非 常繁琐的工作 。客户端校验的主要作用是防止正常 应用系统必须将这些非法输入阻止在应用之外,防止 这些非法输入进入系统,这样才能够保证系统不受影 响。因此,输入校验是所有web应用必须解决的问 浏览者的误输入,仅能对输入进行初步过滤;对于恶意 用户的恶意行为,客户端校验将无能为力。 收稿日期:2012-05-19:修回日期:2012-08—23 基金项目:国家自然科学基金资助项目(70871067);2011年辽宁省 东欧及独联体国家重点引智项目 作者简介:常革新(1960一),男,黑龙江呼兰人,副教授,从事软件系 服务器端校验就是在服务器端采用程序代码或配 置文件的方式对用户输入的数据进行校验。用户通过 浏览器输入数据,然后传给服务器,服务器通过程序代 码或配置文件对用户的输入进行校验,最后将校验结 果传回浏览器显示给用户 。这种校验方式从完整 统开发的教学与科研j【作。 

・6O・ 计算机技术与发展 第23卷 性、可测试性等方面都有很大提高,但是编写程序代码 或配嚣文件仍然非常复杂。Struts2提供_『_基于验证框 架的输入校验,所有的输入校验只需要通过配置文件 即呵完成。文中就是通过分析Struts2框架校验配置 文件的规律,研究配置文件的自动生成技术。 1 Struts2输入校验流程 Struts2的输入校验通常经过以下几步 : (1)类型转换器对字符串的请求参数执行类型转 换,并将这些值设置成Action的属性值。 (2)类型转换过程中如果出现异常,将异常信息 保存到ActionContext中,eonversionEn-or拦截器将其封 装到fieldError里,执行下一步。如果未出现异常,直 接执行下一步。 (3)通过反射调用validateXxx()方法,其中Xxx 是即将处理用户请求的处理逻辑所对应的方法名。 (4)调用ActiOYI类里的validate()方法。 (5)如果出现异常,直接转入input视图所指定的 视图资源(对于验证的方法,必须要在配置文件中为 其指定input)。如果未出现异常,则转入用户请求的 处理方法,然后转入input视 所指定的视图资源。 检验流程如图l所示。 图1 Struts2输入检验流程 2 自动生成技术的表结构设计 自动生成技术运用i酊向对象的方法,根据数据库 中的记录进行牛成 。Struts2框架检验文件自动生成 需要“校验器字典”和“页面控件设置”2个表的支持。 这两个表之问通过“校验器中文”字段相关联。 2.1校验器字典表 校验器字典表用于设置所有的校验器,任何一个 控件的校验器,必须是该字典里的校验器 。校验器 字典表结构如表1所示。 表1校验器字典表结构 说明:对于允许使用标志,这类校验器的标志设置 为0,在生成文件时不包含。如:必填校验器、必填字 符串校验器、Vistor校验器、转换校验器等。 在校验器字典中,包括的校验器如表2所示。 表2校验器字典中包括的校验器 校验器名称 功能描述 必填 指定的字段为必填项,不能为空 必填字符串 指定的字段为必填字符串,不能为空 字符串长度 指定的属性值为指定长度的字符串 整数 指定的属性值为指定范围的整数 双精度浮点数 指定的属性值为指定范围的双精度浮点数 日期器 指定的属性值为指定范围的日期 邮件地址 指定的属性值为有效的邮件地址 网址 指定的属性值为有效的网页地址 正则表达式 指定的属性值匹配设置的正则表达式 2.2页面控件设置表 页面控件设置表存放所有的页面控件,以及对控 件检验的相关信息,根据该表的数据来生成validation. xml配置文件。页面控件设计表结构如表3所示。 表3 页面控件设置表结构 说明: ①字段类型,在这里用字段类型字段只起到提示 

第1,期 常革新等:Struts2框架校验文件自动生成技术 ・6l・ 作用,没其他作用; ②校验器中文,-根据中文在《检查器字典》里查询 检查器名称; (4)写入校验器。首先写入“必填校验器”,如果 有了“必填校验器,’,没有必要再应用“必填字符串校 验器”,因为任何位置填写的都是字符串,或者说二者 ③检查最小值和检查最大值,整数值型默认为存 储的最大值和最小值;浮点型和定点型根据精度和标 度计算,如(6,2),最小值为一9999.99 最大值为9999. 99;字符型最大宽度为设计时宽度,最小值,如果允许 只要有其一就行。然后写入“其它校验器”,对该页面 的所有“校验器,,循环,根据“校验器类型”执行相关的 函数,生成xML; (5)写人“校验结束标志”。 为空则为0,不允许为 空则为l;如果校验器 为电子邮件等,也需要 输入欲生成JavaScript的Web页面的ID 填写最大值,否则满足 电子邮件格式,但超过 从“页面控件设置”表查询该ID的所有“校验器”名称到dt(1)记录集中 为循环变量赋值(i=1) 数据库字符型字段的 存储范围时,不能保 存; While i(dt(1).RecordCount ._.+l,继续循环 毒中 d个查询“ 1检r验( )器的”第  li lI 嚣 ……’ 打开validation.xml文件 数据错误,退出 ④整数位和小数 位,校验器中文为“确 从“页面控件设置’:表查询该lD的所有.“校验器数据”到dc(7)记录集中 定精度数”的才填这 两个字段; ⑤表达式,对于特 殊要求的校验,用表达 式,也可以是正则表达 式,如校验IP地址; 检查生成validation.xml的文件名称及路径 符合要求 打开文件错误,退出 写入“文件声明及头描述信息” 写入“校验文件的根元素” ⑥校验提示,如果 “校验提示”字段的值 为空 则在校验过程中 自动生成校验提示;如 果不为空,则不生成校 验提示,直接显示“校 验提示”字段的内容。 写入“必填校验器”,执行checkMust函数 ”字符串长渡”,执行checkString函数 写入“其 它校验 器”。 ”整数,双精度浮点数”,执行checkNumeric函数 ”日期时间”,执行checkDatetime函数 ”表达式,字段表达式.正则表达式”,执行checkExpression函数 根据“校 验器类 型”执行 相关函 数 ”电子邮件,网址”,执行checkEmailhttp甬数 Else,提示:暂示无该“检验器类型” 3 自动生成技术 的程序设计 3.1程序设计流程 写入“校验结束标志” 程序设计流程如 图2所示 。 图2 自动生成程序设计流程 3.2校验函数设计  。程序设计步骤如下: (1)从“页面控件设置”表查询该页面的所有“校 在图2中,“必填校验器”要调用函数checkMust; “其它校验器”根据“校验器类型”执行相关函数的过 程中,共有5个函数,分别是checkString、checkNumer- ic、checkDatetime、checkExpression、checkEmailhttp。可 验器”是否都存在于“校验器字典”表中,如果都存在, 进入下一步;否则,表明有未知的不能生成代码的校验 器,生成过程终止; (2)检查生成validation.xml的文件名称及路径, 如果符合要求,打开文件,进入下一步;否则,生成过程 运用鱼骨刺测试模型,对Web各个输入框的数据进行 全方位测试¨。 。在此对较复杂的2个函数进行设计, 其它较简单的3个函数,读者可根据文中的设计思路 自行设计。 示例1:checkMust函数设计。 checkMust函数用于生成”必填校验器”,设计说 终止; ' -(3)写入“文件声明及头描述信息”及“校验文件 的根元素”; 

・62・ 计算机技术与发展 第23卷 明及代码如下: If Not(dt(7).Rows(j)!FlagKZ=1)Then TF.WOL(”<!一必填校验器__>”) TF.WOL(”<field—validat0r type=””required””>”) TF.WOL(”<message>【”&dt(7).Rows(j)!CName& ”】”&一 不能为空!</message>”) TF.WOL(”</field—validator>“1 End if 示例2:checkExpression函数设计。 checkExpression函数用于校验“表达式、字段表达 式、正则表达式”,表达式是基于OGNL进行验证,要求 表达式的返回值为Ture,否则校验失败;字段表达式用 于要求字段满足一个逻辑表达式,最终返回Boolean 值,如果是True,校验通过,否则校验失败;正则表达式 是指一个用来描述或者匹配一系列符合某个句法规则 的字符串的单个字符串¨ ,返回结果也是Boolean 值。checkExpression函数的设计代码如下: TF.WOL(”<!一一”&dr(7).Rows(j)!CheckerChina&”校 验器一>”) TF.WOL(”<field-validator type=”””&一ChinaToEnglish(dt (7).Rows(J)!CheckerChina)&”””>”) TF.WOL(”<param name=””expression””><![CDATA[” &一NullToSpace(dt(7).Rows(j)!Expression)&”]]></param >” ,校验提示 stfl’ p=NullToSpace(dt(7).Rows(j)!CheckPrompt) If Lenf strTep)=0 Then strTep=”【.1&dt(7).Rows(j)!CName&”】输入不正 确!f_ End If TF.WOL(”<message>”&strTep&”</message>”) rF.WOL(”</field—validator>” 4 自动生成示例 当用户登录时,必须输入用户名称和密码,且对输 入长度有一定的要求,通过文中的自动生成技术生成 的validation.xml代码如下: <?xml ve ̄ion=”1.0”encoding=”GBK”?> <!DOCTYPEvalidators PUBLIC”一//OpenSymphony Group// XWork Validator 1.0.2//EN” ”http://www.opensymphony.eom/xwork/xwork—validator一1. 0.2.dtd”> <validators> <field nanle=”userName” <field—validator type=”requiredstring”> <param name=‘ trim”>true</param> <message>用户名必填!</message> </fiehi—valil{ator> <field—validator type=’‘regex”> <param name=”expression”><![CDATA[(\w{4,25})]]> </param> <message用户名只能是字母和数组,且长度必须在4到25 之间</message> </field—validator> /<field> <field name=”pwd”> <field—validator type=”requiredstring”> <message>密码必填!</message> /<field—validator> <field-validator type=”regex’’> <param name=”expression”><![CDATA[(、w{4,25})]J> </param> <message>密码只能是字母和数组,且长度必须在4到25之 间</message> /<field-validator> </field> </validators> 5 结束语 Struts2框架校验文件validation.xml自动生成技 术的设计思路是遵循系统工程的原理和方法,根据数 据表中数据的设置,由应用程序自动生成Xml脚本, 使用统一的验证规则 13 1。开发人员不需要掌握 Struts2校验框架、Xml语言及数据库技术,只要完成对 数据库表中数据的设计,就能自动生成Validation.xml, 降低了对软件开发人员的技术要求,提高了软件开发 劳动生产率、加速软件开发进程、提高软件质量、便于 软件维护,改变了传统的软件开发模式: 。文中的研 究内容对于从事Web应用的开发人员具有较高的参 考价值。 参考文献: [1] 宋士安,邹俊伟,刘丽华.基于Struts+Hibernate的SCIP系 统设计与实现[J].计算机技术与发展,201l,2l(12):120 一l23. [2] 李 纲.Struts2权威指南[M].北京:电子工业出版社, 2008. [3]Walls C.Web Applications with Spring MVC[M].[S.1_]: Springer Press,2008. [4] 尹震字,赵海,孙佩刚,等.一种并行数据输入的循环冗 余校验码算法设计[J].计算机工程与应用,2006,42(27): l一5. [5] 王春林,耿祥义.Struts2的输入校验研究[J].软件导刊, 2009,8(5):41—42. [6] 田华,杜磊.Struts2输入校验总结[EB/OI ].201l—O7 —-21.http://zhaohe162.blog.163.eom/blog/static/38216797 (下转第66页) 

・66・ 计算机技术与发展 n.],2002:91—94. 第23卷 3结束语 文中深入分析了图像梯度信息的特点,在此基础 Fernandez—Maloigne C,Larabi M C,Bringier B,et a1.Spatio —上构造了一种灰度图像结构信息的复数表示方法,将 像素作为实部,对应的梯度作为虚部,这样就得到了包 含图像HVS敏感结构信息的梯度复数矩阵,采用分块 奇异值分解计算奇异值特征向量的方法度量两图像的 结构相似性,从而得到了降质图像的量化质量评价结 temporal characteristics of the human color perception for digitla quality assessment[C]//2005 Intemational Symposi— um on Signals,Circuits and Systems.New York:1EEE, 2005:203—206. Beghdadi A,Pesquest—Popescu B.A new image distortion measure based on wavelet decomposition[C]//IEEE 1 995 International Conference on Acoustics,Speech and Signal 果。实验结果表明,所提的方法优于传统的MSE方法 和MSvD方法 rocesPsing.Paris,France:[s.n.],2003:485—488. Petrovic V S,Xydeas C S.Gradient-based Multiresolution 参考文献: [1] Eskicioglu A,Fisher P S.A survey of image quality measures for gray scale image compression[C]//Computing in Aero— space Conference.San Diego,USA:AmeriCan Insittute of Aeronautics and Astronautics,1993:49—61. Image Fusion[J].IEEE Transactions on Image Processing, 2004,13(2):228—237. Narwaria M,Lin Weisi.Scalable image quality assessment based on structural vectors f C]//IEEE InternationaI Work— shop on Mulimedita Signal Processing.Rio de Janeiro,Bra— [2] Zhou Wang,Bovik A C.A universal image quality index [J].IEEE Signal Processing Letters,2002,9(3):181—184. [3] Zhou Wang,Bovik A C,Sheikh H R,et a1.Image quality as— rl rL rL rL rL zn:l s.n.],2009:l一6. Narawaria M,Lin Weisi.Objective Image Quality Assess— rlment Based on Support Vector Regression[J].IEEE Trans—  rL rL r1 sessment:From error visibility to snacturla similarity[J]. m ¨ t1J 1』1j 1● 1jactial Networks,2010,21(3):515—519. M ons on Neur"  1j]J 1J IEEE Transactions on Image Processing,2004,13(4):600— 6l2. Shnayderman A,Gusev A,Eskicioglu A M.An SVD—based Grayscale Image Quality Measure for Local and Global As— [4]Lee Y H,Park S Y.A study of convex concave edges and edge—enhancing operators based on the Laplacian[J].IEEE Trans.on Circuits Systems,1990,37(7):940—946. sessment[J].IEEE Transactions on Image Processing,2006. 15(2):422—429. Sheih H R,Wang Z,Cormack L,etk a1.LIVE Image Quality [5] Ramponi G.A cubic unsharp magl6ng technique for contrast enhancement[J].Signal rocesPsing,1998,67:21 1-222. [6]Sezan M I,Yip K L,Daly S J.Uniform perceptual quantiza- tion:application to digital radiography[J 1.IEEE Trans on Systems,Man and Cybernetics,1987,17(4):622-634. Assessment Database Release 2[EB/OL』.2005.http:// live.ece.utexas.edu/research/quality. Sheikh H R,Sabir M F,Bovik A C.A statistical evaluation of recent full reference image quality assessment algorithms [J].IEEE Transactions on Image rocesPsing,2006,15(11): 3440—3451. [7] Jing Xing.An image prcesosing model of contrast perception and discirmination of the human visual system[C]//2002 International Symposium Society for Information Display. Rohaly A M,Libert J,Corriveau P,et a1.Final Report from the Video Quality Experts Group on the Validation of Objec— Boston,Massachusetts,USA:[s.n.],2002:21—23. [8]Barni M,Bartolin F,de Rosa A.HVS modeling for quality e— valuation of art images[C]//IEEE 14th International Con— ference on Digital Signal Prcesosing.Santorini,Greece:[s. -tive Models of Video Quality Assessment[R/OL].2000.ht— tp://www.its.bldrdoc.gov/vqeg/projects/frtv—phaselI/ downloads/VQEGlI Final Report. +・・+一+一+”+”+一+一+・・+”+ +一十一+一—卜一+”—卜”—+一 —+-—‘卜一’—卜一—’一 ・・+・・+”+”+・・+-・+-・+n+・・+-・+・・+“+”+“+・-+”+・・+”+”+”+ (上接第62页) 20l045l15612836/. 百度白‘科.正则表达式[EB/OL].201l一07—20 http:// baike.baidu.corn/view/94238.htm. [7] 杜树杰.Web输入验证系统的对象化设计[J].计算机系 统应用,2006,16(11):41—44. 周冬初,鞠风娟,郭东珲 基于Struts2框架校验数据及整合 [8] 孔莉,郭曦,宋戈.企业动态网站应用程序开发一输 正则表达式的实现方法[J].计算机与现代化,2011,27 (1):85-87. Groenewegen D M,Visser E.Integration of Data Validation and User Interface Concerns in a DSL for Web Applications 入数据实时校验函数及使用方法(Javascript篇)[J].工具 技术,2005,39(11):5l-54. [9] Ren Y C.Research and Application on Automatic Generation Technology of JavaScirpt Input Validation[J].Advances in Intelligent and Soft Computing,2012,148(1):595—600. [J].Lecture Notes in Computer Science,2010,5969:164一 l73. [1O]阚红星,杨善林,袁 愍.一种Web输入验证的鱼骨刺测 试模型[J].合肥工业大学学报(自然科学版),2008,31 (4):527—530. 刘斌,王最.Struts,Spring,Hibenatre框架在OA开发 中的应用[J]l_计算机技术与发展,2010,20(1):151-154. 


本文标签: 校验 生成 输入