SpringMVC(JSR303和拦截器)

目录

一、JSR303服务端验证

1、pom依赖

2、在待校验的数据库列段对应的实体类属性打上校验标签

3、编写controller控制层

4、展示

 二、拦截器

1.什么是拦截器

2.拦截器与过滤器

 2.1 什么是过滤器(Filter)

2.2 拦截器与过滤器的区别

3.应用场景

4.拦截器快速入门 

5、拦截器链

 5.1登录权限控制


一、JSR303服务端验证

1、pom依赖

<dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-validator</artifactId>
      <version>6.0.7.Final</version>
    </dependency>

2、在待校验的数据库列段对应的实体类属性打上校验标签

1、空检查
@Null 验证对象是否为null
@NotNull 验证对象是否不为null,无法检查长度为0的字符串
@NotBlank 检查约束字符串是不是NULL还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格。
@NotEmpty 检查约束元素是否为NULL或者EMPTY.

2、Boolean检查
@AssertTrue 验证 Boolean 对象是否为 true
@AssertFalse 验证 Boolean 对象是否为 false

3、长度检查
@Size(min=,max=) 验证对象(Array,Collection,Map,String) 长度是否在给定方位之内
@Length(min=,max=) Validates that the annotated string is between min and max included.

4、日期检查
@Past 验证 Date 和 Calendar 对象是否在当前时间之前
@Future 验证 Date 和 Calendar 对象是否在当前时间之后
@Pattern 验证 String 对象是否符号正则表达式的规则 : 正则表达式

示例

3、编写controller控制层

 /**
     * Valid 是与实体类的服务端效验 注解配合使用的
     * BindingResult 存放所有违背效验的错误信息
     * @param clazz
     * @param result
     * @param req
     * @return
     */
    @RequestMapping("/valiAdd")
    public String valiAdd(@Valid Clazz clazz, BindingResult result, HttpServletRequest req){
            //如果服务端验证不通过,有错误
            if(result.hasErrors()){
                //服务端验证了实体类的多个属性,多个属性都没有验证通过
                List<FieldError> fieldErrors = result.getFieldErrors();
                Map<String,Object> map = new HashMap<>();
                for (FieldError fieldError : fieldErrors) {
                    //将多个属性的验证失败信息输送到控制台
                    System.out.println(fieldError.getField() + ":" + fieldError.getDefaultMessage());
                    map.put(fieldError.getField(),fieldError.getDefaultMessage());
             }
                 req.setAttribute("msg",map);
                 return "clzEdit";
            }else {
                this.clazzBiz.insertSelective(clazz);
            }
                return "redirect:/clz/list"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值