欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解讀@ResponseBody與@RequestBody注解的用法

 更新時間:2024年11月14日 11:10:21   作者:莫失莫忘hh  
這篇文章主要介紹了Spring MVC中的@ResponseBody和@RequestBody注解的用法,@ResponseBody注解用于將Controller方法的返回對象轉(zhuǎn)換為指定格式(如JSON)并通過Response響應給客戶端,@RequestBody注解用于讀取HTTP請求的內(nèi)容

@ResponseBody與@RequestBody注解用法

記錄一下這兩個注解最基本的用法,作為復習

@ResponseBody

  • 作用:

@ResponseBody注解用于將Controller的方法返回的對象,通過springmvc提供的HttpMessageConverter接口轉(zhuǎn)換為指定格式的數(shù)據(jù)如:json,xml等,通過Response響應給客戶端。

@RequestBody

  • 作用:

@RequestBody注解用于讀取http請求的內(nèi)容(字符串),通過springmvc提供的HttpMessageConverter接口將讀到的內(nèi)容(json數(shù)據(jù))轉(zhuǎn)換為java對象并綁定到Controller方法的參數(shù)上。

什么是HttpMessageConverter

作用:負責將請求信息轉(zhuǎn)換為一個對象(類型為 T),將對象(類型為 T)輸出為響應信息。

代碼測試

(1)搭建SpringMVC的web開發(fā)環(huán)境(可以參照我上一篇博客純注解搭建springmvc環(huán)境

注意:要使用這兩個注解,就一定要有jackson的相關(guān)jar包

   <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.8</version>
        </dependency>

導入了jar包之后,如果配置了<mvc:annotation-driven />或者使用了注解@EnableWebMvc,那么容器在啟動的時候就會自動裝載json的HttpMessageConverter

如下圖所示:

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2019/6/14
  Time: 18:48
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <script type="text/javascript" src="/js/jquery-1.5.1.min.js"></script>
    <title>Title</title>
    <script>
        $(function () {
            $("button[name='butt1']").click(function () {
                $.ajax({
                    url: "/save",
                    data:JSON.stringify({"userName":"張三","age":"18"}),
                    type: "POST",
                    success: function (data) {
                        alert(data);
                    },
                    contentType: "application/json;charset=utf-8"
                });
            });
        })
    </script>
</head>
<body>
<button name="butt1">提價post</button>
</body>
</html>

點擊提交,發(fā)送post請求,提價json字符串數(shù)據(jù),需要指定contentType: "application/json;charset=utf-8"不然會報415錯誤

這里說明一下json字符串和json對象時兩個不同的概念:

var user ={“userName”:“張三”,“age”:“18”} 這里user 是一個json對象,類型是object 可以通過user.name和user.age取到對應的值
var user1= ‘{“userName”:“張三”,“age”:“18”}' 這里user1 就是一個字符串,是符合{k:v,k:v}這種json格式的字符串而已,不能通過上面那種方式取值。

可以通過一定的方法相互轉(zhuǎn)換:json對象轉(zhuǎn)json字符串 1、可以直接單引號 2、通過JSON.stringify(xxx)

json字符串轉(zhuǎn)json對象:JSON.parse(xxxx)

controller層代碼

    @PostMapping("/save")
    @ResponseBody
    public User save(@RequestBody  User user){
    //將前臺傳過來的數(shù)據(jù) 以json的格式相應回瀏覽器
        return user ;
    }
}
  • 開始測試:

  • 打開控制臺:點擊提價之后

可以發(fā)現(xiàn)請求體就是data的內(nèi)容信息。

contentType也就是設(shè)置的application/json;charset=utf-8,然后再查看一下相應信息

user對象特定的json格式,響應給了瀏覽器。 

總結(jié)

我們前臺請求過去的json字符串,在使用@RequestBody注解后 被HttpMessageConverter,轉(zhuǎn)換成對應的java對象,然后我們在用@ResponseBody注解,將java對象 以特定的格式(通常都是json)相應給瀏覽器。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Mybatis如何解決sql中l(wèi)ike通配符模糊匹配問題

    Mybatis如何解決sql中l(wèi)ike通配符模糊匹配問題

    這篇文章主要介紹了Mybatis如何解決sql中l(wèi)ike通配符模糊匹配問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • SpringBoot微信消息接口配置詳解

    SpringBoot微信消息接口配置詳解

    這篇文章主要介紹了SpringBoot 微信消息接口配置詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-06-06
  • Git工具 conflict沖突問題解決方案

    Git工具 conflict沖突問題解決方案

    這篇文章主要介紹了Git工具 conflict沖突問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • java如何在項目中實現(xiàn)excel導入導出功能

    java如何在項目中實現(xiàn)excel導入導出功能

    這篇文章主要介紹了java如何在項目中實現(xiàn)excel導入導出功能的相關(guān)資料,EasyExcel是一個基于Apache?POI開發(fā)的開源Java庫,用于簡化Excel文件的讀寫操作,文中將用法介紹的非常詳細,需要的朋友可以參考下
    2024-10-10
  • Java令牌Token登錄與退出的實現(xiàn)

    Java令牌Token登錄與退出的實現(xiàn)

    這篇文章主要介紹了Java令牌Token登錄與退出的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • mybatis的動態(tài)SQL以及連接池詳解

    mybatis的動態(tài)SQL以及連接池詳解

    這篇文章主要介紹了mybatis的動態(tài)SQL以及連接池詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • springboot接收json數(shù)據(jù)時,接收到空值問題

    springboot接收json數(shù)據(jù)時,接收到空值問題

    這篇文章主要介紹了springboot接收json數(shù)據(jù)時,接收到空值問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • java.util.concurrent.ExecutionException 問題解決方法

    java.util.concurrent.ExecutionException 問題解決方法

    這篇文章主要介紹了java.util.concurrent.ExecutionException 問題解決方法的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • IDEA maven依賴錯誤中包下面紅色波浪線

    IDEA maven依賴錯誤中包下面紅色波浪線

    這篇文章主要介紹了IDEA maven依賴錯誤中包下面紅色波浪線,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • Java實現(xiàn)的n階曲線擬合功能示例

    Java實現(xiàn)的n階曲線擬合功能示例

    這篇文章主要介紹了Java實現(xiàn)的n階曲線擬合功能,結(jié)合實例形式分析了Java基于矩陣的多項式曲線擬合相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01

最新評論