POST/GET请求后台接收参数记录一下

1.@RequestBody的作用

@RequestBody接的参数是一个string化的json,前天JS可以直接使用JSON.stringify(json)这个方法来转化.

注解用于将Controller的方法参数,根据HTTP Request Header的content-Type的内容,通过适当的HttpMessageConverter转换为JAVA类.所以后台无需手动进行json与实体的转换,只要能映射上去(也就是字段名和json的key相对应,value可以匹配上数据类型)那么就可以直接转换,就可以直接使用对象接收参数

使用场景是:POST或者PUT的数据是JSON格式或者XML格式,而不是普通的键值对形式.

application/x-www-form-urlencoded通过表单提交,在servlet实现中,mutipart/form-data和application/x-www-form-urlencoded会被特殊处理,请求参数将被放置于request.paramter,这是一个map。

当我们使用content-type=application/json且后台使用@RequestBody,则无法再从request.paramter中获取请求数据。

后台使用@RequestBody注解,从名称上来看也就是说要读取的数据在请求体里,所以要发post请求

还需要手动设置contentType,contentType:"application/json,明确的告诉服务器发送的内容是json,而默认的contentType是application/x-www-form-urlencoded; charset=UTF-8

4.补充@ResponseBody

@ResponseBody这个注解通常使用在控制层(controller)的方法上,其作用是将方法的返回值以特定的格式写入到response的body区域,进而将数据返回给客户端。当方法上面没有写ResponseBody,底层会将方法的返回值封装为ModelAndView对象。

猜你喜欢

转载自blog.csdn.net/a654540233/article/details/84936908
今日推荐