亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于SpringMVC對接前端參數(shù)注解

 更新時間:2023年09月01日 09:48:14   作者:夜白宋  
這篇文章主要介紹了基于SpringMVC對接前端參數(shù)注解的使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

一、請求方式

HTTP/1.1 協(xié)議規(guī)定的 HTTP 請求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT這幾種。

其中 POST 一般用來向服務(wù)端提交數(shù)據(jù),GET/HEAD請求雖然可以攜帶請求體,但是在實際瀏覽器是不被規(guī)范允許的,所以需要注意

HTTP 協(xié)議是以 ASCII 碼傳輸。他是建立在 TCP/IP 協(xié)議之上的應(yīng)用層規(guī)范,

規(guī)定HTTP 請求分為三個部分:

  • 狀態(tài)行
  • headers 請求頭
  • entity-body 消息主體

類似于下面這樣:

<method> <request-URL> <version>
<headers>
<entity-body>

二、參數(shù)格式

描述
application/x-www-form-urlencoded在發(fā)送前編碼所有字符(默認)
multipart/form-data不對字符編碼。在使用包含文件上傳控件的表單時,必須使用該值。
application/json作為請求頭告訴服務(wù)端消息主體是序列化的JSON字符串。除低版本的IE,基本都支持。
text/plain空格轉(zhuǎn)換為 “+” 加號,但不對特殊字符編碼。

三、注解描述

1. @RequestParam

將請求參數(shù)綁定到你控制器的方法參數(shù)上(是springmvc中接收普通參數(shù)的注解),主要是從url中解析對應(yīng)的參數(shù)名,并綁定對應(yīng)值,默認值為hello

語法:

@RequestParam(value=”參數(shù)名”,required=”true/false”,defaultValue=””)?
  • value:參數(shù)名
  • required:是否包含該參數(shù),默認為true,表示該請求路徑中必須包含該參數(shù),如果不包含就報錯。
  • defaultValue:默認參數(shù)值,如果設(shè)置了該值,required=true將失效,自動為false,如果沒有傳該參數(shù),就使用默認值

2. @RequestBody

主要用來接收前端傳遞給后端的json字符串中的數(shù)據(jù)的(請求體中的數(shù)據(jù)的),使用@RequestBody接收數(shù)據(jù)時,一般都用POST方式進行提交。

注:@RequestBody與@RequestParam()可以同時使用,@RequestBody最多只能有一個,而@RequestParam()可以有多個。

注:一個請求,只有一個RequestBody;一個請求,可以有多個RequestParam。

注:當同時使用@RequestParam和@RequestBody時,@RequestParam指定的參數(shù)可以是普通元素、數(shù)組、集合、對象等等(即:當,@RequestBody 與@RequestParam可以同時使用時,原SpringMVC接收參數(shù)的機制不變,只不過RequestBody 接收的是請求體里面的JSON數(shù)據(jù);而RequestParam接收的是key-value里面的參數(shù),所以它會被切面進行處理從而可以用普通元素、數(shù)組、集合、對象等接收。即:如果參數(shù)時放在請求體中,application/json傳入后臺的話,那么后臺要用@RequestBody才能接收到;如果不是放在請求體中的話,那么后臺接收前臺傳過來的參數(shù)時,要用@RequestParam來接收,或則形參前 什么也不寫也能接收。

注:如果參數(shù)前寫了@RequestParam(xxx),那么前端必須有對應(yīng)的xxx名字才行(不管其是否有值,當然可以通過設(shè)置該注解的required屬性來調(diào)節(jié)是否必須傳),如果沒有xxx名的話,那么請求會出錯,報400。

注:如果參數(shù)前不寫@RequestParam(xxx)的話,那么就前端可以有可以沒有對應(yīng)的xxx名字才行,如果有xxx名的話,那么就會自動匹配;沒有的話,請求也能正確發(fā)送。

追注:這里與feign消費服務(wù)時不同;feign消費服務(wù)時,如果參數(shù)前什么也不寫,那么會被默認是@RequestBody的。

四、實際調(diào)用

1.Get請求

1.1 普通元素傳參

前端請求

在這里插入圖片描述

后端接收入?yún)ⅲ?/p>

@GetMapping("/testPrint")
    public void testPrint1(String name) {
        System.out.println("testPrint1: " + name);
    }
    或
    @GetMapping("/testPrint")
    public void testPrint2(@RequestParam("name") String name) {
        System.out.println("testPrint2: " + name);
    }

