发明内容
针对现有技术中的缺陷,本发明提供一种数据的校验方法及浏览器、服务器,解决了Web应用系统校验功能开发效率低、维护工作量大的问题。
第一方面,本发明提供了一种数据的校验方法,该方法包括:
浏览器接收待校验数据,根据所述待校验数据的类型向服务器发送获取校验规则的请求,所述请求包括所述待校验数据的类型;
所述浏览器接收所述服务器根据所述校验规则的请求发送的校验规则,通过所述校验规则对所述待校验数据进行校验,所述校验规则为与所述待校验数据的类型对应的校验规则;
其中,所述服务器内存储有根据所述待校验数据类型定义的校验规则。
可选的,所述浏览器接收所述服务器根据所述校验规则的请求发送的校验规则,包括:
所述浏览器接收所述服务器发送的JSON文件;
所述浏览器根据所述JSON文件生成校验规则的JavaScript对象,获取所述JavaScript对象中的所述校验规则。
其中,所述服务器发送的JSON文件为所述服务器接收所述浏览器向所述服务器发送获取所述校验规则的请求之后,根据所述请求将所述校验规则的XML文件转换成JSON文件。
可选的,所述获取所述JavaScript对象中的所述校验规则,并对所述待校验数据进行校验之后,
若所述待校验数据未通过所述校验规则的校验,则在所述浏览器显示所述待校验数据未通过所述校验规则的提示信息。
第二方面,本发明提供了一种数据的校验方法,包括:
服务器接收待校验数据;
所述服务器根据所述服务器内存储的校验规则对所述接收的待校验数据进行校验;
其中,所述服务器内存储的校验规则为所述服务器根据校验数据类型定义的校验规则。
可选的,所述服务器根据所述服务器内存储的校验规则对所述接收的待校验数据进行校验,包括:
所述服务器获取所述待校验数据,采用服务器内的JavaScript引擎来执行与所述待校验数据对应的校验规则,对所述待校验数据进行校验。
可选的,所述对所述待校验数据进行校验之后,若所述待校验数据未通过所述校验规则的校验,则所述服务器向所述浏览器发送未通过所述校验规则的提示信息。
第三方面,本发明提供了一种浏览器,包括:
第一接收模块,用于接收待校验数据;
请求发送模块,用于根据所述第一接收模块接收的所述待校验数据的类型向服务器发送获取校验规则的请求,所述请求包括所述待校验数据的类型;
所述第一接收模块,还用于接收所述服务器根据所述校验规则的请求发送的校验规则;
第一数据校验模块,用于采用所述校验规则对所述待校验数据进行校验,所述校验规则为与所述待校验数据的类型对应的校验规则;
其中,所述服务器内存储有根据所述待校验数据类型定义的校验规则。
可选的,所述第一数据校验模块包括:
校验规则接收单元,用于接收所述服务器发送的JSON文件;
第一校验规则运行单元,用于根据所述JSON文件生成校验规则的JavaScript对象,获取所述JavaScript对象中的所述校验规则,并对所述待校验数据进行校验;
其中,所述服务器发送的JSON文件为所述服务器接收所述浏览器向所述服务器发送获取所述校验规则的请求之后,根据所述请求将所述校验规则的XML文件转换成JSON文件。
可选的,所述第一校验规则运行单元,还用于:
在所述待校验数据未通过所述校验规则的校验时,则在所述浏览器显示所述待校验数据未通过所述校验规则的提示信息。
第四方面,本发明提供了一种服务器,包括:
第二接收模块,用于接收待校验数据;
第二数据校验模块,用于根据所述服务器内存储的校验规则对所述第二接收模块接收的待校验数据进行校验;
其中,所述服务器内存储的校验规则为所述服务器根据校验数据类型定义的校验规则。
可选的,所述第二数据校验模块用于:
第二校验规则运行单元,用于获取所述待校验数据,采用服务器内的JavaScript引擎来执行与所述待校验数据对应的校验规则,对所述待校验数据进行校验。
可选的,所述第二校验规则运行单元,还用于:
在所述待校验数据未通过所述校验规则的校验时,则所述服务器向所述浏览器发送未通过所述校验规则的提示信息。由上述技术方案可知,本发明提供了一种数据的校验方法及浏览器、服务器,该方法通过在服务器端定义和存储待校验数据的校验规则,浏览器和服务器通过该校验规则对待校验数据进行校验,当对于不同类型的校验数据需要校验时,只需要更改服务器中的校验规则就可以实现对待校验数据进行校验,无需修改浏览器和服务器中的代码,该方法提高了校验功能的开发效率,降低了系统维护的工作量。
具体实施方式
下面结合附图,对发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
图1示出了本实施例提供的一种数据的校验方法,该校验方法包括以下步骤:
S101、浏览器接收待校验数据,根据所述待校验数据的类型向服务器发送获取校验规则的请求,所述请求包括所述待校验数据的类型;
举例来说,上述校验规则包括必须满足的强制性校验规则、可选的提示性校验规则以及校验的规则的具体内容等。
在具体应用中,上述校验规则主要是根据所述待校验数据类型定义的校验规则并存储在服务器内,其中,上述待校验数据可以为员工工资表的核对校验、政府的财政支出校验等类型。
S102、所述浏览器接收所述服务器根据所述校验规则的请求发送的校验规则,通过所述校验规则对所述待校验数据进行校验,所述校验规则为与所述待校验数据的类型对应的校验规则;
上述方法通过在服务器端定义和存储待校验数据的校验规则,浏览器通过该校验规则对待校验数据进行校验,当对于不同类型的校验数据需要校验时,只需要更改服务器中的校验规则就可以实现对待校验数据进行校验,无需修改浏览器中的代码,该方法提高了校验功能的开发效率,降低了系统维护的工作量。
在具体应用中,上述步骤S101的具体实现方式包括以下内容,本实施例以如下表1中的待校验数据为例来进行说明:
表1
本实施例中的校验规则按照表1中数据的类型进行校验规则的定义,并将该校验规则定义成如下的XML文件,并将该XML文件存储在服务器端。
定义的XML文件内容如下:
上述的每个validates节点代表一个校验,其中type=“required”表示必须满足的强制性校验规则,type=“optional”代表可选的提示性校验规则,rule的内容为校验规则的内容,msg的内容为在校验规则没有通过的情况下给用户的提示信息。
这个校验规则在服务器存储并在系统运行时刻加载到系统内存中,解析XML为一个个的校验规则。在浏览器和服务器进行校验的时候都是使用的这些解析出来的校验规则。
通过上述校验规则对待校验数据进行校验,当待校验数据更换时,只需更改上述校验规则,在浏览器和服务器采用该校验规则就可以实现待校验数据的校验。
上述步骤S102为如图2所示的浏览器校验过程,具体包括图1中未示出的子步骤:
S1021、所述浏览器接收所述服务器发送的JSON文件;
具体的,所述服务器发送的JSON文件为所述服务器接收所述浏览器向所述服务器发送获取所述校验规则的请求之后,根据所述请求将所述校验规则的XML文件转换成JSON文件。
S1022、所述浏览器根据所述JSON文件生成校验规则的JavaScript对象,获取所述JavaScript对象中的所述校验规则,并对所述待校验数据进行校验;
在上述步骤S1022之后,若待校验数据通过上述校验规则的校验,则忽略此规则;若所述待校验数据未通过所述校验规则的校验,则在所述浏览器显示所述待校验数据未通过所述校验规则的提示信息。
通过上述浏览器校验待校验数据的方法,浏览器直接向服务器请求获取校验规则,并且服务器直接将XML文件形式的校验规则直接转换成JSON文件形式的校验规则,浏览器获取到JSON文件形式的校验规则后生成校验规则的JavaScript对象,并将其放入浏览器的运行的JavaScript语言中,通过获取JavaScript语言中的校验规则,对待校验数据进行校验,该方法使得当待校验数据更换时,只需更改上述校验规则,在浏览器采用该校验规则就可以实现待校验数据的校验。并不需要更改浏览器端运行的JavaScript语言,只需调用服务器端的校验规则,该方法提高了校验功能的开发效率,并且降低了现有技术中修改JavaScript语言实现待校验数据的校验,降低了维护的工作量。
图3示出了本实施例提供的一种数据的校验方法,如图3所示,该校验方法包括以下步骤:
S301、服务器接收待校验数据;
S302、所述服务器根据所述服务器内存储的校验规则对所述接收的待校验数据进行校验;
其中,所述服务器内存储的校验规则为所述服务器根据校验数据类型定义的校验规则。
上述方法通过在服务器端定义和存储待校验数据的校验规则,服务器通过该校验规则对待校验数据进行校验,当对于不同类型的校验数据需要校验时,只需要更改服务器中的校验规则就可以实现对待校验数据进行校验,无需修改服务器中的代码,该方法提高了校验功能的开发效率,降低了系统维护的工作量。
上述步骤S302为如图3所示的浏览器校验过程,具体包括图1中未示出的子步骤:
所述服务器获取所述待校验数据,采用服务器内的JavaScript引擎来执行与所述待校验数据对应的校验规则,对所述待校验数据进行校验。
在上述子步骤之后,若待校验数据通过上述校验规则的校验,则忽略此规则;若所述待校验数据未通过所述校验规则的校验,则所述服务器向所述浏览器发送未通过所述校验规则的提示信息。
上述步骤S302为如图4所示的服务器校验的过程,具体包括图3中未示出的子步骤:
S3021、所述服务器获取所述待校验数据,通过使用JavaScript引擎来执行所述校验规则,对所述待校验数据进行校验。
上述服务器校验待校验数据时,因为服务器端是Java语言,无法实现直接调用,因此本实施例具体实施时,需要使用JavaScript引擎来执行校验规则,其中可以使用的JavaScript引擎函数如下:
ScriptEngineManagermgr=newScriptEngineManager();
ScriptEngineengine=mgr.getEngineByExtension("js");
engine.eval(jsstring);
Invocableinv=(Invocable)engine;
Stringvalue=String.valueOf(inv.invokeFunction("test"));
通过上述调用,在若待校验数据通过上述校验规则的校验,则忽略此规则;若所述待校验数据未通过所述校验规则的校验,则所述服务器向所述浏览器发送未通过所述校验规则的提示信息。
通过上述服务器校验待校验数据的方法,当待校验数据更换时,只需更改上述校验规则,在服务器采用该校验规则就可以实现待校验数据的校验。避免了现有技术中浏览器和服务器校验的时候将校验规则分别写在相应的JavaScript语言和Java语言中,导致这样的校验规则只能使用在某个系统中,无法再不同的系统中复用,同样JavaScript语言也无法在服务器进行校验,而采用本方法,只需在服务器使用JavaScript引擎来执行校验规则,这样浏览器和服务器相应的JavaScript语言和Java语言的复用程度大大提高了。
图5示出了本实施例提供的浏览器的结构示意图,如图5所示,上述浏览器包括:
第一接收模块51,用于接收待校验数据;
请求发送模块52,用于根据所述第一接收模块接收的所述待校验数据的类型向服务器发送获取校验规则的请求,所述请求包括所述待校验数据的类型;
举例来说,上述校验规则包括必须满足的强制性校验规则、可选的提示性校验规则以及校验的规则的具体内容等。
在具体应用中,上述校验规则主要是根据待校验数据的类型,定义的待校验数据的校验规则,并将所述校验规则存储在所述服务器。其中,上述待校验数据可以为员工工资表的核对校验、政府的财政支出校验等类型。
所述第一接收模块51,还用于接收所述服务器根据所述校验规则的请求发送的校验规则;
第一数据校验模块53,用于采用所述校验规则对所述待校验数据进行校验,所述校验规则为与所述待校验数据的类型对应的校验规则;
其中,所述服务器内存储有根据所述待校验数据类型定义的校验规则。
上述浏览器通过获取在服务器端定义和存储待校验数据的校验规则,并通过该校验规则对待校验数据进行校验,当对于不同类型的校验数据需要校验时,只需要更改服务器中的校验规则就可以实现对待校验数据进行校验,无需修改浏览器和服务器中的代码,该浏览器提高了校验功能的开发效率,降低了系统维护的工作量。
上述第一数据校验模块53具体包括图5中未示出的单元,包括:
校验规则接收单元531,用于接收所述服务器发送的JSON文件;
第一校验规则运行单元532,用于根据所述JSON文件生成校验规则的JavaScript对象,获取所述JavaScript对象中的所述校验规则,并对所述待校验数据进行校验;
其中,所述服务器发送的JSON文件为所述服务器接收所述浏览器向所述服务器发送获取所述校验规则的请求之后,根据所述请求将所述校验规则的XML文件转换成JSON文件。
上述第一校验规则运行单元,还用于:
在待校验数据通过上述校验规则的校验时,则忽略此规则;在所述待校验数据未通过所述校验规则的校验时,则在所述浏览器显示所述待校验数据未通过所述校验规则的提示信息。
上述浏览器直接向服务器请求获取校验规则,并且服务器直接将XML文件形式的校验规则直接转换成JSON文件形式的校验规则,浏览器获取到JSON文件形式的校验规则后生成校验规则的JavaScript对象,并将其放入浏览器的运行的JavaScript语言中,通过获取JavaScript语言中的校验规则,对待校验数据进行校验,该装置使得当待校验数据更换时,只需更改上述校验规则,在浏览器采用该校验规则就可以实现待校验数据的校验。并不需要更改浏览器端运行的JavaScript语言,只需调用服务器端的校验规则,该装置提高了校验功能的开发效率,并且降低了现有技术中修改JavaScript语言实现待校验数据的校验,降低了维护的工作量。
图6示出了本实施例提供的服务器的结构示意图,如图6所示,上述服务器包括:
第二接收模块61,用于接收待校验数据;
第二数据校验模块62,用于根据所述服务器内存储的校验规则对所述第二接收模块接收的待校验数据进行校验;
其中,所述服务器内存储的校验规则为所述服务器根据校验数据类型定义的校验规则。
所述第二数据校验模块62包括图6中未示出的第二校验规则运行单元:
第二校验规则运行单元621,用于获取所述待校验数据,采用服务器内的JavaScript引擎来执行与所述待校验数据对应的校验规则,对所述待校验数据进行校验。
上述所述第二校验规则运行单元621,还用于:
在待校验数据通过上述校验规则的校验时,则忽略此规则;在所述待校验数据未通过所述校验规则的校验时,则所述服务器向所述浏览器发送未通过所述校验规则的提示信息。
通过上述服务器,当待校验数据更换时,只需更改上述校验规则,在服务器采用该校验规则就可以实现待校验数据的校验。避免了现有技术中浏览器和服务器校验的时候将校验规则分别写在相应的JavaScript语言和Java语言中,导致这样的校验规则只能使用在某个系统中,无法再不同的系统中复用,同样JavaScript语言也无法在服务器进行校验,而采用本服务器,只需在服务器使用JavaScript引擎来执行校验规则,这样浏览器和服务器相应的JavaScript语言和Java语言的复用程度大大提高了。
以上所述各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。