一.GET请求:
前端页面:
第一种情况下:
第二种情况下:
后端代码:
对应第一种传输对象,接参方式:
若我们强行给对象添加@RequestBody注解,会发生如下错误:
第二种情形下:
我们取消用@PathVariable来接收前端发来的ID,情况如下:
结论:当前端发起GET请求时,若传递的是一个对象,则后端接收数据时,不需要用@RequestBody来转换JSON串,若传递的是一个具体的值或参数则后端服务器必须用@PathVariable来接收。
二.POST请求
前端页面:
后端代码:
POST请求,一般用于新增或登录操作,通常传递为一个对象即一个JSON串,后端服务器接收时必须使用@RequestBody注解来标识
三.PUT请求
前端页面:
第一种情况,传递为对象
第二种情况,传递为具体参数
后端代码:
第一种传输对象,后端处理方式
第二种传输具体参数,后端服务器处理方式:
若用 @RequestBody标识,情况如下:
且数据库的状态值未发生改变
结论:当前端服务器发起PUT请求时,若携带参数为一个JSON串时,则后端服务器必须用@RequestBody注解进行标识,若携带参数为具体的值,后端接收时不需要任务注解进行标识
四.DELETE请求
前端页面:
后端代码:
去除注解后,效果如下:
当用户发起DELETE请求时,后端接收参数必须用注解进行标识,否则删除无效
总结:主要针对于GET和POST请求:
get拼接url,post传body,get限制字符串长度
请求缓存:GET 会被缓存,而post不会 原因就是get是url的请求收藏书签:GET可以,而POST不能 原因还是因为url可以收藏,
保留浏览器历史记录:GET可以,而POST不能 原因还是因为get的url请求!
用处:get常用于取回数据,post用于提交数据 原因是get的url传输不管怎么说,都是有字符数限制的!如果字符串长度不超,一样能提交数据!安全性:post比get安全 还是因为post是请求体,不会在url上被劫持!
请求参数:querystring 是url的一部分get、post都可以带上。
get的querystring(仅支持urlencode编码),post的参数是放在body(支持多种编码)
请求参数长度限制:get请求长度最多1024kb,post对请求数据没有限制