开发者学堂课程【高校精品课-厦门大学 -JavaEE 平台技术:合法性检查】学习笔记,与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/80/detail/15912
合法性检查
内容介绍:
一、 合法性检查
二、 validation 注解介绍
一、 合法性检查
合法性检查,众所周知控制器的另外一个主要的作用是对前端发过来的数据进行检查、合法性检查以及封装,因为控制器是直接面向客户端的,虽然前端会做输入数
据的合法性检查,但是客户端出于安全性的必要,还是需要做合法性检查。
通常来说,若对每一个输入的参数做合法性检查,其工作量是比较繁琐麻烦的,一般会借助 javax.validation 来完成对输入参数的合法性检查,javax.validation 的合法性检查是 jaxr303 的标准,是对于 java参数检验的标准,其定义了很多注解,可以在输入参数时对它定义很多注解,一般来说会把所有输入的参数定义为 vo(voobject),可以在 vo 上加上 validation 的注解,通过这些注解帮助我们完成合法性的检查。
二、 validation注解介绍
validation 的注解有很多,如下是常用的:比如要判断输入的值是 true 或 false,可分别用 @Assert False 和 @Assert True 来看注解的属性值是 True 或 false;
当要判空或不空时,可用 @NotNull 和 @Null 来判断注解的属性值是空或不空;对于字符串可用 @Not Blank 来判断它是否为空字串,@Not Blank 不仅能判断一个字串是否为空,也能判断字串中所有的字符是否为空格;对于整型的数值来说可用 @Max和@Min 去验证此数值是大于零或小于零;对于浮点型也有对应的一组注解,可去查询;对于日期型可用 @Past和 @Future 来判断此日期比当前服务器的日期早或晚;对于 Email,可用 @Email 来判断主要元素是否符合 Email 格式,Email 可以添加 Part,限定其来自某个机构。如果此组件添加到vo上,输入的参数在符合注解的要求话,Control就会抛出 MethodArgumentNot ValidException, Exception 是需要处理的,在 splid 容器中 mac的框架中间可以定义一个 rest
controladvice 来统一处理异常。