通过SpringMVC框架响应JSON数据
🌊 作者主页:海拥
🌊 简介:🏆CSDN全栈领域优质创作者、🥇HDZ核心组成员、🥈蝉联C站周榜前十
1. 通过SpringMVC框架响应JSON数据
在SpringMVC框架(含SpringBoot框架)中,当处理请求的方法之前添加了@ResponseBody
后,或在控制器类之前使用的是@RestController
,处理请求的方法的返回值将作为响应到客户端的数据。
当服务器向客户端响应数据时,SpringMVC框架会使用“转换器”(Converter)将方法的返回值进行转换,及处理响应时的响应头(Response Headers)等内容,针对返回值类型不同,SpringMVC框架还会自动使用不同的转换器。
当响应数据的类型(处理请求的方法的返回值类型)是String
时,会自动使用StringHttpMessageConverter
转换器,该转换器就会自动将返回的字符串作为数据响应到客户端,并且,还会设置响应头,默认情况下,在响应头中会设置Content-Type
属性,其值是text/html; charset=ISO-8859-1
,所以,在SpringMVC框架(不含SpringBoot框架)中,默认情况下,响应的String
是不支持中文的!
当响应数据的类型是SpringMVC框架默认并不识别的类型时,且当前开发环境添加了jackson-databind
依赖,SpringMVC框架会自动使用jackson-databind
中的转换器,而jackson-databind
中的转换器的工作方式就是将响应结果组织成JSON格式的数据,并且,将响应头中的Content-Type
设置成了application/json; charset=UTF-8
!
在项目中只需要确保添加了
jackson-databind
依赖即可,并不需要进行额外的配置,也不需要显式的使用到该框架中的某个类!如果是使用XML进行相关配置的SpringMVC项目,需要在Spring的配置文件中开启注解驱动,即在配置文件中添加:
<annotation-driven />
总的来说,如果需要SpringMVC框架能够响应JSON格式的数据,需要:
- 使用
@RestController
或@ResponseBody
注解; - 在项目中添加
jackson-databind
依赖; - 自定义处理请求的方法的返回值类型(只要是自定义的类型,就一定是SpringMVC框架默认不识别的类型)
当然,某个控制器类中,如果已经使用了@RestController
注解,会表示“当前控制器类中处理的所有请求都将响应数据”,就不会执行转发或重定向的操作了,如果一定要执行转发或重定向,可以:
- 不使用
@RestController
注解,而是在每个需要响应数据的方法之前逐一添加@ResponseBody
注解; - 在使用
@RestController
的情况下,将需要转发或重定向的方法的返回值类型声明为ModelAndView
类型。
🌊 面试题库:Java、Python、前端核心知识点大全和面试真题资料
🌊 电子图书:图灵程序丛书 300本、机械工业出版社6000册免费正版图书
🌊 办公用品:精品PPT模板几千套,简历模板一千多套
🌊 学习资料:2300套PHP建站源码,微信小程序入门资料
公众号【海拥】内回复【资源】获取以上所有资料
我已经写了很长一段时间的技术博客,这是我的一篇关于整合基于注解的SSM框架小结。我乐于通过文章分享技术与快乐。您可以访问我的博客主页: 华为云-海拥、我的个人博客:haiyong.site 以了解更多信息。希望你们会喜欢!
- 点赞
- 收藏
- 关注作者
评论(0)