假如说后端想返回一个string类型字符串”你好,SpringBoot”给前端。那么,有以下两种方案:
通过HttpServletResponse对象
1 | "test") (value = |
我们通过postman来看一下前端接收到的结果和Header中的值。
当我们用HttpServletResponse返回数据的时候,应该手动设置content-type,编码等。
1 | "test") (value = |
当然也可以通过一行代码完成设置:
1 | response.setHeader("content-type","text/plains;charset=UTF-8"); |
这样设置后,返回的结果编码和content-type都正常了。
通过@ResponseBody注解
1 | "test") (value = |
从结果来看,@responseBody会自动帮我们设置content-type和编码:
以上返回的是字符串,那如果返回的是一个Object呢?
1 | "test") (value = |
我们来看一下返回结果会是什么? 可以看到,@ResponseBody注解自动添加了content-type,还将对象自动转换成了json格式
总结:
使用@ResponseBody来代替HttpServletResponse。HttpServletResponse需要自己设置编码等很多属性,而@ResponseBody会自动帮我们回写content-type、编码等值