最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

@ResponseBody與@RequestBody注解用法

記錄一下這兩個注解最基本的用法,作為復(fù)習(xí)

@ResponseBody

  • 作用:

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

@RequestBody

  • 作用:

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

什么是HttpMessageConverter

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

代碼測試

(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>

導(dǎo)入了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取到對應(yīng)的值
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的格式相應(yīng)回瀏覽器
        return user ;
    }
}
  • 開始測試:

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

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

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

user對象特定的json格式,響應(yīng)給了瀏覽器。 

總結(jié)

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

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

相關(guān)文章

  • 深入淺析springsecurity入門登錄授權(quán)

    深入淺析springsecurity入門登錄授權(quán)

    SpringSecurity為我們提供了基于注解的權(quán)限控制方案,這也是我們項目中主要采用的方式,我們可以使用注解去指定訪問對應(yīng)的資源所需的權(quán)限,這篇文章主要介紹了springsecurity入門登錄授權(quán),需要的朋友可以參考下
    2024-05-05
  • 詳解Java如何關(guān)閉線程以及線程池

    詳解Java如何關(guān)閉線程以及線程池

    java如何正確關(guān)閉線程以及線程池是一個高頻的面試題,本文將為大家詳細介紹實現(xiàn)的方法與代碼,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下
    2022-04-04
  • ArrayList刪除集合中某一屬性相同的元素方法(推薦)

    ArrayList刪除集合中某一屬性相同的元素方法(推薦)

    下面小編就為大家?guī)硪黄狝rrayList刪除集合中某一屬性相同的元素方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • Java的方法和this關(guān)鍵字如何理解與應(yīng)用

    Java的方法和this關(guān)鍵字如何理解與應(yīng)用

    Java語言中的“方法”(Method)在其他語言當中也可能被稱為“函數(shù)”(Function)。對于一些復(fù)雜的代碼邏輯,如果希望重復(fù)使用這些代碼,并且做到“隨時任意使用”,那么就可以將這些代碼放在一個大括號{}當中,并且起一個名字。使用代碼的時候,直接找到名字調(diào)用即可
    2021-10-10
  • Java Email郵件發(fā)送簡單實現(xiàn)介紹

    Java Email郵件發(fā)送簡單實現(xiàn)介紹

    電子郵件從用戶電腦的郵件軟件,例如Outlook,發(fā)送到郵件服務(wù)器上,可能經(jīng)過若干個郵件服務(wù)器的中轉(zhuǎn),最終到達對方郵件服務(wù)器上,收件方就可以用軟件接收郵件
    2022-11-11
  • SpringCloud Gateway鑒權(quán)和跨域解決方案

    SpringCloud Gateway鑒權(quán)和跨域解決方案

    網(wǎng)關(guān)是介于客戶端和服務(wù)器端之間的中間層,所有的外部請求都會先經(jīng)過 網(wǎng)關(guān)這一層,也就是說,API 的實現(xiàn)方面更多的考慮業(yè)務(wù)邏輯,而安全、性能、監(jiān)控可以交由 網(wǎng)關(guān)來做,這樣既提高業(yè)務(wù)靈活性又不缺安全性,本文給大家介紹SpringCloud Gateway鑒權(quán)和跨域解決方案,一起看看吧
    2023-11-11
  • Springboot整合mqtt實現(xiàn)軟硬件通信的示例代碼

    Springboot整合mqtt實現(xiàn)軟硬件通信的示例代碼

    本文介紹了如何使用Spring Boot整合MQTT協(xié)議,實現(xiàn)物聯(lián)網(wǎng)軟硬件通信, MQTT是一種輕量級的消息隊列遙測傳輸協(xié)議,適用于物聯(lián)網(wǎng)設(shè)備通信和遠程監(jiān)控,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • Java后臺Controller實現(xiàn)文件下載操作

    Java后臺Controller實現(xiàn)文件下載操作

    這篇文章主要介紹了Java后臺Controller實現(xiàn)文件下載操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • JAVA實現(xiàn)JSON后端向前端傳遞數(shù)據(jù)

    JAVA實現(xiàn)JSON后端向前端傳遞數(shù)據(jù)

    本篇文章主要介紹了JAVA實現(xiàn)JSON后端向前端傳遞數(shù)據(jù),這里整理了詳細的代碼,具有一定的參考價值,有需要的小伙伴可以參考下。
    2017-03-03
  • 一文教你掌握Java如何實現(xiàn)判空

    一文教你掌握Java如何實現(xiàn)判空

    實際項目中我們會有很多地方需要判空校驗,如果不做判空校驗則可能產(chǎn)生NullPointerException異常。所以本文小編為大家整理了Java中幾個常見的判空方法,希望對大家有所幫助
    2023-04-04

最新評論

防城港市| 犍为县| 云林县| 沙湾县| 福鼎市| 冕宁县| 天津市| 大余县| 阳山县| 黄龙县| 台湾省| 赞皇县| 政和县| 庆元县| 嘉定区| 霍邱县| 长岭县| 绥化市| 伊金霍洛旗| 从化市| 兴山县| 海安县| 阳高县| 泽普县| 武功县| 石阡县| 黔江区| 奉新县| 大洼县| 西乡县| 望城县| 体育| 广南县| 茶陵县| 启东市| 佛教| 鹿邑县| 乌拉特后旗| 正定县| 西吉县| 罗山县|