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

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

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

后端接收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值會(huì)去映射請求url 中的同名參數(shù)取參然后賦值給加注解的形參,所以注解中的參數(shù)名必須與url中一致,而方法形參名可以根據(jù)自身需求靈活變更;

注意加此注解的required 屬性 默認(rèn)為true,也就是接收請求時(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

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

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

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

通常get請求通過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

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

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

支持post請求 的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}來獲取綁定的命令對象的屬性

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

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

支持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ù),取參時(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 等多種請求

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

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

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

相關(guān)文章

最新評論

蓬莱市| 南昌市| 资阳市| 乌鲁木齐市| 菏泽市| 师宗县| 银川市| 德格县| 新干县| 通道| 万宁市| 海林市| 吴桥县| 崇阳县| 新民市| 凌云县| 福海县| 钟祥市| 南开区| 嘉荫县| 云梦县| 岐山县| 盖州市| 池州市| 剑河县| 延边| 林西县| 讷河市| 东台市| 肥西县| 武功县| 黄平县| 得荣县| 宣汉县| 西充县| 喜德县| 黔江区| 东明县| 原阳县| 西峡县| 上林县|