参考
- IBM Developer:JSR 303 - Bean Validation 介绍及最佳实践 https://www.ibm.com/developerworks/cn/java/j-lo-jsr303/index.html
- JCP官方 JSR 303说明文档 https://jcp.org/en/jsr/detail?id=303
1. 数据校验
只做前端校验是不安全的,因为可以通过很多种方式绕过浏览器,向服务器发请请求。因此重要数据一定要在后端加上验证
在后端验证,我们可以这样做:对重要数据进行校验,如果失败则直接跳转到原来的表单页面,提示用户重新填写表单
但是这样做,有不少缺点:
- 显然,这样做有点麻烦
- 在通常的情况下,应用程序是分层的,不同的层由不同的开发人员来完成。很多时候同样的数据验证逻辑会出现在不同的层,这样就会导致代码冗余和一些管理的问题,比如说语义的一致性等
2. JSR 303 - Bean Validation
3. Hibernate Validator
JDBC是规范,其实现就是各个厂商的驱动包
JSR303也是规范,Hibernate Validator是该标准的一个较好的实现
3.1. 扩展注解
Hibernate Validator 除了支持所有的JSR 303标准校验注解外,它还支持以下的扩展注解