CN101572696B - 一种网页表单数据验证的方法和装置 - Google Patents
一种网页表单数据验证的方法和装置 Download PDFInfo
- Publication number
- CN101572696B CN101572696B CN 200810105458 CN200810105458A CN101572696B CN 101572696 B CN101572696 B CN 101572696B CN 200810105458 CN200810105458 CN 200810105458 CN 200810105458 A CN200810105458 A CN 200810105458A CN 101572696 B CN101572696 B CN 101572696B
- Authority
- CN
- China
- Prior art keywords
- validator
- module
- sign
- data
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供了一种网页表单数据验证的装置和方法。该装置包括:验证器管理模块,用于管理至少一个验证器,并维护验证器的标识和验证器之间的对应关系信息;脚本模块,用于接收生成脚本代码的调用请求,该调用请求中包含有网页表单的表单域信息,并根据该调用请求中包含的表单域信息,获取所述验证器管理模块所管理的验证器中与该网页表单中的表单域关联的验证器,通过调用该验证器获得用于客户端数据验证的脚本代码,将所述脚本代码输出,所述脚本代码用于客户端对所述表单域中的数据进行验证。利用本发明,减小客户端与服务器端的验证逻辑之间的不一致,从而减少系统出错的几率。
Description
技术领域
本发明涉及网络应用领域,尤其涉及一种网页表单数据验证的方法和装置。
背景技术
目前基于WEB(网页)方式的应用越来越多,在这些应用当中,使用WEB表单从客户端提交数据到服务器端的场景十分常见。基于网页表单方式提交数据到服务器端,一般需要对用户输入的数据进行验证,只有该数据被验证有效后,该数据才能被进一步处理。
比如在一个注册用户的网页上,要求输入用户名,密码等信息,其中用户名必须是大于6位的字符串,那么当用户输入5个字符就提交注册请求时,系统就会给出提示,说明用户名这个输入域必须要输入超过6个字符的字符串。对于其他输入域,比如密码,有更复杂的验证规范,当用户输入不符合这些验证规范时,系统给出提示,要求用户输入正确的数据。只有当用户在所有输入域都输入了正确的数据后,用户注册才能成功。
上述对用户输入的数据的验证可以分为两种方式:第一种是在客户端浏览器端通过脚本语言对表单的各个输入域进行数据验证,比如用户姓名不能为空,那么就可以通过脚本语言判断该表单的用户姓名输入框中是否有值;第二种方式是在服务器端进行验证,也就是通过服务器端逻辑代码(比如Java代码)对客户端提交过来的数据进行验证。
上述两种验证方式一般都是配合使用,而且服务器端的验证一般是必须的。因为浏览器端可以屏蔽掉脚本语言,这样就可能使浏览器端的验证失效,所以服务器端的验证就变成非常必要了。
因为采用WEB框架可以节省大量的代码编写,在基于WEB方式的应用中普遍采用WEB框架,并且通过WEB框架来完成网页表单数据的验证功能。
现有技术中的一种基于WEB框架的实现网页表单数据验证的方案为:实现了客户端和服务器端的验证;在服务器端,通过脚本模块采用模板技术生成脚本逻辑代码。在生成表单时,脚本模块通过查找配置的表单的用户输入域和该域所需要的验证器标识之间的对应关系信息,找到每一个输入域所关联的验证器标识,通过该标识生成验证脚本代码,这些验证脚本代码用于客户端对该输入域中的数据进行验证。并且通过上述输入域所关联的验证器标识对应的验证器完成服务器端的数据验证。
发明人在认真分析、仔细研究后发现,上述现有技术的基于WEB框架的实现网页表单数据验证的方案存在如下问题:
服务器端的验证逻辑实现是在验证器中完成,即验证器本身的验证逻辑,而用于客户端的数据验证的逻辑代码是由脚本模块根据验证标识通过模板来生成的,由于客户端的验证逻辑代码和服务器端的验证逻辑是由不同的对象实现,即两者的逻辑实现是分离的,容易导致客户端与服务器端的验证逻辑的不一致,并且验证逻辑的差异性较大,从而会增加系统出错的几率和维护成本。
发明内容
本发明实施例在于提供一种网页表单数据验证的方法和装置,以减小客户端与服务器端的验证逻辑之间的不一致,从而减少系统出错的几率。
本发明实施例的目的是通过以下技术方案实现的:
一种验证器,包括:
接口模块,包括指定接口,该指定接口被调用后,输出用于客户端数据验证的脚本代码;
验证模块,用于被触发进行服务器端的数据验证时,对需要验证的网页表单中的表单域中的数据进行验证。
一种网页表单数据验证的装置,包括:
验证器管理模块,用于管理至少一个验证器,并维护验证器的标识和验证器之间的对应关系信息;
脚本模块,用于接收生成脚本代码的调用请求,该调用请求中包含有网页表单的表单域信息,并根据该调用请求中包含的表单域信息,获取所述验证器管理模块所管理的验证器中与该网页表单中的表单域关联的验证器,通过调用该验证器获得用于客户端数据验证的脚本代码,将所述脚本代码输出,所述脚本代码用于客户端对所述表单域中的数据进行验证。
一种Web框架,包括:
框架主模块,用于接收客户端发送的获取表单页面的web请求,生成表单页面的页面内容,调用脚本模块生成脚本代码,将所述页面内容和该脚本模块返回的脚本代码返回给所述客户端;
验证器管理模块,用于管理至少一个验证器,并维护验证器和验证器的标识之间的对应关系信息;
脚本模块,用于在接收到生成脚本代码的调用请求后,根据该调用请求中包含的网页表单的表单域信息获取所述验证器管理模块所管理的验证器中与该网页表单中的表单域关联的验证器,通过调用该验证器获得用于客户端数据验证的脚本代码,将所述脚本代码返回给所述框架主模块。
一种网页表单数据验证的方法,包括:
接收客户端发送的获取网页表单页面的web请求,生成表单页面的页面内容;
获取所述网页表单中的表单域所关联的验证器,通过调用该验证器,获得用于客户端数据验证的脚本代码;
将所述表单页面的页面内容和所述脚本代码返回给所述客户端,所述脚本代码用于客户端对所述表单域中的数据进行验证。
由上述本发明实施例提供的技术方案可以看出,本发明实施例通过使验证器既负责服务器端的数据验证,又负责输出客户端数据验证的脚本代码,从而减小了对网页表单进行数据验证时,服务器端和客户端验证逻辑之间的不统一。
附图说明
图1为本发明实施例提供的验证器的结构示意图;
图2为本发明实施例提供的网页表单数据验证的装置的结构示意图;
图3为本发明实施例提供的Web框架的结构示意图;
图4为本发明实施例提供的网页表单数据验证的方法流程图;
图5为本发明实施例提供的网页表单数据验证的方法的第一种交互流程图;
图6为本发明实施例提供的网页表单数据验证的方法的第二种交互流程图。
图7为本发明实施例提供的增加验证器的处理过程示意图;
图8为本发明实施例提供的修改验证器的处理过程示意图;
图9为本发明实施例提供的删除验证器的处理过程示意图。
具体实施方式
本发明实施例提供网页表单数据的验证方法以及相应的装置。其中,在本发明实施例中,服务器端的验证和客户端的验证通过机制关联,具体可以是服务器端和客户端在验证逻辑可以通过关联验证器和验证域完成统一定义,并且由本发明实施例的验证器,既负责服务器端的数据验证,又负责输出客户端数据验证的脚本代码,从而减小了服务器端和客户端验证逻辑之间的不统一。以下分别进行详细说明。
本发明实施例提供的通信系统,包括服务器端和客户端,其中,服务器端,用于接收到来自客户端的用于获取表单页面的Web请求,生成相应的表单页面的页面内容和用于客户端数据验证的脚本代码,并返回给客户端,供客户端的浏览器解析显示相应的界面;应当说明的是:这里的用于客户端数据验证的脚本代码指用于客户端对显示表单中的表单域中输入的数据进行验证的脚本代码;其中,网页表单中的表单域可以关联一个或多个验证器;例如:在网页表单中的一表单域,如“用户姓名”域,可以跟两个验证器关联,一个是检测不能为空的验证器,一个是对长度进行检测的验证器。
客户端,用于向服务器端发送获取表单页面的Web请求,以及接收用户在显示的网页表单中的各表单域中的提交(或输入)的数据,根据返回的脚本代码对相应表单域中的数据进行验证,当各个表单域中的数据验证通过后,将相应的数据提交到服务器端,由服务器端对提交的数据进行验证;具体的,服务器端使用验证器对相应的表单域中的数据进行验证。
下面来介绍本发明实施例的验证器,本发明实施例提供的验证器的结构示意图如图1所示,其中,该验证器,既用于负责服务器端的数据验证(即提供服务器端的验证逻辑),又提供相关接口实现对客户端验证脚本代码的输出,其他模块通过调用该接口获取到用于客户端数据验证的脚本代码;主要包括如下模块:
验证模块11,用于被触发进行服务器端的数据验证时,对需要验证的网页表单中的表单域中的数据进行验证;在一种实现下,验证模块11,具体用于被触发进行服务器端的数据验证时,根据设置的用于服务器端验证的验证逻辑,对需要验证的网页表单中的表单域中的数据进行验证。应当理解的是:一个验证器中可以设置有一个或多个验证逻辑,客户端的数据验证脚本代码可以是多个验证逻辑中的至少一个,例如:验证器中存在A、B、C三个验证逻辑,客户端的数据验证脚本代码可以是A,或者A、B,或者A、B、C。
接口模块12,包括指定接口,该指定接口被调用后,输出用于客户端数据验证的脚本代码。根据客户端验证的需要,开发人员可以允许客户端和服务器端验证逻辑上有少量部分上的不同。
另需要说明的是:在一种实现下,接口模块12为第二接口模块,包括第二指定接口,该指定接口被调用后,生成用于客户端数据验证的脚本代码,并输出该脚本代码;
在另一种实现下,接口模块12中预先配置有用于客户端数据验证的脚本代码,接口模块12为第三接口模块,包括第三指定接口,该指定接口被调用后,输出预先配置的、用于客户端数据验证的脚本代码。
进一步的,为了解决服务器端和客户端验证逻辑的不一致,在一种实现下,该接口模块12为第一接口模块,用于提供第一指定接口,该第一指定接口被调用后,输出与验证模块11的验证逻辑相同的脚本代码,该脚本代码用于客户端数据验证。
可见,本发明实施例中的验证器除了提供服务器端的数据验证外,还被调用并输出用于客户端数据验证的脚本代码给客户端,客户端的浏览器通过该脚本代码对数据进行验证,从而减小了服务器端和客户端验证逻辑不一致,并且还可以通过验证器输出与验证模块的验证逻辑相同的脚本代码,使得服务器端和客户端验证逻辑一致,从而减少系统出错的几率和系统维护成本。
本发明实施例提供的网页表单数据验证的装置的结构示意图如图2所示,包括如下模块:
验证器管理模块24,用于管理至少一个验证器,维护验证器的标识和验证器之间的对应关系信息,其中,不同的验证器实现不同的验证逻辑,每个验证器对应有验证器标识,通过该验证器的标识,可以找到具体的验证器;应当说明的是:验证器的标识是用于标识和区分不同验证器的信息,可以是验证器名称、验证器序号等,形式上可以采用数字,或者字符,或者数字和字符的组合,例如:采用不同的字符串表示不同验证器的验证器名称;
脚本模块22,用于接收生成脚本代码的调用请求,该调用请求中包含有网页表单的表单域信息,并根据该调用请求中包含的表单域信息,获取所述验证器管理模块24所管理的验证器中与该网页表单中的表单域关联的验证器,通过调用该验证器获得用于客户端数据验证的脚本代码,将所述脚本代码输出,所述脚本代码用于客户端对所述表单域中的数据进行验证。
当Web应用比较复杂时,例如:网页表单涉及多个表单域,每个表单域关联一个或多个验证器时,为了方便调用验证器,可以将表单域和验证器关联起来,实现上就是维护表单域标识和验证器标识之间的关联信息;这里的,表单域标识为用于标识和区分不同表单域的信息,例如:表单域名称等;相应的,上述的网页表单数据验证的装置还可以包括:
关联模块23,用于存储表单域标识和验证器标识之间的关联信息。比如,添加新用户的表单中的年龄域中必须输入一定范围的整数,所以该年龄域可以关联一个验证可以设置范围的并验证输入数据为整数的验证器。一个表单域标识可以关联一个或多个验证器标识。
相应的,该脚本模块22为第一脚本模块,用于在接收到生成脚本代码的调用请求后,根据该调用请求中包含的网页表单的表单域标识信息,从关联模块23获取与所述表单域标识关联的验证器标识,并通过该验证器标识从所述验证器管理模块24获取到相应验证器,通过调用该验证器获得用于客户端数据验证的脚本代码,优选的,该脚本代码为与该验证器的验证逻辑相同的脚本代码,将所述脚本代码输出,所述脚本代码用于客户端对所述表单域中的数据进行验证。
上述的网页表单数据验证的装置还可以进一步包括:至少一个验证器;其中,该验证器,用于被验证器管理模块24所管理,并提供指定接口,该指定接口被脚本模块22调用后,返回用于客户端数据验证的脚本代码。在一种实现下,该验证器返回的用于客户端数据验证的脚本代码为与该验证器的验证逻辑相同的脚本代码。
上述的网页表单数据验证的装置还可以进一步包括:
服务器验证模块21,用于在接收到客户端提交的用户输入的数据和网页界面内容后,根据所述关联模块23中存储的关联信息,获取与网页表单中的表单域关联的验证器的标识,根据该验证器的标识获取所述验证器管理模块24所管理的对应的验证器,通过该验证器对获得的、客户端验证通过的所述网页表单中的表单域中的数据进行验证。
本发明实施例中,验证器管理模块24可以在不修改其它模块的情况下,对验证器进行增加、删除和/或修改等管理操作,在一种实现下,验证器管理模块24为第一验证器管理模块24,用于根据获得的配置信息对验证器进行增加、删除和/或修改操作,其中该配置信息包含有与待更新的验证器相关的验证器信息,并维护验证器的标识和验证器之间的对应关系信息。具体可以通过读取配置文件的方式获取验证器相关信息,例如:根据实际应用的情况,如果需要增加新的验证器,则可以通过读取包含该新的验证器的相关信息的配置文件来获取该新的验证器的信息,从而完成增加验证器。
在本发明中,可以通过WEB框架来完成网页表单数据的验证功能,参见图3所示,本发明实施例提供的Web框架的结构示意图,该Web框架用于获得与网页表单中的表单域关联的验证器,通过调用该验证器获取用于客户端数据验证的脚本代码并返回,所述脚本代码用于客户端对该表单域中的数据进行验证,以及由表单域关联的验证器完成服务器端的数据验证,主要包括如下模块:
框架主模块31,用于接收客户端发送的获取表单页面的web请求,生成表单页面的页面内容,调用脚本模块生成脚本代码,将所述页面内容和脚本模块返回的脚本代码发送给所述客户端。
验证器管理模块34,用于管理至少一个验证器,以及维护验证器的标识和验证器本身之间的对应关系信息,可以在不修改其它模块的情况下,对验证器进行增加、删除和/或修改等管理操作。
脚本模块35,用于在接收到生成脚本代码的调用请求后,根据该调用请求中包含的网页表单的表单域信息获取所述验证器管理模块34所管理的验证器中与该网页表单中的表单域关联的验证器,通过调用该验证器获得用于客户端数据验证的脚本代码,将所述脚本代码返回给所述框架主模块31。在一种实现下,这里的用于客户端数据验证的脚本代码可以是与该验证器的验证逻辑相同的脚本代码,从而使得客户端和服务器端的验证逻辑一致。
上述的网页表单数据验证的Web框架还可以包括:
关联模块33,用于存储该表单域标识和验证器标识之间的关联信息。这里的,验证器的标识是用于标识和区分不同验证器的信息,可以是验证器名称、验证器序号等,形式上可以采用数字,或者字符,或者数字和字符的组合,例如:采用不同的字符串表示不同验证器的验证器名称;表单域标识为用于标识和区分不同表单域的信息,例如:表单域名称等;比如,添加新用户的表单中的年龄域中必须输入一定范围的整数,所以该年龄域可以关联一个验证可以设置范围的并验证输入数据为整数的验证器。一个表单域可以关联一个或多个验证器,实现上,即一个表单域标识可以关联一个或多个验证器标识。
相应的,脚本模块35为第一脚本模块35,具体用于在接收到生成脚本代码的调用请求后,根据该调用请求中包含的网页表单的表单域标识信息,从关联模块33获取与网页表单中的表单域标识关联的验证器标识,并通过该验证器标识从验证器管理模块34获取到相应验证器,通过调用该验证器获得用于客户端数据验证的脚本代码,优选的,该脚本代码可以是与该验证器的验证逻辑相同的脚本代码,将所述脚本代码返回给框架主模块31,所述脚本代码用于客户端对所述表单域中的数据进行验证。具体的,可以通过调用该验证器的指定接口获得与该验证器的验证逻辑相同的脚本代码。
当Web框架接收到客户端提交的用户输入的数据和网页界面内容后(即客户端浏览器验证通过后),框架主模块31还用于将客户端提交的用户输入的数据和网页界面内容输出给服务器验证模块32;
上述的网页表单数据验证的web框架还可以进一步包括:
服务器验证模块32,用于在接收到框架主模块31输出的客户端提交的用户输入的数据和网页界面内容后,根据所述关联模块33中存储的关联信息,获取与网页表单中的表单域关联的验证器的标识,根据该验证器的标识从所述验证器管理模块34所管理的验证器中获取对应的验证器,通过该验证器对获得的、客户端已验证通过的所述网页表单中的表单域中的数据进行验证。
上述的网页表单数据验证的web框架还可以进一步包括:至少一个验证器,其中,该验证器,用于被验证器管理模块34所管理,并提供指定接口,该指定接口被所述脚本模块35调用后,返回用于客户端数据验证的脚本代码,以及负责对网页表单的相应表单域中的数据进行服务器端验证。
在一种实现方式下,所述框架主模块31为第一框架主模块,用于接收客户端发送的获取表单页面的web请求,生成表单页面的页面内容,调用脚本模块35生成脚本代码,并将脚本模块35返回的的脚本代码包含在生成的(表单页面)网页表单的页面内容中返回给客户端;
在另一种实现方式下,所述框架主模块31为第二框架主模块,用于接收客户端发送的获取表单页面的web请求,生成表单页面的页面内容,调用脚本模块35生成脚本代码,并将所述网页表单的页面内容和脚本模块35返回的脚本代码分别发送给所述客户端,例如:将生成的表单页面的页面内容单独返回,将脚本代码以脚本文件的形式返回给客户端。需要说明得是:客户端浏览器在获得该脚本文件后,可以通过执行该脚本文件中的脚本实现对客户端的数据进行验证。
本发明实施例提供的网页表单数据验证的方法流程如图4所示,可以应用于服务器,具体可以是web服务器,也可以应用于Web框架,包括如下步骤:
步骤41、接收客户端发送的获取网页表单页面的web请求。
步骤42、根据该web请求生成相应的表单页面的页面内容;
获得所述网页表单页面中的表单域所关联的验证器,通过调用该验证器获得用于客户端数据验证的脚本代码,在一种实现方式下,该脚本代码可以是与该验证器的验证逻辑相同的脚本代码,使得客户端和服务器端的逻辑实现是一致的。需要说明的是:生成表单页面的页面内容的步骤和获得脚本代码的步骤没有先后顺序之分。
其中,获得所述网页表单页面中的表单域所关联的验证器的步骤包括:
根据维护的表单域标识和验证器标识之间的关联信息,获得与所述网页表单中的表单域关联的验证器标识;
根据维护的验证器标识和验证器本身之间的对应关系信息,获得与该表单域关联的验证器标识对应的验证器。所述网页表单中的表单域可以关联一个或多个验证器,换句话说,即所述网页表单中的表单域标识关联一个或多个验证器标识。
步骤43、将所述表单页面的页面内容和该脚本代码返回给所述客户端,所述脚本代码用于客户端对所述表单域中的数据进行验证。
下面具体介绍本发明实施例提供的网页表单数据验证的方法的第一种处理流程,参见图5所示,包括如下步骤:
步骤S51、客户端将用于获取表单页面的Web请求发送给服务器端,具体可以是:用户在浏览器中输入一个网页地址(url,Uniform ResourceLocator),向上述url对应的服务器提交一个web请求。上述url可以为一个用户向一个网站注册用户资料的url。举例说明:在客户端,用户通过浏览器输入一个URL提交注册成为某网站会员的请求。
步骤S52、服务器在接收到该web请求后,由框架主模块利用预先设置的框架生成网页的页面内容,该页面内容中包括各种表单界面。
步骤S53、框架主模块调用脚本模块生成脚本代码,该脚本代码用于客户端对表单中的相应的表单域中的用户输入的数据进行验证。
步骤S54、脚本模块接收用于生成脚本代码的调用请求,其中该调用请求中包含有网页表单的表单域标识信息,根据该调用请求中包含的表单域标识(例如:表单域名)向关联模块查询各个表单域标识关联的验证器标识,其中,每个表单域标识关联的验证器标识可以为一个或多个。
关联模块向脚本模块返回各个表单域标识关联的验证器的标识信息。
步骤S55、脚本模块使用上述关联模块返回的验证器的标识,到验证器管理模块获取到具体的验证器;
在一种实现方式下,具体为,脚本模块使用返回的验证器的标识,到验证器管理模块获取具体的验证器对象实例。
步骤S56、脚本模块获取到验证器后,通过调用验证器对外提供的接口,获得用于客户端数据验证的脚本代码,在一种实现下,该脚本代码为与该验证器的验证逻辑相同的脚本代码。
具体的,脚本模块获取到验证器对象实例后,逐个调用验证器对象实例的一个方法,每个验证器的该方法负责生成该验证器对应的客户端验证逻辑的脚本代码。
脚本模块根据上述处理过程,逐个获得各个表单域的客户端数据验证的脚本代码。
步骤S57、脚本模块将上述获得的表单域的客户端数据验证的脚本代码返回给框架主模块。
步骤S58、框架主模块将脚本代码组合在网页中即将脚本代码包含在生成的页面内容中返回给客户端。
客户端浏览器经过解析,显示相应的网页界面。
在实际应用中,上述步骤S53到步骤S57还可以在步骤S52之前执行,即先由脚本模块获得脚本代码,然后,再由框架主模块生成页面内容。
步骤S59、用户通过客户端浏览器,在上述网页界面中的各个表单域中输入数据,并提交数据。
步骤S510、负责客户端验证的上述脚本代码对相应表单域中用户输入的数据进行验证。如果发现用户数据输入错误,则脚本代码可以给出相应的提示。
步骤S511、当负责客户端验证的上述脚本代码验证用户在相应表单域中输入的数据都正确后,客户端将上述用户输入的数据和网页界面内容提交到服务器端。
步骤S512、当服务器端接收到上述用户输入的数据和网页界面内容,由框架主模块调用服务器验证模块处理;
步骤S513、服务器验证模块根据网页界面内容中的各个表单域向关联模块进行查询,获取各个表单域所关联的验证器的标识信息。
步骤S514、服务器验证模块根据上述获取的验证器的标识信息向验证器管理模块进行查询,获取各个表单域所关联的各个验证器标识对应的验证器。
步骤S515、服务器验证模块通过使用相应的验证器对各个表单域中上述用户输入的数据进行验证,当服务器验证模块验证上述用户输入的数据有错误后,执行步骤S516;当服务器验证模块验证上述用户输入的数据全部通过后,执行步骤S517。
S516、服务器验证模块通过框架主模块将上述网页界面内容返回到客户端浏览器,并提示相应的错误信息。
客户端浏览器经过解析,显示相应的网页界面,用户继续在该网页界面的各个表单域中输入数据,执行步骤S59。
步骤S517、服务器验证模块向框架主模块返回验证正确信息。
步骤S518、框架主模块调用业务模块对上述用户输入的数据和网页界面内容进行处理。
步骤S519、当业务模块处理完毕,框架主模块向客户端浏览器返回处理结果。
本发明实施例提供的网页表单数据验证的方法的第二种处理流程如图6所示,包括如下步骤:
步骤S61、客户端向服务器端发送用于获取表单页面的Web请求,具体可以是:用户在浏览器中输入一个url,向上述url对应的服务器提交一个web请求。
步骤S62、该服务器在接收到上述web请求后,该web请求由框架主模块处理。框架主模块在接收到该web请求后,利用预先设置的框架生成网页的页面内容,该页面内容中包括各种表单界面。框架主模块还生成一个脚本代码的链接,该链接是一个URL。
步骤S63、框架主模块将上述生成的页面内容和脚本代码链接返回给客户端浏览器,具体可以是:该链接包含在网页内容中返回给客户端浏览器
步骤S64、客户端浏览器接收到上述脚本代码链接后,在解析该链接时,向服务器端发送用于获取客户端验证脚本代码的请求,简称为脚本获取请求。
步骤S65、服务器端接收到该脚本获取请求,由框架主模块调用脚本模块生成客户端验证脚本代码,换句话说,即发送生成脚本代码的调用请求,该调用请求中包含表单的表单域标识信息。
步骤S66、脚本模块接收到用于生成脚本代码的调用请求后,根据该调用请求中包含的表单中各个表单域标识信息向关联模块查询,获得关联模块返回的各个表单域标识关联的验证器标识,每个表单域标识关联的验证器的标识可以为一个或多个。
具体可以是:根据表单域名向关联模块查询,获得关联模块返回的各个表单域名关联的验证器标识,如验证器名。
步骤S67、脚本模块使用上述关联模块返回的验证器的标识,到验证器管理模块获取相应的验证器。
步骤S68、脚本模块使用验证器获得客户端验证的脚本代码,具体可以是:脚本模块获取到验证器后,通过调用该验证器对外提供的接口,获得与该验证器的验证逻辑相同的脚本代码。
脚本模块根据上述处理过程,逐个获得客户端验证各个表单域的脚本代码。
步骤S69、脚本模块将上述获得的脚本代码返回给框架主模块。
步骤S610、框架主模块将该脚本代码返回到上述脚本代码的链接所对应的地址中。客户端浏览器根据上述脚本代码的链接,从上述地址中获得上述脚本代码。例如:框架主模块将所需要的验证脚本代码以脚本文件的形式返回到客户端浏览器;
然后,客户端浏览器根据上述页面内容和脚本代码经过解析,显示相应的网页界面。
步骤S611、客户端接收用户在网页界面中的各个表单域中输入的数据,具体可以是:用户通过客户端浏览器,在上述网页界面中的各个表单域中输入数据,并提交数据。
步骤S612、负责客户端验证的脚本代码对各个表单域中上述用户输入的数据进行验证。如果发现用户数据输入错误,则脚本代码可以给出相应的提示。
步骤S613、当负责客户端验证的脚本代码验证用户在所有表单域中输入的数据都正确后,将上述用户输入的数据和网页界面内容提交到服务器端。
步骤S614、服务器端接收到的上述用户输入的数据和网页界面内容,由框架主模块调用服务器验证模块处理。
步骤S615、服务器验证模块根据网页界面内容中的各个表单域向关联模块进行查询,获取关联模块返回的各个表单域所关联的验证器的标识信息。
步骤S616、服务器验证模块获取表单域对应的验证器,具体可以是:根据上述获取的验证器的标识信息向验证器管理模块进行查询,获取各个验证器标识对应的验证器。
步骤S617、服务器验证模块使用验证器进行服务器端数据验证,具体可以是:服务器验证模块通过相应的验证器对上述各个表单域中用户输入的数据进行验证,当服务器验证模块验证上述用户输入的数据有错误后,执行步骤S618;当服务器验证模块验证上述用户输入的数据全部通过后,执行步骤S619。
步骤S618、服务器验证模块将上述网页界面内容返回到客户端浏览器,并提示相应的错误信息。
步骤S619、服务器验证模块,向框架主模块返回验证正确信息;
步骤S620、框架主模块调用业务模块对上述用户输入的数据和网页界面内容进行处理。
步骤S621、当业务模块处理完毕,框架主模块向客户端浏览器返回处理结果。
综上所述,本发明实施例通过验证器既负责服务器端的数据验证,同时也对外提供接口,通过该接口输出客户端数据验证的脚本代码,从而减小了对网页表单进行数据验证时,服务器端和客户端验证逻辑的不一致,从而降低了系统的出错几率和系统维护成本。
本发明实施例提供动态增加、删除、修改验证器的功能;下面结合附图进行说明:
本发明实施例提供的增加验证器的处理过程示意图如图7所示,应用于Web框架,具体由Web框架中的验证器管理模块34处理,需要说明的是:不需要修改Web框架中的其他模块,具体处理过程为:
读取一配置文件,其中该配置文件中配置了需增加的第一验证器的相关验证器信息,包括:验证器标识信息,实现功能的代码标识信息等,这里的实现功能的代码标识信息例如:C++的编译的执行程序的文件路径,或者java中的代码类名等;
通过读取该配置文件获取需增加的第一验证器的相关信息,从而实现了增加验证器的功能。
本发明实施例提供的修改验证器的处理过程示意图如图8所示,应用于Web框架,具体由Web框架中的验证器管理模块34处理,需要说明的是:不需要修改Web框架中的其他模块,具体处理过程为:
读取一配置文件,其中该配置文件为修改后的配置文件,例如:根据实际应用需要,将该配置文件中的与第二验证器相关的配置信息进行了修改,如:修改了验证器的实现功能的代码标识信息;
通过读取该配置文件获取修改后的验证器的相关信息,从而实现了修改验证器的功能。管理模块注册修改后的验证器的信息,实现动态修改。
本发明实施例提供的删除验证器的处理过程示意图如图9所示,应用于Web框架,具体由Web框架中的验证器管理模块34处理,需要说明的是:不需要修改Web框架中的其他模块,具体处理过程为:
读取一配置文件,其中该配置文件为修改后的配置文件,例如:根据实际应用的需要,将该配置文件中的与第三验证器相关的配置信息删除;
通过读取该配置文件获取修改后的验证器的相关信息,从而实现了删除验证器的功能。
以及,本发明实施例中,通过验证器输出客户端验证的脚本代码,解决了在现有技术方案中,修改、删除或者增加一个验证器后,须要修改负责脚本代码生成的模板文件的问题,并且解决了现有技术中当修改、删除或者增加一个验证器必须更新整个WEB框架的发布文件,所导致的重启系统,造成业务处理的中断,从而影响正常业务的处理的问题。
并且,本发明实施例中,增加、删除和修改验证器,只需要对验证器管理模块进行操作,无需修改其他模块,解决了现有技术方案中,修改、删除或者增加一个验证器后,对脚本模块还需要进行修改的问题,避免了修改、删除或者增加一个验证器对WEB框架中其他模块的影响。
本领域普通技术人员可以理解实现上述实施例的网页表单数据验证的过程可以通过程序指令相关的硬件来完成,所述的程序可以存储于可读取存储介质中,该程序在执行时执行上述方法中的对应步骤。所述的存储介质可以如:ROM/RAM、磁碟、光盘等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (12)
1.一种验证器,其特征在于,包括:
验证模块,用于被触发进行服务器端的数据验证时,对需要验证的网页表单中的表单域中的数据进行验证;
第一接口模块,用于提供第一指定接口,该第一指定接口被调用后,输出与所述验证模块的验证逻辑相同的脚本代码,该脚本代码用于客户端数据验证。
2.一种网页表单数据验证的装置,其特征在于,包括:
验证器管理模块,用于管理至少一个验证器,并维护验证器的标识和验证器之间的对应关系信息;
脚本模块,用于接收生成脚本代码的调用请求,该调用请求中包含有网页表单的表单域信息,并根据该调用请求中包含的表单域信息,获取所述验证器管理模块所管理的验证器中与该网页表单中的表单域关联的验证器,通过调用该验证器获得与该验证器的验证逻辑相同的脚本代码,将所述脚本代码输出,所述脚本代码用于客户端对所述表单域中的数据进行验证。
3.根据权利要求2所述的网页表单数据验证的装置,其特征在于,所述装置还包括:
关联模块,用于存储网页表单中的表单域标识和验证器标识之间的关联信息;
所述脚本模块为第一脚本模块,用于在接收到生成脚本代码的调用请求后,根据该调用请求中包含的网页表单的表单域标识信息,从关联模块获取与所述表单域标识关联的验证器标识,并通过该验证器标识从所述验证器管理模块获取到相应验证器,通过调用该验证器获得与该验证器的验证逻辑相同的脚本代码,将所述脚本代码输出,所述脚本代码用于客户端对所述表单 域中的数据进行验证。
4.根据权利要求2所述的网页表单数据验证的装置,其特征在于,所述装置还包括:至少一个验证器;
所述验证器,用于被所述验证器管理模块所管理,并提供指定接口,该指定接口被所述脚本模块调用后,返回用于客户端数据验证的脚本代码。
5.根据权利要求2所述的网页表单数据验证的装置,其特征在于,所述验证器管理模块为第一验证器管理模块,用于根据获得的配置信息对验证器进行增加、删除和/或修改操作,其中该配置信息包含有与待更新的验证器相关的验证器信息,并维护验证器和验证器的标识之间的对应关系信息。
6.一种Web框架,其特征在于,包括:
框架主模块,用于接收客户端发送的获取表单页面的web请求,生成表单页面的页面内容,调用脚本模块生成脚本代码,将所述页面内容和该脚本模块返回的脚本代码返回给所述客户端;
验证器管理模块,用于管理至少一个验证器,并维护验证器和验证器的标识之间的对应关系信息;
脚本模块,用于在接收到生成脚本代码的调用请求后,根据该调用请求中包含的网页表单的表单域信息获取所述验证器管理模块所管理的验证器中与该网页表单中的表单域关联的验证器,通过调用该验证器获得与该验证器的验证逻辑相同的脚本代码,将所述脚本代码返回给所述框架主模块,所述脚本代码用于客户端对所述表单域中的数据进行验证。
7.根据权利要求6所述的Web框架,其特征在于,所述框架还包括:
关联模块,用于存储网页表单中的表单域标识和验证器标识之间的关联信息;
所述脚本模块为第一脚本模块,用于在接收到生成脚本代码的调用请求后,根据该调用请求中包含的网页表单的表单域标识,从所述关联模块获取 与所述表单域标识关联的验证器标识,并通过该验证器标识从所述验证器管理模块获取到相应验证器,通过调用该验证器获得与该验证器的验证逻辑相同的脚本代码,将所述脚本代码返回给所述框架主模块,所述脚本代码用于客户端对所述表单域中的数据进行验证。
8.根据权利要求7所述的Web框架,其特征在于,所述框架还包括:服务器验证模块,用于根据所述关联模块中存储的关联信息,获取与网页表单中的表单域的标识关联的验证器的标识,根据该验证器的标识从所述验证器管理模块所管理的验证器中获取对应的验证器,通过该验证器对获得的、客户端已验证通过的所述网页表单中的表单域中的数据进行验证。
9.根据权利要求6至8任一项所述的Web框架,其特征在于,所述框架还包括:至少一个验证器;
所述验证器,用于被所述验证器管理模块所管理,并提供指定接口,该指定接口被所述脚本模块调用后,返回用于客户端数据验证的脚本代码,以及负责对网页表单的相应表单域中的数据进行服务器端验证。
10.一种网页表单数据验证的方法,其特征在于,包括:
接收客户端发送的获取网页表单页面的web请求,生成表单页面的页面内容;
获取所述网页表单中的表单域所关联的验证器,通过调用该验证器,获得与该验证器的验证逻辑相同的脚本代码;
将所述表单页面的页面内容和所述脚本代码返回给所述客户端,所述脚本代码用于客户端对所述表单域中的数据进行验证。
11.根据权利要求10所述的网页表单数据验证的方法,其特征在于,所述获取所述网页表单中的表单域所关联的验证器,包括:
根据存储的表单域标识和验证器标识之间的关联信息,获得与所述网页表单中的表单域的标识关联的验证器标识;
根据维护的验证器和验证器的标识之间的对应关系信息,获得与所述验证器的标识相应的验证器。
12.根据权利要求11所述的网页表单数据验证的方法,其特征在于,所述表单域标识关联一个或多个验证器标识。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810105458 CN101572696B (zh) | 2008-04-29 | 2008-04-29 | 一种网页表单数据验证的方法和装置 |
PCT/CN2009/070473 WO2009132529A1 (zh) | 2008-04-29 | 2009-02-19 | 一种网页表单数据验证的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810105458 CN101572696B (zh) | 2008-04-29 | 2008-04-29 | 一种网页表单数据验证的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101572696A CN101572696A (zh) | 2009-11-04 |
CN101572696B true CN101572696B (zh) | 2012-07-18 |
Family
ID=41231933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200810105458 Expired - Fee Related CN101572696B (zh) | 2008-04-29 | 2008-04-29 | 一种网页表单数据验证的方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101572696B (zh) |
WO (1) | WO2009132529A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102238150A (zh) * | 2010-05-06 | 2011-11-09 | 阿里巴巴集团控股有限公司 | 表单注册方法及服务器 |
CN102819766A (zh) * | 2011-06-09 | 2012-12-12 | 金蝶软件(中国)有限公司 | 一种表单校验方法、装置及企业系统 |
CN102426549B (zh) * | 2011-09-08 | 2013-06-26 | 新一站保险代理有限公司 | 一种Web的表单校验方法及其框架系统 |
CN103246574B (zh) * | 2012-02-10 | 2015-11-11 | 阿里巴巴集团控股有限公司 | 数据准确性的校验方法及装置 |
CN103379127B (zh) * | 2012-04-12 | 2016-08-17 | 阿里巴巴集团控股有限公司 | 服务器与客户端间的数据交互方法及装置 |
CN102932332B (zh) * | 2012-09-28 | 2015-10-21 | 用友软件股份有限公司 | 数据校验系统和数据校验方法 |
CN104753880A (zh) * | 2013-12-30 | 2015-07-01 | 上海格尔软件股份有限公司 | 一种主动防御的web防火墙实现方法 |
CN104753901A (zh) * | 2013-12-31 | 2015-07-01 | 上海格尔软件股份有限公司 | 一种基于智能表单分析的web防火墙实现方法 |
CN104049972A (zh) * | 2014-06-18 | 2014-09-17 | 北京京东尚科信息技术有限公司 | 一种数据验证方法及系统 |
CN104270395A (zh) * | 2014-10-24 | 2015-01-07 | 中国建设银行股份有限公司 | 一种输入数据校验的方法、装置及系统 |
CN108509246A (zh) * | 2018-04-08 | 2018-09-07 | 重庆满惠网络科技有限公司 | 一种网页表单自定义验证方法和系统 |
CN109542919A (zh) * | 2018-10-30 | 2019-03-29 | 福建省华渔教育科技有限公司 | 一种统一数据验证的方法及系统 |
CN113761489B (zh) * | 2020-06-02 | 2024-01-26 | 共道网络科技有限公司 | 验证方法、装置及设备、存储介质 |
CN112860698B (zh) * | 2021-02-19 | 2024-07-02 | 北京金山云网络技术有限公司 | 表单的处理方法、装置、电子设备和计算机可读存储介质 |
CN113435171B (zh) * | 2021-07-23 | 2022-03-01 | 深圳市数据动力科技有限公司 | 一种无代码的数据填报数据统计逻辑的解释执行系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1350248A (zh) * | 2001-12-03 | 2002-05-22 | 上海交通大学 | 基于网页的内容安全系统集中监管中的权限统一控制管理方法 |
CN1747387A (zh) * | 2004-09-06 | 2006-03-15 | 佳能株式会社 | 信息处理装置及信息处理方法 |
CN1755624A (zh) * | 2004-09-30 | 2006-04-05 | 微软公司 | 基于web的数据表单 |
CN101035025A (zh) * | 2007-03-30 | 2007-09-12 | 华为技术有限公司 | 一种网络设备管理的方法和系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060248166A1 (en) * | 2005-04-29 | 2006-11-02 | Jovan Milosevic | System and method for client side rendering of a web page |
US7627854B2 (en) * | 2006-01-12 | 2009-12-01 | International Business Machines Corporation | Graphical aid for generating object setup scripts |
-
2008
- 2008-04-29 CN CN 200810105458 patent/CN101572696B/zh not_active Expired - Fee Related
-
2009
- 2009-02-19 WO PCT/CN2009/070473 patent/WO2009132529A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1350248A (zh) * | 2001-12-03 | 2002-05-22 | 上海交通大学 | 基于网页的内容安全系统集中监管中的权限统一控制管理方法 |
CN1747387A (zh) * | 2004-09-06 | 2006-03-15 | 佳能株式会社 | 信息处理装置及信息处理方法 |
CN1755624A (zh) * | 2004-09-30 | 2006-04-05 | 微软公司 | 基于web的数据表单 |
CN101035025A (zh) * | 2007-03-30 | 2007-09-12 | 华为技术有限公司 | 一种网络设备管理的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101572696A (zh) | 2009-11-04 |
WO2009132529A1 (zh) | 2009-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101572696B (zh) | 一种网页表单数据验证的方法和装置 | |
CN108334387B (zh) | 动态界面渲染方法及装置 | |
US10063649B2 (en) | Data translation using a proxy service | |
US8413041B2 (en) | Apparatus and method for parsing XML document by using external XML validator | |
CN108345512A (zh) | 数据校验方法、服务器及存储介质 | |
US20020194314A1 (en) | Application generator | |
CN111314172B (zh) | 基于区块链的数据处理方法、装置、设备及存储介质 | |
CN104081742A (zh) | 用于提供联合服务账户的方法和装置 | |
CN111290742A (zh) | 参数验证方法、装置、电子设备及可读存储介质 | |
WO2020056597A1 (zh) | 物品身份管理方法、终端、微处理单元、标识设备和系统 | |
CN110399306B (zh) | 软件模块自动化测试方法及装置 | |
CN111694547A (zh) | 一种基于数据状态变化的自动编码数据处理应用设计工具 | |
CN109067732A (zh) | 物联网设备及数据接入系统、方法及计算机可读存储介质 | |
CN113434175B (zh) | 数据处理方法、装置、存储介质及设备 | |
CN113627145A (zh) | 一种参数化配置的文件生成方法、装置、设备和介质 | |
CN113050946A (zh) | 生成网站应用系统的方法、装置、电子设备及存储介质 | |
CN113495797A (zh) | 一种消息队列及消费者动态创建方法及系统 | |
CN111258884B (zh) | 一种用于自动生成接口准确性校验脚本的系统 | |
CN110460686B (zh) | 一种区块链地址注册方法和装置 | |
CN104424426A (zh) | 验证方法及装置 | |
CN113253999B (zh) | 插件化数据接入方法、数据源管理系统及接口接入方法 | |
CN116974999A (zh) | 电子文件签署方法、装置、电子设备及存储介质 | |
CN112565369A (zh) | 一种智能合约实现方法、应用服务节点、存储介质及系统 | |
CN111801696A (zh) | 支付页面管理方法、设备、支付系统以及存储介质 | |
CN113806817B (zh) | 构建孪生nft的方法、全量可信存储的nft协议和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120718 Termination date: 20190429 |