时间:2021-05-20
在我的概念里边,GET请求需要加上注解@RequestParam,然后它的参数类型只能是 基本数据类型 或者 基本数据类型的包装类,比如:@RequestParam String name(默认是必传的),也可以不加@RequestParam 注解,其实就相当于@RequestParam(required = false)
但是参数类型竟然是自定义对象,对象类里有不同的参数和get/set方法,而且没有使用@RequestParam 注解,那么同样也能实现GET请求
比如一个请求方法是:public String login(User user) ,User.java类里有name 和password 两个参数和get/set方法
那么请求http://localhost:8080/login?name=admin&password=123456是完全没问题的
自动装箱理解
对Java自动装箱、拆箱的理解是:装箱就是自动将基本数据类型转换为包装器类型;拆箱就是自动将包装器类型转换为基本数据类型。
对于springmvc来说,感觉它的自动装箱,是将多个一般类型的参数转换成一个对象,并赋值到对象里的变量
那么这样的请求参数如何限制是否必传呢?这里可没有(required = true),那就需要使用@Valid注解了
自动装箱的缺点
1、自动装箱最直接的缺点就是效率低,不解释
2、我们知道url请求会放到RequestHeader 里,这个应该是有长度限制的,那么太长了肯定不合适。如果是POST请求的话,会放到RequestBody里面去,就不会有RequestHeader 过长的问题了
3、如果对象里放的是List 类型的参数,那么这个应该如何在url 里进行GET请求呢?我问老大,他说要避免这种情形,使用JSON格式
POST请求的自动装箱
POST请求的参数,一般都加上注解@RequestBody,但是上例中的public String login(User user) 方法即使使用POST请求,依然是可以执行的
网上搜了下么springmvc在post请求时使用与不使用@RequestBody注解的区别?
不使用@RequestBody注解时,可以接收Content-Type为application/x-www-form-urlencoded类型的请求所提交的数据,数据格式:aaa=111bbb=222。form表单提交以及jQuery的.post()方法所发送的请求就是这种类型。
使用@RequestBody注解时,用于接收Content-Type为application/json类型的请求,数据类型是JSON:{"aaa":"111","bbb":"222"}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本节我们来探讨如何使用Feign构造多参数的请求。笔者以GET以及POST方法的请求为例进行讲解,其他方法(例如DELETE、PUT等)的请求原理相通,读者可自
请求方式,分为GET与POST:GET最为常见的HTTP请求,普通上网浏览页面就是GET。GET方式的参数请求直接跟在URL后,以问号开始。(JS中用windo
请求方式,分为GET与POST:GET最为常见的HTTP请求,普通上网浏览页面就是GET。GET方式的参数请求直接跟在URL后,以问号开始。(JS中用windo
get请求和post请求的区别有: 1、GET通常把参数包含在URL中,而POST一般通过requestbody来传递参数。且GET产生的URL地址可以被标记
url:要求为String类型的参数,(默认为当前页地址)发送请求的地址。type:要求为String类型的参数,请求方式(post或get)默认为get。注意