最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

学习笔记——SpringMVC消息转换器概述;使用消息转换器处理请求报文;使用消息转换器处理响应报文;使用消息转换器处理Json格式数据

来源:博客园

2023-01-20


(相关资料图)

一、SpringMVC消息转换器概述

1、HttpMessageConverter

消息转换器作用:

(1)将java对象与请求报文及响应报文进行相互转化

(2)使用HttpMessageConverter将请求信息转化并绑定到处理方法的入参中或将响应结果转为对应类型的响应信息,Spring提供了两种途径:

①使用@RequestBody/@@ResponseBody对处理方式进行标注。

②使用HttpEntity/ResponseEntity作为处理方法的入参或返回值。

二、使用消息转换器处理请求报文

1、使用@RequestBody获取请求体

(1)语法

final static String SUCCESS = "success";        @RequestMapping("/testRequestBody")    public String testRequestBody(@RequestBody String reqBody){        System.out.println("reqBody = " + reqBody);        return SUCCESS;    }

(2)注:使用@RequestBody必须以POST方式提交,不能使用GET方式(GET提交方式,没有请求体)

2、使用HttpEntity对象,获取请求头及请求体

(1)语法:

@RequestMapping("/testHttpEntity")    public String testHttpEntity(HttpEntity httpEntity){        //获取请求头        System.out.println("httpEntity.getHeaders() = " + httpEntity.getHeaders());        //获取内容        System.out.println("httpEntity.getBody() = " + httpEntity.getBody());        return SUCCESS;    }

(2)可以获取请求头及请求体

三、使用消息转换器处理响应报文

1、@ResponseBody

(1)位置:

①书写在class类上面(当前类所有方法,均返回文本,不调整页面)

②书写在方法上面

(2)语法

@RequestMapping("/testResponseBody")    @ResponseBody    public String testResponseBody(){        System.out.println("testResponseBody !!!");        return "hello";    }

四、使用消息转换器处理Json格式数据

1、导入jar包

    com.fasterxml.jackson.core    jackson-databind    2.12.3

2、装配MappingJackson2HttpMessageConverter消息转换器

必须配置mvc:annotation-drive标签才能装配Jackson的转换器

3、在需要转换json数据的方法上,添加@ResponseBody

4、实例代码:

@RequestMapping("/testJSON")    @ResponseBody    public Employee testJSON(){        System.out.println("testJSON");        Employee employee = new Employee(1001,"zhangsan","123@163.com",1);        return employee;    }

关键词: 格式数据 处理方法 处理方式