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

詳解Spring?Boot接收參數(shù)的19種方式

 更新時間:2025年01月02日 12:03:32   作者:叁越  
Spring?Boot提供了多種注解來接收不同類型的參數(shù),本文給大家介紹Spring?Boot接收參數(shù)的19種方式,感興趣的朋友跟隨小編一起看看吧

SpringBoot接受參數(shù)相關

@PathVariable注解

使用場景:解析占位變量

url:/monster/{id}/{name} —> /monster/king/100

與@RequestParam的區(qū)別是沒有參數(shù)名

    /**
     * /monster/{id}/{name} 解讀
     * 1. /monster/{id}/{name} 構成完整請求路徑
     * 2. {id} {name} 就是占位變量
     * 3. @PathVariable("name"): 這里name 和{name} 命名保持一致,與注解內(nèi)的name一致
     * 4. String name_ 這里自定義,老師故意這樣寫下
     * 5. @PathVariable Map<String, String> map 把所有傳遞的值傳入map
     *    map = {name=king, id=100}
     * 6. 可以看下@PathVariable源碼
     */
    @GetMapping("/monster/{name}/{id}")
    public String pathVariable(@PathVariable("name")String name_,
                               @PathVariable("id")Integer id, @PathVariable Map<String,String> map){
        System.out.println("name = " + name);
        System.out.println("id = " + id);
        System.out.println("map = " + map);
        return "success";
    }

@RequestHeader注解

使用場景:解析請求頭信息

    /**
     *
     * 解讀:
     *  1.@RequestHeader獲取請求頭信息
     *  2,@RequestHeader("Host") String host:獲取請求頭host的信息
     *     2.1 @RequestHeader("Host"),@RequestHeader中的value值大小寫無差別
     *     2.2 String host:名字程序員自定義
     *  3.@RequestHeader Map<String,String> header:獲取到http請求頭的所有信息
     * @param host
     * @param header
     * @return
     */
    @RequestMapping("/requestHeader")
    public String requestHeader(@RequestHeader("Host") String host,
                                @RequestHeader Map<String,String> header){
        System.out.println("host = " + host);
        System.out.println("header = " + header);
        return "success";
    }

@RequestParam注解

使用場景:獲取請求參數(shù)信息

    /**
     *
     * 內(nèi)容:@RequestParam:獲取請求參數(shù)
     * 解讀:
     *  1.@RequestParam(value = "name",required = true) String username
     *    1.1 @RequestParam(value = "name":獲取參數(shù)名為name的值
     *    1.2 required = true,不允許不傳入該屬性的值,即可以不填寫該屬性會報錯
     *        required = false,即使沒有傳入該屬性,也不會報錯,值為null
     *  2.@RequestParam("fruit")List<String>fruits:當一個屬性有多個值的時候用List數(shù)組接收
     *  3.@RequestParam Map<String,String> paras:可以用Map集合接收所有數(shù)據(jù)
     *    注意:這樣寫有一個小問題,當一個值為數(shù)組類型(有多個數(shù)據(jù)的時候),只能接收第一個數(shù)據(jù)
     *    原因:因為Map的泛型為<String,String>,獲取的值是唯一的,不能接收數(shù)組或集合類型
     * @param username
     * @param fruits
     * @return
     */
    @RequestMapping("/requestParam")
    public String requestParam(@RequestParam(value = "name",required = true) String username,
                               @RequestParam("fruit")List<String>fruits,
                               @RequestParam Map<String,String> paras){
        System.out.println("username = " + username);
        System.out.println("fruits = " + fruits);
        System.out.println("paras = " + paras);
        return "success";
    }

SpringMVC自動封裝參數(shù)對象

    /**
     * 將獲取到的數(shù)據(jù)封裝成對象
     *  解讀:
     *   1.方法的形參用對應的類型來指定即可,SpringMVC會自動進行封裝
     *   2.如果是自動完成封裝,則需要提交的數(shù)據(jù)-參數(shù)名與對象的字段名保持一致
     *   3.如果屬性是對象,我們通過字段名.字段名的方式提交數(shù)據(jù)
     *     例如Master[pet],提交的數(shù)據(jù)名應該是 pet.id,pet.name等等【級聯(lián)操作】
     *   4.如果提交數(shù)據(jù)的參數(shù)名和對象的字段名不匹配,則對象的屬性值為null
     */
    @RequestMapping("/vote03")
    public String getPojoObject(Master master){
        System.out.println("master = " + master);
        return "success";
    }

@RequestBody

使用場景:前端傳來的是json數(shù)據(jù)

    /**
     * 1.@RequestBody User user在形參制定了@RequestBody注解
     * 2.springmvc就會將交提交的json字符串數(shù)據(jù)轉換成指定的javabean
     * 3.注意:前后端的屬性值應該匹配,否則會返回空
     * 4.如果沒有@RequestBody修飾,該屬性的前后端的值都為空。
     * @param user
     * @return
     */
    @ResponseBody
    @RequestMapping("json/user")
    public User UserHandler(@RequestBody User user) {
        //接收前臺傳入的json數(shù)據(jù),并以json的格式傳回瀏覽器
        System.out.println("user = " + user);
        return user;
    }

@CookieValue

