- 数据验证分为客户端验证和服务器端验证。
- 客户端验证主要是过滤正常用户的误操作,主要通过JavaScript代码完成;
- 服务器端验证是整个应用阻止非法数据的最后防线,主要通过在应用中编程实现。
使用JavaScript进行客户端验证的步骤如下:
- 编写验证函数
- 在提交表单的事件中调用验证函数
- 根据验证函数来判断是否进行表单提交
客户端验证可以过滤用户的误操作,是第一道防线,一般使用JavaScript代码实现。仅有客户端验证还是不够的。攻击者还可以绕过客户端验证直接进行非法输入,这样可能会引起系统的异常。为了确保数据的合法性,防止用户通过非正常手段提交错误信息,还必须加上服务器端的验证。
- Spring MVC的Converter和Formater在进行类型转换时,是将输入数据转换成领域对象的属性值(一种Java类型),一旦成功,服务器端验证器就会介入。也就是说,在Spring MVC框架中,先进行数据类型转换,再进行服务器端验证。
- 服务器端验证对于系统的安全性、完整性、健壮性至关重要。
- 在Spring MVC框架中,可以利用Spring自带的验证框架验证数据,也可以利用JSR 303实现数据验证。
创建自定义Spring验证器,需要实现org.springframework.validation.Validator接口。
该接口有两个接口方法:
boolean supports(Class<?> klass) //`supports方法返回true时,验证器可以处理指定的Class。void validate(Object object, Errors errors) //validate方法的功能是验证目标对象object,//并将验证错误消息存入Errors对象。
