@requestBody和@requestParam的使用场景分析

一、@requestBody

1、使用场景:http协议为不是默认的Content-type类型(application/x-www-form-urlcoded)的请求,eg:content-type:”application/json charset=utf-8”, 或者content-type:”application/xml charset=utf-8”。

2、接收的是HttpEntity,可以接收post请求,可以接受简单类型的属性,也可以接受对象类型,GET请求中,因为没有HttpEntity,所以@RequestBody并不适用。

二、@requestParam

1.使用场景:http协议为默认的Content-type类型(application/x-www-form-urlcoded)的get请求或者from表单的get/post请求,一般接收对象类型。

原理:在Content-Type: application/x-www-form-urlencoded的请求中,get 方式中queryString的值,和post方式中 body data的值都会被Servlet接受到并转化到Request.getParameter()参数集中,所以@RequestParam可以获取的到

2、不支持json类型

3、开发过程中,接受参数可以使用此注解,也可以不使用,如果不使用说明不是必传参数,使用说明是必传参数(required:是否必需,默认为 true,即 请求中必须包含该参数)。

猜你喜欢

转载自blog.csdn.net/jaryle/article/details/87363104