美文网首页
后台数据传输校验

后台数据传输校验

作者: guodd369 | 来源:发表于2017-11-16 10:33 被阅读0次

接收数据

  1. 提倡使用restful风格的url。
  2. 通过提交的方式和资源来确定你要执行的功能;通过返回的状态码来确定执行成功还是失败。
  3. post、delete、put、get;好处:全自动生成文档,更加直观。
  4. putForObject、getForObject路径做参数、from表单参数、json参数。
  5. 指定方法响应的数据格式:
    @RequestMapping(value = "/someurl/suburl", produces = "application/json")
    @RequestMapping(value = "/someurl/suburl", produces = "application/xml")
  6. 参数绑定。
    A、处理requet uri部分(这里指uri template中variable,不含queryString部分)的注解:@PathVariable;将某个动态参数放到URL请求路径中,即接收路径参数eg:/new/param,此注解放在参数前面。
    B、处理request header部分的注解:@RequestHeader,@CookieValue;
    C、处理request body部分的注解:@RequestParam,指定了请求参数名称;@RequestBody;允许request的参数在request体中,而不是直接在链接后面,此注解放在参数前面。
    D、处理attribute类型是注解:@SessionAttributes,@ModelAttribute;
  7. 服务端。
    解决服务端返回乱码问题?produces = "application/json;charset=UTF-8"
    接收客户端的数据?(@PathVariable、vo对象、@RequestBody)
  8. 请求域?数据放入到请求域中,进行页面展示。(map、model、modelmap、modelandview)
  9. 客户端调用。
    发送数据给服务端?(数据形式:路径参数、form表单参数、Json参数)
  10. 明确返回的是数据还是页面。如果返回的是数据的话,需要加@ResponseBody注解,同时使用自定义的R进行返回;如果返回的是页面,返回类型定义为String。使用转发(forward)、重定向(redirect)。

校验数据

认识Validator

在任何时候,当你要处理一个应用程序的业务逻辑,数据校验是你必须要考虑和面对的事情。应用程序必须通过某种手段来确保输入进来的数据从语义上来讲是正确的。在通常的情况下,应用程序是分层的,不同的层由不同的开发人员来完成。很多时候同样的数据验证逻辑会出现在不同的层,这样就会导致代码冗余和一些管理的问题,比如说语义的一致性等。为了避免这样的情况发生,最好是将验证逻辑与相应的域模型进行绑定。Bean Validation 为 JavaBean 验证定义了相应的元数据模型和 API。缺省的元数据是 Java Annotations,通过使用 XML 可以对原有的元数据信息进行覆盖和扩展。在应用程序中,通过使用 Bean Validation 或是你自己定义的 constraint,例如 @NotNull, @Max, @ZipCode, 就可以确保数据模型(JavaBean)的正确性。constraint 可以附加到字段,getter 方法,类或者接口上面。对于一些特定的需求,用户可以很容易的开发定制化的 constraint。Bean Validation 是一个运行时的数据验证框架,在验证之后验证的错误信息会被马上返回。

上面是网上的,以下是总结

简介

Hibernate Validator

验证注解

注解 用法
@Null 被注释的元素必须为 null
@NotNull 被注释的元素必须不为 null
@AssertTrue 被注释的元素必须为 true
@AssertFalse 被注释的元素必须为 false
@Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@Size(max, min) 被注释的元素的大小必须在指定的范围内
@Digits (integer, fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内
@Past 被注释的元素必须是一个过去的日期
@Future 被注释的元素必须是一个将来的日期
@Pattern(value) 被注释的元素必须符合指定的正则表达式
下面是hibernate附加的注解
@Email 被注释的元素必须是电子邮箱地址
@Length 被注释的字符串的大小必须在指定的范围内
@NotEmpty 被注释的字符串的必须非空
@Range 被注释的元素必须在合适的范围内

国际化消息

正常的加消息,是注解的属性,message
@NotNull(groups = ValidationLogin.class, message = "id不能为空")

单对象校验

实体类

public class Car {

   @NotNull
   private String manufacturer;

   @NotNull
   @Size(min = 2, max = 14)
   private String licensePlate;

   @Min(2)
   private int seatCount;

   // getter和setter方法省略
}

Controller控制器

@RequestMapping(value = "/validation") 
public String validation(@Valid Car car, BindingResult bindingResult) {
    if (bindingResult.hasErrors()) {
        System.out.println(bindingResult.getFieldError().getDefaultMessage());
    }
}

分组数据校验

实体类

public class Car {

    // 分组验证接口
    public interface Validation {
    }

    @NotNull(groups = Validation.class, message = "不能为空")
    private String manufacturer;

    @NotNull(groups = Validation.class, message = "不能为空")
    @Size(min = 2, max = 14)
    private String licensePlate;

    @Min(2)
    private int seatCount;

    // getter和setter方法省略
}

Controller控制器

@RequestMapping("/validationGrop") 
public void validationGrop(@Validated(UserVO.ValidationLogin.class) UserVO vo, BindingResult bindingResult) {
    if (bindingResult.hasErrors()) {
        System.out.println(bindingResult.getFieldError().getDefaultMessage());
    }
}

注意:BindingResult必须和@Valid、@Validated一起使用,否则会报错!

自定义验证

相关文章

  • Spring Boot 菜鸟教程 19 后台验证 Hiberna

    后台验证 开发项目过程中,后台在很多地方需要进行校验操作,比如:前台表单提交,调用系统接口,数据传输等。而现在多数...

  • 后台数据传输校验

    接收数据 提倡使用restful风格的url。 通过提交的方式和资源来确定你要执行的功能;通过返回的状态码来确定执...

  • spring的后台数据校验

    数据校验对于开发项目来说是必须的。校验一般分为前台校验和后台校验,前台校验是必须要做的,后台校验是可选的。后台校验...

  • 2018-09-10

    VB_Python代码对照算法百题(010) VB代码:(2017年4月_浙江)14. 奇偶校验是一种校验数据传输...

  • 一只产品旺眼里的技术名词(一)

    数据传输:前台页面与后台controller的数据传输 用户对前端界面进行操作,通过http or https请求...

  • 后台数据校验

    引入JAR包:classmate-1.3.4.jar hibernate-validator-5.13.Final...

  • 答辩常问问题文档

    如何实现前后台数据传输?使用http通信实现的了前后台数据传输,客户端发送http请求到服务器端,服务器端根据请求...

  • spring validation的使用与自定义校验注解

    1. validate介绍 1.1 前言 前端录入数据,在后台进行校验工作是必不可少的。例如:为空校验,邮箱格式校...

  • js校验身份证号

    前端通常都是使用正则来校验嗷~有一次我前端放过去了结果被后台拦住了你说气不气??我把后台的java校验身份证方法拿...

  • Spring中ajax与后台传输数据的几种方式

    最近写ajax与后台传输数据的时候碰到了一个问题,我想ajax以json的方式把数据传输个后台,后台用map的形式...

网友评论

      本文标题:后台数据传输校验

      本文链接:https://www.haomeiwen.com/subject/qpxlvxtx.html