当前位置: 首页 > news >正文

返回内容协商,@ResponseBody 注解

http://localhost:8080/monster

1 直接进入主题,@ResponseBody 注解 根据什么来返回不同的内容呢?

根据请求头的 Accept 字段 ,

如果 客户端请求头为 Accept: application/json 就返回 json

如果 客户端请求头为 Accept: application/xml 就返回 xml (注意:在 spring默认不支持返回 xml 格式,要添加jackson-xml 依赖)

转换为 xml 格式的依赖

2 IDEA Debug 看看整个过程

AbstractJackson2HttpMessageConverter 的 writeInternal 方法 用于将 返回内容转换为指定格式为并写入 HTTP 响应体的方法

3 为什么 浏览器通常是 返回 json 格式 呢 ?

首先看看浏览器请求默认携带的 accept 字段 信息

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8 表示 这些返回类型都是能接受的。

q=0.9 表示权重 0.9 可以理解为优先级 ,意思是这些格式: text/html,application/xhtml+xml,application/xml 如果服务端有能力返回这些类型,服务端就优先返回其中这些类型 。

image/avif,image/webp,*/*;q=0.8 权重 0.8 image/avif 图像文件格式,image/webpWebP 图像格式 ,*/*表示所有类型 这些权重 0.8,

如果权重 0.9 的格式服务端返回不了,服务端就考虑 权重 0.8 的类型, */*表示接受所有类型 ,而 spring 是支持返回 json 格式的。所以就返回了 json 类型。

补充 : 在我们没有引入 jackson-dataformat-xml 依赖的时候,服务端是不支持处理 xml 格式的,因此返回了 json 类型。

1. 如图 浏览器默认返回 json

2 . 如果 引入了 jackson-dataformat-xml 依赖 ,就返回 xml,根据权重返回的

服务端就返回权重比较高的application/xm 数据格式了

4 服务端开启内容协商的功能

相当于修改 请求头的 accept 字段信息

带上参数 format 指定 要返回的内容格式

http://www.xdnf.cn/news/47611.html

相关文章:

  • C++面试题集合(附答案)
  • [Windows]_[VS2017]_[如何进行远程调试程序]
  • 计算机视觉与深度学习 | 工业视觉缺陷检测如何检小缺陷?背景概述,原理,检测难点,常用的检测算法,算法评估指标,新项目算法选择,算法部署
  • 【Oracle专栏】Oracle中的虚拟列
  • Linux文件时间戳详解:Access、Modify、Change时间的区别与作用
  • PCA——主成分分析数学原理及代码
  • 小迪抓包技术算法加密(6-9天)
  • Dify部署内网时遇到的代理问题及解决办法
  • 【Python爬虫详解】第一篇:Python爬虫入门指南
  • B+树节点与插入操作
  • git清理--解决.git文件过大问题
  • 基于蒙特卡洛模拟与时间序列分析的美的集团财务预测模型研究
  • DeepSeek 助力 Vue 开发:打造丝滑的二维码生成(QR Code)
  • 常用的验证验证 onnxruntime-gpu安装的命令
  • WIN10重启开机不用登录,直接进入桌面
  • Java【网络原理】(4)HTTP协议
  • Redis 的几种数据类型
  • 【Linux我做主】GDB调试工具完全指南
  • Pandas数据可视化
  • UE5 UI 教程系列全集
  • 从入门到精通汇编语言 第六章(中断及外部设备操作)
  • C++ 相关系统软件简介与学习方法【最水的一期】
  • An Improved Fusion Scheme for Multichannel Radar Forward-Looking Imaging论文阅读
  • 代码随想录算法训练营第二十二天(补)
  • Java8-遍历list取出两个字段重新组成list集合
  • linux常用基础命令_最新版
  • 【AI 加持下的 Python 编程实战 2_07】第七章:基于 Copilot 完整演示问题分解能力在实际问题中的落地应用
  • 虚拟教学助理应用系统设计框架
  • 整数分解---ca‘b模板的应用
  • 关于TCP三次握手和四次挥手过程中的状态机、使用三次握手和四次挥手的原因、拥塞控制