SpringBoot Web开发——数据响应

目录

1、响应JSON,给前端返回json数据

1.1、引入依赖

1.2、映射方法标注@ResponseBody注解

1.3、SpringMVC支持的返回值类型

2、内容协商

2.1、引入xml依赖(支持返回xml格式的数据)

2.2、postman分别测试返回json和xml

2.3、 开启浏览器参数方式内容协商功能

3.1、配置文件中开启基于浏览器参数方式内容协商功能

3.2、在请求中加入字段“?format=xxx”:

4、自定义 MessageConverter

4.1、实例:需求

4.2、解决:

4.2.1步骤:

4.2.2、自定义的uclassMessageConverter():

4.2.3、自定义数据的浏览器参数方式内容协商功能

4.2.4、自定义组件有可能会覆盖很多默认功能,导致一些默认的功能失效。


controller层根据页面的请求,进行数据和图片的响应。

1、响应JSON,给前端返回json数据

1.1、引入依赖

pom.xml:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

该场景自动引入了json场景

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-json</artifactId>
   <version>2.3.4.RELEASE</version>
   <scope>compile</scope>
</dependency>

1.2、映射方法标注@ResponseBody注解

        controller层:

@Controller
public class ResponseTestController {
    @ResponseBody
    @GetMapping("/test/person")
    public Person getPerson() {
        Person person = new Person();
        person.setAge(28);
        person.setBirth(new Date());
        person.setUserName("zhangsan");

        return person;
    }
}

        页面响应数据:

1.3、SpringMVC支持的返回值类型

ModelAndView
Model
View
ResponseEntity 
ResponseBodyEmitter
StreamingResponseBody
HttpEntity
HttpHeaders
Callable
DeferredResult
ListenableFuture
CompletionStage
WebAsyncTask
有 @ModelAttribute 注解,且为对象类型的返回值
有 @ResponseBody 注解,利用RequestResponseBodyMethodProcessor处理器进行返回

2、内容协商

根据客户端接收能力不同,返回不同媒体类型的数据。

2.1、引入xml依赖(支持返回xml格式的数据)

<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-xml</artifactId>
</dependency>

        前端界面返回值: 

2.2、postman分别测试返回json和xml

只需要改变请求头中Accept字段。Http协议中规定的,告诉服务器本客户端可以接收的数据类型。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值