• 数据验证分为客户端验证和服务器端验证。
      • 客户端验证主要是过滤正常用户的误操作,主要通过JavaScript代码完成;
      • 服务器端验证是整个应用阻止非法数据的最后防线,主要通过在应用中编程实现。

    • 使用JavaScript进行客户端验证的步骤如下:

      • 编写验证函数
      • 在提交表单的事件中调用验证函数
      • 根据验证函数来判断是否进行表单提交
    • 客户端验证可以过滤用户的误操作,是第一道防线,一般使用JavaScript代码实现。仅有客户端验证还是不够的。攻击者还可以绕过客户端验证直接进行非法输入,这样可能会引起系统的异常。为了确保数据的合法性,防止用户通过非正常手段提交错误信息,还必须加上服务器端的验证。


    • Spring MVC的Converter和Formater在进行类型转换时,是将输入数据转换成领域对象的属性值(一种Java类型),一旦成功,服务器端验证器就会介入。也就是说,在Spring MVC框架中,先进行数据类型转换,再进行服务器端验证。
    • 服务器端验证对于系统的安全性、完整性、健壮性至关重要。
    • 在Spring MVC框架中,可以利用Spring自带的验证框架验证数据,也可以利用JSR 303实现数据验证。

    创建自定义Spring验证器,需要实现org.springframework.validation.Validator接口。
    该接口有两个接口方法:

    1. boolean supports(Class<?> klass) //`supports方法返回true时,验证器可以处理指定的Class。
    2. void validate(Object object, Errors errors) //validate方法的功能是验证目标对象object,
    3. //并将验证错误消息存入Errors对象。