SpringBoot-Web开发之数据响应

返回前端JSON数据

  • 需要使用jackson.jar
  • controller方法加注解@ResponseBody
XML 复制代码
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<!--web场景自动引入了json依赖-->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-json</artifactId>
	<version>2.3.4.RELEASE</version>
	<scope>compile</scope>
</dependency>

返回值解析器

  • 返回值解析器列表
  • 找不到支持的返回值解析器报错
  • 找到匹配的解析器

JSON数据响应步骤

  1. RequestResponseBodyMethodProcessor解析器处理返回值标了注解@ResponseBody
  • 浏览器地址栏发请求,引入下列依赖之后,浏览器能够处理返回xml数据,优先返回xml
  • xml格式 --- application/xml --- jacksonXmlConverter
  • 未引入依赖,处理不了xml,浏览器地址栏发送请求依旧返回json
  • json格式 --- application/json --- jacksonJsonConverter
  • 此处受内容协商机制影响
XML 复制代码
<!--将对象数据处理成xml-->
<dependency>
	<groupId>com.fasterxml.jackson.dataformat</groupId>
	<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
  1. 利用 MessageConverters将数据写为json
  • 内容协商(浏览器默认会以请求头的方式告诉服务器他能接受什么样的内容类型)
  1. SpringMVC会遍历所有容器底层的 HttpMessageConverter ,看谁能处理?
  1. 利用MappingJackson2HttpMessageConverter将对象转为xml/json再写到响应体
  • 返回数据转换成xml或json类型格式
  • 此处内容协商之后转换成xml格式数据
相关推荐
子兮曰6 小时前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
小羊没烦恼!6 小时前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
子兮曰6 小时前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
俊昭喜喜里6 小时前
java中的继承和多态的区别
java
小羊没烦恼!6 小时前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
爱勇宝6 小时前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
譕痕6 小时前
JSONObject与JSONArray封装数据格式区别
java·json
胡写代码7 小时前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖7 小时前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
此时不提桶,更待何时7 小时前
01-06-A-JVM排查实战详解
java·jvm