数据校验也是所有Web应用必须处理的问题,因为Web应用的开放性,网络上所有的浏览者都可以自由使用该应用,因此该应用通过输入页面手机的数据是非常复杂的,不仅会包含正常用户的误输入,还可能包含恶意用户的恶意输入.一个健壮的应用系统必须将这些非法输入阻止在应用之外,防止这些非法输入进入系统,这样才可以保证系统不受影响.
异常的输入,轻则导致系统非正常中断,重则会导致系统崩溃.应用程序必须正常处理表现层接收的各种数据,通常的做法是遇到异常输入时应用程序直接返回,提示用户必须重新输入,也就是将那些异常输入过滤掉.这种对异常输入的过滤,就是输入校验,也称为”数据校验”.
输入校验分为客户端校验和服务器校验,客户端校验主要是过滤用户正常的误操作,通常通过JavaScript代码完成:服务器端校验是整个应用阻止非法数据的最后防线,主要通过在应用中编程实现.
客户端校验的主要作用是防止正常用户的误输入,这仅能对输入进行初步过滤;对于恶意用户的恶意行为,客户端校验将无能为力.因此,客户端校验绝不可代替服务器端校验.当然,客户端校验也绝不可少,因为Web应用大部分用户都是正常用户,他们输入可能包含了大量的误输入,客户端校验能把这些误输入阻止在客户端,从而降低了服务器端的负载.
SpringMVC提供了强大的数据校验功能,其中有两种方法可以验证输入:一种是利用Spring自带的Validation校验框架;另一种是利用JSR303(Java验证规范)实现校验功能.