一种基于Java的表单验证方法及装置

文档序号:1378978 发布日期:2020-08-14 浏览:24次 >En<

阅读说明:本技术 一种基于Java的表单验证方法及装置 (Form verification method and device based on Java ) 是由 易存道 于 2020-04-15 设计创作,主要内容包括:本发明实施例提供一种基于Java的表单验证方法及装置。所述方法包括获取表单数据,所述表单数据包括待校验字段;根据预存的与所述表单数据对应的校验容器,执行所述校验容器中与各待校验字段对应的校验器,本发明实施例通过在后台服务端预先编写基于Java的与表单数据对应的校验容器,包括各待校验字段对应的校验器,通过抽象将通用规则整理出来,减少代码重复编写,提高可维护性,统一了通用的校验规则,简化了服务端的表单校验臃肿重复,提高了代码的可重用性,让校验非常清晰化,加快业务逻辑功能的开发,并且对于复杂的,个性的校验,支持动态添加校验规则,使其能够适应更加复杂的情景。(The embodiment of the invention provides a form verification method and device based on Java. The method comprises the steps of obtaining form data, wherein the form data comprise fields to be checked; according to the embodiment of the invention, the check container corresponding to the form data based on Java is pre-compiled at a background server side, the check container corresponding to the form data comprises the check devices corresponding to the fields to be checked, and the universal rules are arranged by abstraction, so that repeated code compiling is reduced, maintainability is improved, the universal check rules are unified, the check swelling and the repeated form check at the server side are simplified, the reusability of the codes is improved, the check is very clear, the development of service logic functions is accelerated, and the check rules are dynamically added for complex and individual check, so that the check container can adapt to more complex scenes.)

一种基于Java的表单验证方法及装置

技术领域

本发明涉及数据处理技术领域,尤其涉及一种基于Java的表单验证方法及装置。

背景技术

随着广大的中小企业在电子商务方面的应用程度越来越深,关系到用户数据交互的环节就变得越来越重要。而用户数据页面交互的前端开发过程中,最频繁使用的是对用户数据的校验。这种校验往往是通过web表单将数据从客户端浏览器提交到服务端来进行,其中,web表单中通常包含多种信息。例如,一个注册页面的用户名、密码、邮箱等信息;网上买保险的表单中被保人身份证、出生年月等信息。这些数据在表单填写时是不受限制的,理论上用户可以按照自己的意愿填写任何信息,但无论从数据的准确性、数据的一致性,还是数据安全方面考虑,都需要在用户填完表单后进行数据的验证。比如参数不能为空null,邮箱email那么必须符合email的格式。

目前传统的后端校验解决方案,在通常情况下,对于一个表单的验证分两个步骤,首先在客户端浏览器中在用户录入完一条数据后进行实时校验并进行数据的校验结果提示;方便用户快捷的录入准确的数据,这部分工作由客户端JavaScript去完成;另一方面,在表单提交到服务器端以后,在服务端需要对数据再进行一次校验,虽然在客户端对数据已经进行了一次校验,但用户禁用JavaScript或者伪造表单提交等等,都可以轻松绕过客户端的数据校验,所以服务端的数据校验时必须的,也是真正确保数据的准确性的决定环节,另外服务端还需要做一些客户端无法做到的一些复杂业务校验。

但由于一个web表单包含多个需要录入的字段,对每个字段都需要进行这两方面的校验,同时,多个web表单中还存在重复的字段,比如一个注册页面需要输入邮箱,进行邮箱格式校验;而另外一个找回密码页面,也需要输入邮箱,并进行邮箱格式校验。如果手动进行if判断或者写正则表达式判断无意开发效率太慢,校验工作的重复性也影响着开发效率,导致数据校验的工作给开发人员带来了非常大的工作开销。

发明内容

由于现有方法存在上述问题,本发明实施例提供一种基于Java的表单验证方法及装置。

第一方面,本发明实施例提供了一种基于Java的表单验证方法,包括:

获取表单数据,所述表单数据包括待校验字段;

根据预存的与所述表单数据对应的校验容器,执行所述校验容器中与各待校验字段对应的校验器。

进一步地,在所述获取表单数据,所述表单数据包括待校验字段的步骤之前,所述基于Java的表单验证方法,还包括:

创建与各待校验字段一一对应的元数据,所述元数据包括与所述待校验字段对应的校验器;

创建与所述表单数据对应的校验容器,所述校验容器包括所述表单数据包含的各待校验字段对应的元数据。

进一步地,所述校验容器还包括用于保存错误信息的错误容器。

进一步地,所述校验器包括与所述待校验字段的预设业务规则对应的校验算法。

第二方面,本发明实施例提供了一种基于Java的表单验证装置,包括:

数据获取模块,用于获取表单数据,所述表单数据包括待校验字段;

数据校验模块,用于根据预存的与所述表单数据对应的校验容器,执行所述校验容器中与各待校验字段对应的校验器。

