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

Java 后端接收Request請求參數(shù)的多種方式匯總

 更新時間:2023年10月19日 10:41:22   作者:風(fēng)月不相關(guān)ii  
本文給大家總結(jié)了后端接收Request請求參數(shù)的7種方式,本文結(jié)合實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧

后端接收Request請求參數(shù)的7種方式

1.直接在Controller 方法參數(shù)上配置參數(shù)名

 @RequestMapping("/method01")
    public String method01(String name, Integer age, Double mon) {
        User user = new User();
        user.setName(name);
        user.setAge(age);
        user.setMoney(mon);
        return JSON.toJSONString(user);
    }

method01

這種格式接收的是method01?name=zhangsan&age=15&mon=20.0格式的傳參,并且要求參數(shù)名與url 地址中攜帶的參數(shù)名完全一致;

這種形式傳參與請求方式無關(guān),get post .put 等皆可;

2.@RequestParam 接收url地址中的參數(shù)

@RequestMapping(value = "/method02")
    public String method02(@RequestParam("name") String name,
                           @RequestParam("age") Integer age,
                           @RequestParam(value = "money", required = false) Double mon) {
        User user = new User();
        user.setName(name);
        user.setAge(age);
        user.setMoney(mon);
        return JSON.toJSONString(user);
    }

method02

這種方式原理上與第一種一致,都是接收請求url地址種的參數(shù),所以與請求方式無關(guān);

這種方式注解種的value值會去映射請求url 中的同名參數(shù)取參然后賦值給加注解的形參,所以注解中的參數(shù)名必須與url中一致,而方法形參名可以根據(jù)自身需求靈活變更;

注意加此注解的required 屬性 默認(rèn)為true,也就是接收請求時會根據(jù)value去url尋找同名參數(shù),如果沒找到會報錯;

所以如果有某一參數(shù)可能不傳的情況,需要將required屬性設(shè)為false

3.@RequestBody 接收body中JSON字符串參數(shù)

@RequestMapping(value = "/method02")
    public String method02(@RequestParam("name") String name,
                           @RequestParam("age") Integer age,
                           @RequestParam(value = "money", required = false) Double mon) {
        User user = new User();
        user.setName(name);
        user.setAge(age);
        user.setMoney(mon);
        return JSON.toJSONString(user);
    }

method03

上面兩種方式都是通過從請求頭(url) 中傳參的方式實現(xiàn)獲取參數(shù),@RequestBody則是接收請求體中的JSON 字符串參數(shù)直接映射實體對象,所以body類型必須是JSON字符串;

注意實體類中的屬性名稱必須與JOSN串中的參數(shù)key名稱完全一致,不同命參數(shù)無法正確接收;

使用此種方式推薦使用Post請求攜帶body參數(shù),get請求雖然也可以攜帶body參數(shù)并請求成功但并不推薦這樣操作,

通常get請求通過url攜帶參數(shù)可以根據(jù)url作為key緩存資源,常用的靜態(tài)資源服務(wù)器都是這種原理,如果參數(shù)在body中這種方式就失效了

4.直接通過實體接收參數(shù)

@RequestMapping(value = "/method04")
    public String method04(User user) {
        return JSON.toJSONString(user);
    }

method05

這種方式要求請求中的參數(shù)名與實體中的屬性名一致即可自動映射到實體屬性中;

支持url拼接的多個params 傳參

支持post請求 的form類型傳參(form-data,x-www-form-urlencoded), 不支持JSON 傳參

5.@ModelAttribute 接收實體參數(shù)

@RequestMapping("/method05")
    public String method05(@ModelAttribute("user") User user) {
        return JSON.toJSONString(user);
    }

method05

@ModelAttribute 注解主要作用是自動將數(shù)據(jù)暴露為模型數(shù)據(jù)用于視圖頁面展示時使用,比如此處注解value為user, 前端視圖就可以通過${user.name}來獲取綁定的命令對象的屬性

此用法與方法4完全一致,支持url拼接的多個params 傳參

可以用于接收url 或者from表單中的數(shù)據(jù)映射實體;

支持post請求 的form類型傳參(form-data,x-www-form-urlencoded), 不支持JSON 傳參

6.HttpServletRequest request接收參數(shù)

 @RequestMapping("/method06")
    public String method06(HttpServletRequest request) {
        User user = new User();
        user.setName(request.getParameter("name"));
        user.setAge(Integer.valueOf(request.getParameter("age")));
        user.setMoney(Double.parseDouble(request.getParameter("money")));
        return JSON.toJSONString(user);
    }

method06

傳統(tǒng)的接收參數(shù)方式,可以接收url params 傳參,支持post from類型傳參,不支持JSON傳參