使用場景:獲取cookie數(shù)據(jù)

    /**
     * 內(nèi)容:獲取cookie數(shù)據(jù)
     * 解讀:
     *  1.配置環(huán)境:我們在瀏覽器自己添加cookie,右鍵檢查,在存儲中添加(也可能在application)
     *  2.@CookieValue(value = "cookie_key",required = false) String cookie_value
     *    2.1 獲取名字為cookie_key的Cookie的value值
     *    2.2 String cookie_value,如果注解修飾的類型為String,則獲取的是Cookie對應的value值
     *  3.@CookieValue(value = "username",required = false)Cookie userCookie)
     *   3.1 獲取名字為username的Cookie對象
     *   3.2 Cookie userCookie,如果注解修飾的類型為Cookie,則獲取的是Cookie對象
     *  4.required = false:參數(shù)是否必須傳入,同@RequestParam
     *  5.也可以通過HttpServletRequest獲取cookie
     * @param cookie_value
     * @param userCookie
     * @return
     */
    @RequestMapping("/cookieValue")
    public String cookieValue(@CookieValue(value = "cookie_key",required = false) String cookie_value,
                              @CookieValue(value = "username",required = false)Cookie userCookie,
                              HttpServletRequest request){
        System.out.println("cookie_value = " + cookie_value);
        System.out.println("userCookie = " + userCookie);
        System.out.println("userCookie.getName() = " + userCookie.getName());
        System.out.println("userCookie.getValue() = " + userCookie.getValue());
        Cookie[] cookies = request.getCookies();
        for (Cookie cookie : cookies) {
            System.out.println("cookie = " + cookie);
        }
        return "success";
    }

級聯(lián)操作

應用場景:對象的屬性是另一個對象的實例

    /**
     * 將獲取到的數(shù)據(jù)封裝成對象
     *  解讀:
     *   1.方法的形參用對應的類型來指定即可,SpringMVC會自動進行封裝
     *   2.如果是自動完成封裝,則需要提交的數(shù)據(jù)-參數(shù)名與對象的字段名保持一致
     *   3.如果屬性是對象,我們通過字段名.字段名的方式提交數(shù)據(jù)
     *     例如Master[pet],提交的數(shù)據(jù)名應該是 pet.id,pet.name等等【級聯(lián)操作】
     *   4.如果提交數(shù)據(jù)的參數(shù)名和對象的字段名不匹配,則對象的屬性值為null
     */
    @RequestMapping("/vote03")
    public String getPojoObject(Master master){
        System.out.println("master = " + master);
        return "success";
    }

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

相關文章

  • 淺析java消息摘要與數(shù)字簽名

    淺析java消息摘要與數(shù)字簽名

    這篇文章給大家分析了關于java消息摘要與數(shù)字簽名的相關知識點內(nèi)容,有興趣的朋友們可以學習下。
    2018-08-08
  • 淺析java class 文件

    淺析java class 文件

    以下是對java中的class文件進行了詳細的介紹,需要的朋友可以過來參考下
    2013-08-08
  • SpringBoot controller接收txt文本文件實現(xiàn)方式

    SpringBoot controller接收txt文本文件實現(xiàn)方式

    文章介紹在Spring Boot Controller中接收文本文件的方法,需使用MultipartFile類并通過@RequestParam注解獲取,重點說明了獲取文件名、內(nèi)容及保存文件的常用方法,并強調(diào)MultipartFile為接口,需通過注解實例化
    2025-09-09
  • 使用logback配置按天和文件大小切割輸出日志

    使用logback配置按天和文件大小切割輸出日志

    這篇文章主要介紹了使用logback配置按天和文件大小切割輸出日志方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Springboot和Jpa實現(xiàn)學生CRUD操作代碼實例

    Springboot和Jpa實現(xiàn)學生CRUD操作代碼實例

    這篇文章主要介紹了Springboot和Jpa實現(xiàn)學生CRUD操作代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • java二叉查找樹的實現(xiàn)代碼

    java二叉查找樹的實現(xiàn)代碼

    這篇文章主要為大家詳細介紹了java二叉查找樹的實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • java為什么不建議用equals判斷對象相等

    java為什么不建議用equals判斷對象相等

    本文主要介紹了java為什么不建議用equals判斷對象相等,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • SpringMVC使用@ExceptionHandler注解在Controller中處理異常

    SpringMVC使用@ExceptionHandler注解在Controller中處理異常

    這篇文章主要為大家介紹了SpringMVC使用@ExceptionHandler注解在Controller中處理異常示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • WeakHashMap?和?HashMap?區(qū)別及使用場景

    WeakHashMap?和?HashMap?區(qū)別及使用場景

    這篇文章主要為大家介紹了WeakHashMap?和?HashMap?的區(qū)別是什么以及何時使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Java中List類的contains和indexOf方法的使用及區(qū)別

    Java中List類的contains和indexOf方法的使用及區(qū)別

    這篇文章主要介紹了Java中List類的contains和indexOf方法的使用及區(qū)別,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2026-03-03

最新評論

宁海县| 布拖县| 剑阁县| 客服| 太湖县| 新民市| 泸定县| 小金县| 九龙坡区| 云林县| 金塔县| 钟祥市| 厦门市| 商洛市| 孟州市| 贡觉县| 阳信县| 博罗县| 错那县| 广宗县| 乌拉特后旗| 资阳市| 福泉市| 昭苏县| 无极县| 隆林| 金山区| 谷城县| 靖安县| 夏津县| 桂东县| 威信县| 钟祥市| 舟山市| 萝北县| 图木舒克市| 包头市| 马公市| 上饶市| 台北市| 锡林浩特市|