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

基于SpringMVC對接前端參數注解

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

一、請求方式

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

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

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

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

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

類似于下面這樣:

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

二、參數格式

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

三、注解描述

1. @RequestParam

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

語法:

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

2. @RequestBody

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

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

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

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

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

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

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

四、實際調用

1.Get請求

1.1 普通元素傳參

前端請求

在這里插入圖片描述

后端接收入參:

@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 數組傳參

前端請求

在這里插入圖片描述

后端接收入參:

@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請求傳參

前端請求類型

在這里插入圖片描述

后端接收入參:

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

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

2.2 application/json請求傳參

前端請求類型

在這里插入圖片描述

后端接收入參:

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

此處一定要使用@RequestBody,否則無法解析JSON數據

總結

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

相關文章

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

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

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

    Spring集成MyBatis?及Aop分頁的實現代碼

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

    詳解Java中hashCode的作用

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

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

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

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

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

    Java基礎之內存泄漏與溢出詳解

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

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

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

    Kafka源碼系列教程之刪除topic

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

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

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

    Java集成swagger文檔組件

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

最新評論