JavaEE框架整合开发入门到实战——Spring+SpringMVC+MyBatis(微课版)清华大学出版社第14章数据验证主要内容数据验证概述Spring验证JSR303验证JavaEE框架整合开发入门到实战——Spring+SpringMVC+MyBatis(微课版)清华大学出版社14.1数据验证概述数据验证分为客户端验证和服务器端验证,客户端验证主要是过滤正常用户的误操作,主要通过JavaScript代码完成;服务器端验证是整个应用阻止非法数据的最后防线,主要通过在应用中编程实现。JavaEE框架整合开发入门到实战——Spring+SpringMVC+MyBatis(微课版)清华大学出版社14.1.1客户端验证大多数情况下,使用JavaScript进行客户端验证的步骤如下:编写验证函数在提交表单的事件中调用验证函数根据验证函数来判断是否进行表单提交客户端验证可以过滤用户的误操作,是第一道防线,一般使用JavaScript代码实现。仅有客户端验证还是不够的。攻击者还可以绕过客户端验证直接进行非法输入,这样可能会引起系统的异常,为了确保数据的合法性,防止用户通过非正常手段提交错误信息。所以必须加上服务器端的验证。JavaEE框架整合开发入门到实战——Spring+SpringMVC+MyBatis(微课版)清华大学出版社14.1.2服务器端验证SpringMVC的Converter和Formatter在进行类型转换时,是将输入数据转换成领域对象的属性值(一种Java类型),一旦成功,服务器端验证器就会介入。也就是说,在SpringMVC框架中,先进行数据类型转换,再进行服务器端验证。服务器端验证对于系统的安全性、完整性、健壮性起到了至关重要的作用。在SpringMVC框架中,可以利用Spring自带的验证框架验证数据,也可以利用JSR303实现数据验证。JavaEE框架整合开发入门到实战——Spring+SpringMVC+MyBatis(微课版)清华大学出版社14.2Spring验证器14.2.1Validator接口创建自定义Spring验证器,需要实现org.springframework.validation.Validator接口。该接口有两个接口方法:booleansupports(Class>klass)voidvalidate(Objectobject,Errorserrors)supports方法返回true时,验证器可以处理指定的Class。validate方法的功能是验证目标对象object,并将验证错误消息存入Errors对象。往Errors对象存入错误消息的方法是reject或rejectValue方法。这两个方法的部分重载方法如下:voidreject(StringerrorCode)voidreject(StringerrorCode,StringdefaultMessage)voidrejectValue(Stringfield,StringerrorCode)voidrejectValue(Stringfield,StringerrorCo...