进一步地,所述基于Java的表单验证装置,还包括:容器编辑模块用于:

创建与各待校验字段一一对应的元数据,所述元数据包括与所述待校验字段对应的校验器;

创建与所述表单数据对应的校验容器,所述校验容器包括所述表单数据包含的各待校验字段对应的元数据。

进一步地,所述校验容器还包括用于保存错误信息的错误容器。

进一步地,所述校验器包括与所述待校验字段的预设业务规则对应的校验算法。

第三方面,本发明实施例还提供了一种电子设备,包括:

处理器、存储器、通信接口和通信总线;其中,

所述处理器、存储器、通信接口通过所述通信总线完成相互间的通信;

所述通信接口用于该电子设备的通信设备之间的信息传输;

所述存储器存储有可被所述处理器执行的计算机程序指令,所述处理器调用所述程序指令能够执行如下方法:

获取表单数据,所述表单数据包括待校验字段;

根据预存的与所述表单数据对应的校验容器,执行所述校验容器中与各待校验字段对应的校验器。

第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如下方法:

获取表单数据,所述表单数据包括待校验字段;

根据预存的与所述表单数据对应的校验容器,执行所述校验容器中与各待校验字段对应的校验器。

本发明实施例提供的基于Java的表单验证方法及装置,通过在后台服务端预先编写基于Java的与表单数据对应的校验容器,包括各待校验字段对应的校验器,通过抽象将通用规则整理出来,减少代码重复编写,提高可维护性。统一了通用的校验规则,减少了不同技术人员之间校验规则的差异,统一了代码风格,使得代码更具可读性,简化了服务端的表单校验臃肿重复,提高了代码的可重用性,让校验非常清晰化,加快业务逻辑功能的开发。并且对于复杂的,个性的校验,支持动态添加校验规则,使其能够适应更加复杂的情景。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的基于Java的表单验证方法流程图;

图2为本发明实施例的另一基于Java的表单验证方法流程图;

图3为本发明实施例的基于基于Java的表单验证装置结构示意图;

图4示例了一种电子设备的实体结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明实施例的基于Java的表单验证方法流程图,图2为本发明实施例的另一基于Java的表单验证方法流程图,如图1所示,所述方法包括:

步骤S01、获取表单数据,所述表单数据包括待校验字段。

当用户在客户端浏览器根据实际的需要填写完成并提交后,所述客户端浏览器将提取用户填写的各待校验字段,并以表单数据的形式发送给后台服务端。

步骤S02、根据预存的与所述表单数据对应的校验容器,执行所述校验容器中与各待校验字段对应的校验器。

后台服务端根据接收到的表单数据,确定与所述表单数据对应的校验容器。所述校验容器中包括与所述表单数据中各待校验字段对应的校验器。

进一步地,所述步骤S01之前,所述方法还包括:

步骤S001、创建与各待校验字段对应的元数据,所述元数据包括与所述待校验字段对应的校验器。

进一步地,所述校验器包括与所述待校验字段的预设业务规则对应的校验算法。

本发明是基于mvc的后台服务端,以java语言为基础,设计模式使用策略模式来构建整个校验框架,定义了一系列校验算法,并使他们能相互替换,达到校验方法的统一,不会产生因人而异的校验的差异。

在策略模式中,定义一些独立的类来封装不同的校验算法,每一个类封装一个具体的算法,封装后即为校验器。在这里,每一个封装算法的类可以称之为策略Strategy,为了保证这些策略的一致性,一般会用一个抽象的策略类来做校验算法的定义,而具体每种校验算法则对应于一个具体策略类。策略模式的流程如下:

根据业务规则,定义了一组校验算法;

封装了每个校验算法;

这组的校验算法可互换代替。

后台服务端根据各表单数据中的各待校验字段,分别创建与待校验字段一一对应的元数据metaData。并根据各待校验字段的实际校验的需求,从预先封闭的校验器中,确定各待校验字段需要的校验器,并加入到对应的元数据metaData中。

步骤S002、创建与所述表单数据对应的校验容器,所述校验容器包括所述表单数据包含的各待校验字段对应的元数据。

创建校验容器JForm,并将所述表单数据中包含的各待校验字段对应的元数据metaData加入到所述校验容器JForm中。

当后台服务端接收到客户端浏览器发送的表单数据时,可以通过运行校验容器JForm的校验方法validata,从而执行与各待校验字段对应的每个校验器,用于各待校验字段进行校验。

本发明实施例通过在后台服务端预先编写基于Java的与表单数据对应的校验容器,包括各待校验字段对应的校验器,通过抽象将通用规则整理出来,减少代码重复编写,提高可维护性。统一了通用的校验规则,减少了不同技术人员之间校验规则的差异,统一了代码风格,使得代码更具可读性,简化了服务端的表单校验臃肿重复,提高了代码的可重用性,让校验非常清晰化,加快业务逻辑功能的开发。并且对于复杂的,个性的校验,支持动态添加校验规则,使其能够适应更加复杂的情景。