注意如果請求中未傳遞指定名稱的參數(shù),取參時會報錯

7.@PathVariable RestFul 風(fēng)格傳參

@RequestMapping(value = {"/method07/{name}/{age}/{money}","/method07/{name}/{money}"})
    public String method07(@PathVariable("name") String name,
                           @PathVariable(value = "age", required = false) Integer age,
                           @PathVariable("money") Double money) {
        User user = new User();
        user.setName(name);
        user.setMoney(money);
        user.setAge(age);
        return JSON.toJSONString(user);
    }

在這里插入圖片描述

通過@PathVariable實現(xiàn)restFul 風(fēng)格傳參,直接將參數(shù)拼接到url地址中,支持get,post,put delete 等多種請求

required屬性默認(rèn)為true ,不傳遞參數(shù)會報錯;

如果出現(xiàn)某個參數(shù)未傳遞的情況可以通過設(shè)置required屬性為false并設(shè)置多個value 字符串的形式實現(xiàn)

User實體類

@RequestMapping(value = {"/method07/{name}/{age}/{money}","/method07/{name}/{money}"})
    public String method07(@PathVariable("name") String name,
                           @PathVariable(value = "age", required = false) Integer age,
                           @PathVariable("money") Double money) {
        User user = new User();
        user.setName(name);
        user.setMoney(money);
        user.setAge(age);
        return JSON.toJSONString(user);
    }

總結(jié):

以上就是七種常見的請求方式,不足之處請多指正啦

到此這篇關(guān)于Java 后端接收Request請求參數(shù)的多種方式匯總的文章就介紹到這了,更多相關(guān)Java 后端接收Request請求參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Java的Hibernate框架中的注解與緩存

    詳解Java的Hibernate框架中的注解與緩存

    這篇文章主要介紹了詳解Java的Hibernate框架中的注解與緩存,Hibernate是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下
    2015-12-12
  • java序列化與反序列化操作實例分析

    java序列化與反序列化操作實例分析

    這篇文章主要介紹了java序列化與反序列化操作,結(jié)合實例形式分析了java序列化與反序列化的概念與具體實現(xiàn)技巧,需要的朋友可以參考下
    2016-10-10
  • CAT分布式實時監(jiān)控系統(tǒng)使用詳解

    CAT分布式實時監(jiān)控系統(tǒng)使用詳解

    這篇文章主要為大家介紹了CAT分布式實時監(jiān)控系統(tǒng)介紹詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • Java常見問題之javac Hello.java找不到文件的解決方法

    Java常見問題之javac Hello.java找不到文件的解決方法

    剛開始編寫java代碼時,肯定會遇到各種各樣的bug,當(dāng)然對于初學(xué)者這也是能理解的,下面這篇文章主要給大家介紹了關(guān)于Java常見問題之javac Hello.java找不到文件解決的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下。
    2018-01-01
  • 一文詳解RabbitMQ如何保證消息可靠性

    一文詳解RabbitMQ如何保證消息可靠性

    這篇文章將詳細(xì)介紹RabbitMQ的消息可靠性機制,如消息丟失,消息重復(fù)性消費,消息積壓等問題,具有一定的參考價值,需要的朋友可以參考下
    2023-07-07
  • Mybatis查詢時的延遲加載解析

    Mybatis查詢時的延遲加載解析

    這篇文章主要介紹了Mybatis查詢時的延遲加載解析,先從單表查詢,需要時再從關(guān)聯(lián)表去關(guān)聯(lián)查詢,能大大提高數(shù)據(jù)庫性能,因為查詢單表要比關(guān)聯(lián)查詢多張表速度要快,延遲加載分為兩種:深度延時加載,侵入式延遲加載,需要的朋友可以參考下
    2023-10-10
  • mybatis對于list更新sql語句的寫法說明

    mybatis對于list更新sql語句的寫法說明

    這篇文章主要介紹了mybatis對于list更新sql語句的寫法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • spring在IoC容器中裝配Bean詳解

    spring在IoC容器中裝配Bean詳解

    這篇文章主要介紹了spring在IoC容器中裝配Bean詳解,具有一定借鑒價值,需要的朋友可以參考下
    2017-12-12
  • SpringBoot 錯誤處理機制與自定義錯誤處理實現(xiàn)詳解

    SpringBoot 錯誤處理機制與自定義錯誤處理實現(xiàn)詳解

    這篇文章主要介紹了SpringBoot 錯誤處理機制與自定義錯誤處理實現(xiàn)詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • 2018版java多線程面試題集合及答案

    2018版java多線程面試題集合及答案

    這篇文章主要為大家詳細(xì)介紹了2018版java多線程面試題集合及答案,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09

最新評論