专利名称:一种高效的Web的表单校验方法及其框架的制作方法
技术领域:
本发明涉及电子商务平台领域,用于对web网页中表单进行数据校验的高效方法及其框架,本发明极大了提高web开发的工作效率、保障了 web表单数据校验的可靠性及统一性。
背景技术:
如今正处于一个竞争力空前激烈的全球化时代,面对残酷的竞争,经营者必须利用一切机会降低成本,提高效率,扩大市场及提高服务质量,努力确保自己的竞争优势。电子商务为企业提供了全球性贸易环境,建立了新型的商务通道,大大提高了商务活动的水平和服务质量。在增强企业竞争力的各环节上,电子商务具有无可比拟的作用。随着广大的中小企业在电子商务方面的应用程度越来越深,关系到用户数据交互的环节就变得越来越重要。而用户数据页面交互的前端开发过程中,最频繁使用的是对用户数据的校验。这种校验往往是通过web表单将数据从客户端浏览器提交到服务端来进行,其中,表单中通常包含多种信息。例如,一个注册页面的用户名、密码、邮箱等信息;网上买保险的表单中被保人身份证、出生年月等信息。这些数据在表单填写时是不受限制的,理论上用户可以按照自己的意愿填写任何信息,但无论从数据的准确性、数据的一致性,还是数据安全方面考虑,都需要在用户填完表单后进行数据的验证。对于电子商务应用,用户在电子商务平台上管理和保存用户的个人资料是基础功能。在一个输入用户个人资料的页面上,要求输入用户姓名、公司名称、公司地址、出生年月等信息,其中对这些信息都有规范要求用户填写的用户姓名,需要验证用户姓名的拼写是否包含一些无法识别的符号,或者包含屏蔽的敏感词,又或者已经被其他用户使用等等;例如用户姓名不能超过8个字符串,那么用户使用时,第9个字符就不能进行输入,并且系统给出相应提示。对于其他的输入域,例如公司地址,在输入所在省后,系统将自动提供该省的所有城市进行选择,起到了多个输入域相互联动的作用。这些类信息经过进行规范的校验后,才能保存成功。通常情况下,对于一个表单的验证分两个步骤,首先在客户端浏览器中在用户录入完一条数据后进行实时校验并进行数据的校验结果提示;方便用户快捷的录入准确的数据,这部分工作由客户端JavMcript去完成;另一方面,在表单提交到服务器端以后,在服务端需要对数据再进行一次校验,虽然在客户端对数据已经进行了一次校验,但用户禁用 JavaScript或者伪造表单提交等等,都可以轻松绕过客户端的数据校验,所以服务端的数据校验时必须的,也是真正确保数据的准确性的决定环节,另外服务端还需要做一些客户端无法做到的一些复杂业务校验。可以看到,一个web表单的校验工作涉及到客户端的Javakript校验和服务端的数据校验,这就需要保证客户端的校验逻辑跟服务端校验逻辑要保持一致;通常情况下,一个web表单包含多个需要录入的字段,对每个字段都需要进行这两方面的校验;另外,web 开发过程中表单提交数据的场景非常常见,这些原因导致数据校验的工作给开发人员带来了非常大的工作开销;同时,多个web表单中还存在重复的字段,比如一个注册页面需要输入邮箱,进行邮箱格式校验;而另外一个找回密码页面,也需要输入邮箱,并进行邮箱格式校验。校验工作的重复性也影响着开发效率,在团队开发时,还有可能导致两个表单同个字段校验的不统一。随着电子商务应用的增多,电子商务平台的规模越来越大,数据校验开发工作的分工也越来越细,很多相关客户端的数据校验的开发工作与服务器端的数据校验开发工作往往分属不同的开发人员、或者不同的开发团队来进行。对于大规模、多团队协作开发的情况,传统的开发方法是按照开发人员的个人工作方式来进行开发,那么对于整体开发效果来说,费时费力,并易于出错;特别是在维持客户端和服务器端校验规则的一致性方面,按照传统的开发方式工作时,都显得力不从心,主要表现在开发重复、效率不高、开发质量得不到保证。因此对于电子商务平台的需求以及访问量急速增长的今天,这个问题急需解决。
发明内容
为了解决电子商务平台的用户数据页面的校验问题,本发明提供了一种高效的 Web表单校验的方法及其框架,保证大规模开发的代码质量,提高多团队大规模开发的效率,提升了大型电子商务平台的性能和稳定性。本发明的技术方案如下 一种表单数据校验的框架,包括
服务器端校验规则配置文件,用在服务器端,以HIil格式编写配置文件,根据指定的配置来完成服务器端的用户数据校验。客户端校验规则配置文件,用在客户端,以json格式编写配置文件,根据指定的配置来完成客户端的用户数据校验。配置文件转换插件,根据编写完成的xml格式的服务器端校验规则配置文件,采用配置文件转换插件,一键转换生成json格式的客户端校验规则配置文件,保证客户端和服务器端的校验机制统一。客户端校验引擎,用在客户端,通过读取并解析客户端校验规则配置文件,完成客户端数据校验的机制。服务器端校验引擎,用在服务器端,通过读取并解析服务器端校验配置配置文件, 完成服务器端数据校验的机制。同样道理,本发明还提供了一种高效的web表单校验方法,包括
根据电子商务平台相关数据校验的需要,编写服务器端校验规则配置文件(xml格式), 保存在服务器特定的文件夹中,供服务器端校验引擎调用;
通过配置文件转换插件,对服务器端校验规则配置文件进行转换; 转换后,形成客户端校验规则配置文件(json格式),供客户端校验引擎调用。通过这种方式,使客户端校验规则与服务器端校验规则的逻辑保持一致。根据上述方法
所述客户端接收来自用户输入的数据,通过客户端校验引擎,拉取客户端校验规则配置文件,对数据进行校验。其中客户端校验规则配置文件是由服务器端校验规则配置文件一键转换而来。所述数据在客户端校验通过后,系统将把数据提交到服务器进行校验。所述数据在客户端校验没有通过,系统将给出相应标准提示,返回给客户端,以保证用户根据标准提示进行数据输入调整。所述服务器在接收到客户端提交的数据后,通过服务器端校验引擎,拉取服务器端校验配置文件,对数据进行校验。所述数据在服务器端校验通过,服务器端将形成相应的页面返回给客户端。所述数据在服务器端校验没通过,系统将给出相应标准提示,返回给客户端,以保证用户根据标准提示进行数据输入调整。由上述本发明实施例提供的技术方案可以看出,本发明实施例既负责服务器端的数据校验,同时又负责客户端的数据校验,并保证了服务器端和客户端校验规则的逻辑一致。本发明有益效果如下
本发明通过把服务器端校验规则配置文件(ml格式),利用配置文件转换插件,一键转换成客户端校验规则配置文件(json格式),保证了服务器端和客户端校验规则的逻辑一致。在客户端,json格式文件占用资源小,利于JavMcript数据传输,先天具有贴近 JavaScript的优势,在客户端采用json格式作为配置文件,可以保证校验机制的性能高效,从而提高电子商务平台的访问性能。另外,将繁琐的数据校验编码工作简单的通过配置相应的配置文件来完成,该校验框架采用配置文件拉取注入的方式自动完成数据的校验,这意味着,对一个web表单的校验工作可以在正常业务逻辑开发完成后,配置相应的校验规则配置文件来完成校验工作,而无须去更改表单代码,即代码无侵入的完成该表单的数据校验工作;同样修改校验规则,也只需更改相应的配置文件即可。这就实现了校验工作的完全剥离,简化了繁琐的校验开发工作,极大的提高了工作效率,而且校验的可维护性也得到了很大的提高。
图1为本发明实施例提供的框架示意图。图2为本发明实施例中网络体系结构图。图3为本发明实施例中服务器端与客户端校验规则保持一致的处理流程图。图4为本发明实施例中用户数据校验流程图。图5为本发明实施例中修改校验规则的处理流程图。
具体实施例方式本发明提供了一种基于web的表单校验方法及相应框架。在本发明实施例中,通过把服务器端校验规则配置文件(xml格式文件),利用配置文件转换插件,一键转换成客户端校验规则配置文件(json格式文件),既负责服务器端的数据校验,又负责了客户端的数据校验,保证了服务器端和客户端校验规则的逻辑一致,从而消除了服务器端和客户端校验逻辑之间的不统一,并减小了重复开发工作量,提高了代码质量,提升了电子商务平台的
5性能和稳定性。参阅图1所示,本发明实施例中的框架包括服务器端11、客户端12、配置文件转换插件13。所述服务器端11用于接收客户端12提交的数据,对所接收的数据进行校验,以及把校验结果返回给所述客户端12。所述客户端12用于接收用户输入的数据,并对所接收的数据进行客户端校验,把通过校验的数据提交到服务器,等待服务器校验结果。所述配置文件转换插件13用于把服务器端的校验规则配置文件(xml格式)一键转换为客户端校验规则配置文件(json格式),保证客户端校验与服务器端校验逻辑的一致。所述服务端11包括服务器端校验引擎111、服务器端校验规则配置文件112。所述服务器端校验引擎111用于读取并解析服务器端校验规则配置文件112,完成服务器端数据校验。所述服务器端校验规则配置文件112用于配置相关的验证器和表单,分为验证器配置文件和表单配置文件,表单配置文件是以验证器配置文件为基础。验证器配置文件示例如下
〈validators xmlnsxsi=//http//www. w3. org/2001/XMLSchema_instance" xsi :noNamespaceSchemaLocation=//validator-schema. xsd〃> <patternValidatorList>
<patternValidator name=〃required〃 pattern=". *\S+.氺〃 /> <patternValidator name=〃hsCode〃 pattern=〃\d{0,8}〃 /> </patternValidatorLi st> <customValidatorList>
<customValidator className ="com. focuschina. validation.MyValidator" name=//customValidator/V> </customValidatorList> </validators>
其中,validators作为该文件的根元素,它包含了两个子元素,patternValidatorList 和customValidatorList,第一个是用来配置验证器的父元素,第二个是用来配置自定义验 iS 白勺5^7Τ Λ。 patterriViilidiitorList "STMI^Kii.^h patternVal idator jtM, *一个patternValidator元素配置了一个正则的验证器,其中,Name属性指定了该验证器的名字。请注意保证每个验证器的名字唯一,pattern属性就是该正则验证器的正则表达式。 customValidatorList 可以包含任意多个 customValidator,每一个 customValidator 兀素配置了一个自定义验证器,该元素必须包含className和Name两个属性,Name属性同上,className是该验证器的实现类。表单配置文件示例如下
< xml version=〃l. 0〃 encoding=〃UTF_8〃?>
<form cIassName = "com. cooyie. demo. Person" xmlns:xsi = "http://www. w3.org/2001/XMLSchema_instance〃xsi:noNamespaceSchemaLocation="validate-schema.xsd"> 〈fields〉
<fieldRule name=〃name〃 >
〈range min="6" max="10" errorEN="The name length must between 6 md 10〃 error="用户名应该在6到10个字母之间〃 type="STRING—LENGTH" /> 〈/fieldRule〉 〈/fields〉 〈actions >
<xcase name=〃testName〃>
〈field name=〃name〃/ </xcase> 〈/actions〉 </form>
所述客户端12包括客户端校验引擎121、客户端校验规则配置文件122。所述客户端校验引擎121用于读取并解析客户端校验规则配置文件122,完成客户端数据校验。所述客户端校验规则配置文件122是通过上述配置文件转换插件13,由上述服务器端校验规则配置文件112转换而来的。客户端校验规则配置文件(json格式)示例如下
{
globleSetting: {
formName ‘person', triggerOccasion: ‘change', tipType ‘dialog'
fields: [{
name ‘username', range: {
^ η ^
mm: 6 , max: ’ 12’, dataType ‘ length',
onFailTip:,名字长度应该在6到12之间.’
},
pattern: [{
regExp ‘asciicode',
onFailTip: ’名字必须为英文字母或者数字.’
}],
ajax: {url ‘ /FocusValidator/ajax. do', passFlag: ‘ 1', onPassTip:,名称可用,, onffaitTip: ’ 校验中...,, onFailTip:,名称不唯一,
}
}]
}
参阅图2所示,本发明实施例中网络体系结构图包括客户端21、电子商务服务器 22、数据库服务器23。客户端21,用于接收用户输入数据,在客户端对用户数据进行校验,把通过校验的数据提交到电子商务服务器22,接收电子商务服务器22的返回结果页。电子商务服务器22,用于接收客户端21提交的数据,并对数据进行校验,必要情况下读取数据库服务器23中的标准数据对用户数据进行校验,把校验结果页面返回给客户端。数据库服务器23,用于接收电子商务服务器的读取数据的请求,并相应其请求,提供电子商务服务器需要的数据。某些情况下,有些标准数据存储在数据库服务器23上,而提交到电子商务服务器22的用户数据在进行校验时,需要读取数据库服务器23上存储的标准数据进行校验。参阅图3所示,本发明实施例中服务器端与客户端校验规则保持一致的处理流程如下
步骤300:编写服务器端校验规则配置文件(xml格式),保存在服务器特定的文件夹中,供服务器端校验引擎调用;
步骤301 通过配置文件转换插件,对服务器端校验规则配置文件进行转换; 步骤302 转换后,形成客户端校验规则配置文件(json格式),供客户端校验引擎调用。通过这种方式,使客户端校验规则与服务器端校验规则的逻辑保持一致。参阅图4所示,本发明实施例中用户数据校验流程如下 步骤400 用户在客户端输入相应的数据;
步骤401 客户端校验引擎读取并解析客户端校验规则配置文件,进行客户端数据校
验;
步骤402 判断客户端校验是否通过。如果通过,那么进行下一步骤,如果没有通过,则在客户端页面上给出相应提示,提示用户正确的数据输入规范; 步骤403 在客户端校验通过后,用户数据提交到服务器端;
步骤404 服务器端校验引擎读取并解析服务器端校验规则配置文件,进行服务器端数据校验;
步骤405:判断是否需要读取数据库服务器中的标准数据,如果不需要,直接进行服务器端的数据校验,如果需要,则需读取数据库服务器的标准数据来准备对用户数据进行校验;步骤406 根据用户数据的需要,读取数据库服务器,获取数据库中相应的标准数据; 步骤407 判断服务器端校验是否通过。如果通过,那么进行下一步骤,如果没有通过, 则服务器返回客户端相应的结果信息,在客户端页面上给出相应提示,提示用户正确的数据输入规范;
步骤408 服务器端校验成功,返回客户端校验成功页面,校验工作完成。参阅图5所示,本发明实施例中修改校验规则的处理流程 步骤500 修改服务器端校验规则配置文件(xml格式);
步骤501 通过配置文件转换插件,对服务器端校验规则配置文件进行转换; 步骤502 转换后,形成客户端校验规则配置文件(json格式),供客户端校验引擎调用。通过这种方式,可以快速方便地使客户端校验规则与服务器端校验规则的逻辑始
终保持一致。本发明解决了数据校验存在的问题,利于开发人员将更多的精力专注于业务开发,从繁琐的数据校验代码中解脱出来;保证了客户端校验跟服务端校验的一致性,避免多表单重复字段校验的代码重复及代码差异,让前后端一致性校验更加快捷、高效。
权利要求
1.一种表单数据校验的框架,包括服务器端校验与客户端校验,其特征在于,所述客户端校验是对用户在客户端输入的数据进行校验,所述服务器端校验是对所述客户端校验通过后的数据在服务器端进行校验;所述服务器端校验是通过服务器端校验引擎调用服务器端校验规则配置文件,对客户端提交的数据进行校验;所述客户端校验是通过客户端校验引擎调用客户端校验规则配置文件,对用户输入的数据进行校验。
2.如权利要求1所述框架,其特征在于所述服务器端校验规则配置文件用xml文件编写,但不限于xml格式的文件,包括properties、conf等任何在服务端配置解析的文件类型,甚至包括java类。
3.如权利要求1所述框架,其特征在于所述客户端校验规则配置文件由服务器端配置文件转换而来,转换为json格式的配置文件,但不限于json格式的文件,同时包括html、 字符串形式等任何在客户端读取解析的配置文件类型,包括通过页面的隐藏控件设置的 value 值。
4.如权利要求1所述框架,其特征在于,还包括配置文件转换插件,根据编写完成的xml格式的服务器端校验规则配置文件,采用配置文件转换插件,一键转换生成json格式的客户端校验规则配置文件,保证客户端和服务器端的校验机制统一。
5.一种高效的web表单校验方法,包括根据电子商务平台相关数据校验的需要,编写服务器端校验规则配置文件(xml格式), 保存在服务器特定的文件夹中,供服务器端校验引擎调用;通过配置文件转换插件,对服务器端校验规则配置文件进行转换;转换后,形成客户端校验规则配置文件(json格式),供客户端校验引擎调用;通过这种方式,使客户端校验规则与服务器端校验规则的逻辑保持一致。
6.如权利要求5所述方法,其特征在于所述服务端校验和所述客户端校验是以校验规则配置文件为基础,通过校验引擎调用相应的校验规则配置文件进行数据校验,不需要开发人员专门进行校验代码的编写。
7.如权利要求5所述方法,其特征在于根据系统的功能需要,修改了所述服务器端校验规则配置文件后,通过所述配置文件转换插件,把所述最新的服务端校验规则配置文件一键转换成新的客户端校验规则配置文件(json格式),保证了服务器端校验规则与客户端校验规则在逻辑上始终保持一致。
8.如权利要求5所述方法,其特征在于所述客户端校验规则配置文件是json格式, json格式文件占用资源小,利于JavMcript数据传输,先天具有贴近JavMcript的优势, 可以保证校验机制的性能高效。
全文摘要
为了解决电子商务平台的用户数据的校验问题,本发明提供了一种高效的Web表单校验方法及框架。在本发明实施例中,通过配置文件转换插件,把服务器端校验规则配置文件(xml格式文件)一键转换成客户端校验规则配置文件(json格式文件),既负责服务器端的数据校验,又负责了客户端的数据校验,保证了服务器端和客户端校验规则的逻辑一致,从而消除了服务器端和客户端校验逻辑之间的不统一,并减小了重复开发工作量,提高了代码质量,提升了电子商务平台的性能和稳定性。
文档编号G06F11/36GK102426549SQ20111026471
公开日2012年4月25日 申请日期2011年9月8日 优先权日2011年9月8日
发明者翁强, 邢世康, 邹铁鹏 申请人:新一站保险代理有限公司, 焦点科技股份有限公司