1.2 數(shù)組傳參

前端請求

在這里插入圖片描述

后端接收入?yún)ⅲ?/p>

@GetMapping("/testPrint1")
    public void testPrint1(String[] name) {
        System.out.println("testPrint1: " + JSON.toJSONString(name));
    }
	或
    @GetMapping("/testPrint2")
    public void testPrint2(@RequestParam("name") String[] name) {
        System.out.println("testPrint2: " + JSON.toJSONString(name));
    }

2.Post請求 

2.1 application/x-www-form-urlencoded請求傳參

前端請求類型

在這里插入圖片描述

后端接收入?yún)ⅲ?/p>

@PostMapping("/testPrint1")
    public void testPrint1(Bb bb) {
        System.out.println("testPrint1: " + JSON.toJSONString(bb));
    }

此處一定要注意不能使用@RequestBody,否則就會拋出415錯誤, “Unsupported Media Type”,

2.2 application/json請求傳參

前端請求類型

在這里插入圖片描述

后端接收入?yún)ⅲ?/p>

@PostMapping("/testPrint2")
    public void testPrint2(@RequestBody Bb bb) {
        System.out.println("testPrint2: " + JSON.toJSONString(bb));
    }

此處一定要使用@RequestBody,否則無法解析JSON數(shù)據(jù)

總結(jié)

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

相關(guān)文章

  • Spring?注入靜態(tài)對象使用三種方式示例

    Spring?注入靜態(tài)對象使用三種方式示例

    這篇文章主要為大家介紹了Spring注入靜態(tài)對象使用的三種方式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • Spring集成MyBatis?及Aop分頁的實現(xiàn)代碼

    Spring集成MyBatis?及Aop分頁的實現(xiàn)代碼

    這篇文章主要介紹了Spring集成MyBatis?及Aop分頁的實現(xiàn),本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • 詳解Java中hashCode的作用

    詳解Java中hashCode的作用

    這篇文章主要介紹了詳解Java中hashCode的作用的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • 淺談Mybatis #和$區(qū)別以及原理

    淺談Mybatis #和$區(qū)別以及原理

    這篇文章主要介紹了淺談Mybatis #和$區(qū)別以及原理,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Kafka中使用Avro序列化和反序列化詳解

    Kafka中使用Avro序列化和反序列化詳解

    這篇文章主要介紹了Kafka中使用Avro序列化和反序列化詳解,由于Kafka中的數(shù)據(jù)都是字節(jié)數(shù)組,在將消息發(fā)送到Kafka之前需要先將數(shù)據(jù)序列化為字節(jié)數(shù)組, 序列化器的作用就是用于序列化要發(fā)送的消息的,需要的朋友可以參考下
    2023-12-12
  • Java基礎(chǔ)之內(nèi)存泄漏與溢出詳解

    Java基礎(chǔ)之內(nèi)存泄漏與溢出詳解

    今天帶大家來了解一下Java內(nèi)存泄漏與溢出的知識,文中有非常詳細的介紹,對正在學(xué)習(xí)Java基礎(chǔ)的各位小伙伴呢很有幫助喲,需要的朋友可以參考下
    2021-05-05
  • 小白必看toString(),String.valueOf,(String)強轉(zhuǎn)

    小白必看toString(),String.valueOf,(String)強轉(zhuǎn)

    在Java中,往往需要把一個類型的變量轉(zhuǎn)換成String 類型,本文主要介紹了toString(),String.valueOf,(String)強轉(zhuǎn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Kafka源碼系列教程之刪除topic

    Kafka源碼系列教程之刪除topic

    這篇文章主要給大家介紹了關(guān)于Kafka源碼系列教程之刪除topic的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • java中符號@的作用及用法舉例詳解

    java中符號@的作用及用法舉例詳解

    在Java編程語言中,@符號被稱為注解(Annotation),下面這篇文章主要介紹了java中符號@的作用及用法的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-04-04
  • Java集成swagger文檔組件

    Java集成swagger文檔組件

    這篇文章主要介紹了Java集成swagger文檔組件,通過詳細的圖文介紹和代碼分析展示,從頭展開說明詳細的過程,希望對你的開發(fā)有所幫助
    2021-06-06

最新評論