基于上述实施例,进一步地,所述校验容器还包括用于保存错误信息的错误容器。

创建用于保存错误信息的错误容器error,从而在调用校验容器JForm的校验方法validate对每个元数metaData中的每个校验器进行调用校验后,若校验失败,则将错误存放在错误容器error中,并返回给客户端浏览器,若没有错误,则返回正常信息。

本发明实施例通过加入错误容器error用于保存错误信息,从而将错误信息返回给客户端浏览器,使用户了解错误信息。

图3为本发明实施例的基于基于Java的表单验证装置结构示意图,如图3所示,所述装置包括:数据获取模块10和数据校验模块11;其中,

所述数据获取模块10用于获取表单数据,所述表单数据包括待校验字段;所述数据校验模块11用于根据预存的与所述表单数据对应的校验容器,执行所述校验容器中与各待校验字段对应的校验器。具体地:

当用户在客户端浏览器根据实际的需要填写完成并提交后,所述客户端浏览器将提取用户填写的各待校验字段,并以表单数据的形式发送给数据获取模块10。

所述数据获取模块10将接收到的表单数据发送给数据校验模块11,由数据校验模块11确定与所述表单数据对应的校验容器。所述校验容器中包括与所述表单数据中各待校验字段对应的校验器。

进一步地,所述基于Java的表单验证装置,还包括:容器编辑模块12用于:

创建与各待校验字段一一对应的元数据,所述元数据包括与所述待校验字段对应的校验器;

创建与所述表单数据对应的校验容器,所述校验容器包括所述表单数据包含的各待校验字段对应的元数据。

进一步地,所述校验器包括与所述待校验字段的预设业务规则对应的校验算法。

本发明实施例采用基于mvc的架构,容器编辑模块12以java语言为基础,设计模式使用策略模式来构建整个校验框架,定义了一系列校验算法,并使他们能相互替换,达到校验方法的统一,不会产生因人而异的校验的差异。

在策略模式中,定义一些独立的类来封装不同的校验算法,每一个类封装一个具体的算法,封装后即为校验器。在这里,每一个封装算法的类可以称之为策略Strategy,为了保证这些策略的一致性,一般会用一个抽象的策略类来做校验算法的定义,而具体每种校验算法则对应于一个具体策略类。策略模式的流程如下:

根据业务规则,定义了一组校验算法;

封装了每个校验算法;

这组的校验算法可互换代替。

容器编辑模块12根据各表单数据中的各待校验字段,分别创建与待校验字段一一对应的元数据metaData。并根据各待校验字段的实际校验的需求,从预先封闭的校验器中,确定各待校验字段需要的校验器,并加入到对应的元数据metaData中。

容器编辑模块12创建校验容器JForm,并将所述表单数据中包含的各待校验字段对应的元数据metaData加入到所述校验容器JForm中。

当数据校验模块11接收到表单数据时,可以通过运行校验容器JForm的校验方法validata,从而执行与各待校验字段对应的每个校验器,用于各待校验字段进行校验。

本发明实施例提供的装置用于执行上述方法,其功能具体参考上述方法实施例,其具体方法流程在此处不再赘述。

本发明实施例通过在容器编辑模块12预先编写基于Java的与表单数据对应的校验容器,包括各待校验字段对应的校验器,通过抽象将通用规则整理出来,减少代码重复编写,提高可维护性。统一了通用的校验规则,减少了不同技术人员之间校验规则的差异,统一了代码风格,使得代码更具可读性,简化了服务端的表单校验臃肿重复,提高了代码的可重用性,让校验非常清晰化,加快业务逻辑功能的开发。并且对于复杂的,个性的校验,支持动态添加校验规则,使其能够适应更加复杂的情景。

基于上述实施例,进一步地,所述校验器包括与所述待校验字段的预设业务规则对应的校验算法。

容器编辑模块12创建用于保存错误信息的错误容器error,从而在调用校验容器JForm的校验方法validate对每个元数metaData中的每个校验器进行调用校验后,若校验失败,则将错误存放在错误容器error中,并返回给客户端浏览器,若没有错误,则返回正常信息。

本发明实施例提供的装置用于执行上述方法,其功能具体参考上述方法实施例,其具体方法流程在此处不再赘述。

本发明实施例通过加入错误容器error用于保存错误信息,从而将错误信息返回给客户端浏览器,使用户了解错误信息。

图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)401、通信接口(Communications Interface)403、存储器(memory)402和通信总线404,其中,处理器401,通信接口403,存储器402通过通信总线404完成相互间的通信。处理器401可以调用存储器402中的逻辑指令,以执行上述方法。

进一步地,本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法。

进一步地,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法。

本领域普通技术人员可以理解:此外,上述的存储器402中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:文本的纠错方法、装置、终端、及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!