2023-01-20 一、SpringMVC消息轉換器概述 1、HttpMessageConverter<T> 消息轉換器作用: (1)將java對象與請求報文及響應報文進行相互轉化 (2)使用HttpMessageConverter<T>將請求信息轉化並綁定到處理方法的入參中或將響應結果轉為對應類 ...
2023-01-20
一、SpringMVC消息轉換器概述
1、HttpMessageConverter<T>
消息轉換器作用:
(1)將java對象與請求報文及響應報文進行相互轉化
(2)使用HttpMessageConverter<T>將請求信息轉化並綁定到處理方法的入參中或將響應結果轉為對應類型的響應信息,Spring提供了兩種途徑:
①使用@RequestBody/@@ResponseBody對處理方式進行標註。
②使用HttpEntity<T>/ResponseEntity<T>作為處理方法的入參或返回值。
二、使用消息轉換器處理請求報文
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<T>對象,獲取請求頭及請求體
(1)語法:
@RequestMapping("/testHttpEntity") public String testHttpEntity(HttpEntity<String> 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包
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.12.3</version> </dependency>
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","[email protected]",1); return employee; }