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

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

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

后端接收Request請(qǐng)求參數(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ù)名完全一致;

這種形式傳參與請(qǐng)求方式無關(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

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

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

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

所以如果有某一參數(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

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

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

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

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

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

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

method05

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

支持url拼接的多個(gè)params 傳參

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

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

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

method05

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

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

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

支持post請(qǐng)求 的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傳參

注意如果請(qǐng)求中未傳遞指定名稱的參數(shù),取參時(shí)會(huì)報(bào)錯(cuò)

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實(shí)現(xiàn)restFul 風(fēng)格傳參,直接將參數(shù)拼接到url地址中,支持get,post,put delete 等多種請(qǐng)求

required屬性默認(rèn)為true ,不傳遞參數(shù)會(huì)報(bào)錯(cuò);

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

User實(shí)體類

@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é):

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

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

相關(guān)文章

  • Reactor定制一個(gè)生產(chǎn)的WebClient實(shí)現(xiàn)示例

    Reactor定制一個(gè)生產(chǎn)的WebClient實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了Reactor定制一個(gè)生產(chǎn)的WebClient實(shí)現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Java Web三層架構(gòu)的配置詳解

    Java Web三層架構(gòu)的配置詳解

    這篇文章主要介紹了Java Web三層架構(gòu)的配置方法,需要的朋友可以參考下
    2014-10-10
  • SpringBoot Shiro 權(quán)限注解不起作用的解決方法

    SpringBoot Shiro 權(quán)限注解不起作用的解決方法

    本文主要介紹了SpringBoot Shiro 權(quán)限注解不起作用的解決方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 5分鐘快速學(xué)會(huì)spring boot整合JdbcTemplate的方法

    5分鐘快速學(xué)會(huì)spring boot整合JdbcTemplate的方法

    這篇文章主要給大家介紹了如何通過5分鐘快速學(xué)會(huì)spring boot整合JdbcTemplate的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用spring boot整合JdbcTemplate具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Java5 枚舉類詳解及實(shí)例代碼

    Java5 枚舉類詳解及實(shí)例代碼

    這篇文章主要介紹了Java5 枚舉類詳解及實(shí)例代碼的相關(guān)資料,枚舉類是java5 新類型,全部都是類型安全的形式表示,需要的朋友可以參考下
    2016-12-12
  • Java基礎(chǔ)之TreeMap詳解

    Java基礎(chǔ)之TreeMap詳解

    這篇文章主要介紹了Java基礎(chǔ)之TreeMap詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • spring mvc常用注解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    spring mvc常用注解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了spring mvc常用注解,詳細(xì)的介紹了@RequestMapping, @RequestParam, @ModelAttribute等等這樣類似的注解,有興趣的可以了解一下
    2017-08-08
  • SpringBoot 集成 Redis實(shí)現(xiàn)緩存與分布式鎖的全過程(提升系統(tǒng)性能與并發(fā)能力)

    SpringBoot 集成 Redis實(shí)現(xiàn)緩存與分布式鎖的全過程(提升系統(tǒng)性能與并發(fā)能力)

    本文介紹了SpringBoot與Redis的實(shí)戰(zhàn)應(yīng)用,涵蓋了環(huán)境搭建、緩存注解使用、手動(dòng)緩存操作、分布式鎖實(shí)現(xiàn)以及常見緩存問題解決方案,通過實(shí)際代碼示例,幫助讀者快速掌握Redis的核心應(yīng)用,提升系統(tǒng)性能和并發(fā)處理能力,感興趣的朋友跟隨小編一起看看吧
    2026-01-01
  • Eclipse配置tomcat發(fā)布路徑的問題wtpwebapps解決辦法

    Eclipse配置tomcat發(fā)布路徑的問題wtpwebapps解決辦法

    這篇文章主要介紹了Eclipse配置tomcat發(fā)布路徑的問題wtpwebapps解決辦法的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • mybatis之foreach用法詳解

    mybatis之foreach用法詳解

    這篇文章主要介紹了mybatis之foreach用法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12

最新評(píng)論

荆门市| 长阳| 河北区| 会宁县| 台北县| 从江县| 长寿区| 阳山县| 卓尼县| 金乡县| 黄浦区| 新巴尔虎右旗| 定结县| 慈利县| 砚山县| 南郑县| 游戏| 乳源| 通河县| 印江| 荃湾区| 禄劝| 富源县| 汽车| 西乌| 永胜县| 五华县| 阿巴嘎旗| 江安县| 图们市| 开远市| 安吉县| 湘西| 新泰市| 马关县| 乾安县| 潼关县| 电白县| 镇康县| 井陉县| 郁南县|