国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring MVC -- 獲取參數(shù)(普通對象+JSON對象+URL地址參數(shù)+文件+Cookie/Session/Header)

這篇具有很好參考價值的文章主要介紹了Spring MVC -- 獲取參數(shù)(普通對象+JSON對象+URL地址參數(shù)+文件+Cookie/Session/Header)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

1.獲取參數(shù)

1.1獲取單個參數(shù)

1.2獲取多個參數(shù)

傳參注意事項:

2.獲取對象

?3.后端參數(shù)重命名@RequestParam

4.獲取JSON對象@RequestBody

5.從 URL 地址中獲取參數(shù) @PathVariable

6.上傳文件 @RequestPart

7.獲取Cookie/Session/Header

7.1 獲取 Request 和 Response 對象

7.2 獲取Cookie

(1)Servlet 獲取 Cookie 的方法

?(2)使用 @CookieValue 注解實現(xiàn) Cookie 的讀取

7.3 獲取Header(請求頭)中信息

(1)Servlet 獲取 Header 的方法

?(2)使用 @RequestHeader 注解實現(xiàn) Header 的獲取

7.4 存儲和獲取 Session

(1)Session 存儲和 Servlet 類似,是使? HttpServletRequest 中獲取的

(2)獲取 Session 方法1(Servlet 模式)

(3)獲取 Seesion 方法2:@SessionAttribute


1.獲取參數(shù)

1.1獲取單個參數(shù)

在 Spring MVC 中可以直接用方法中的參數(shù)來實現(xiàn)傳參:

   @GetMapping("/hi") //等于@RequestMapping("/hi")
   //都能實現(xiàn)映射的功能
    public String sayHi(String name) {
        return "Hi:" + name;
    }

Spring MVC -- 獲取參數(shù)(普通對象+JSON對象+URL地址參數(shù)+文件+Cookie/Session/Header),spring,mvc,json,spring boot,java,后端

1.2獲取多個參數(shù)

  @GetMapping("/hi") //等于@RequestMapping("/hi")
  //都能實現(xiàn)映射的功能
    public String sayHi(String name,Integer v) {
        return "Hi:" + name + "  v:" + v;
    }

Spring MVC -- 獲取參數(shù)(普通對象+JSON對象+URL地址參數(shù)+文件+Cookie/Session/Header),spring,mvc,json,spring boot,java,后端

傳參注意事項:

在 Spring Boot(Spring MVC) 中傳參一定要傳包裝類型,而非基礎(chǔ)類型,否則傳一個空的值就會出錯, 并且這里的參數(shù)一定要和前端傳遞的參數(shù)名保持一致,否則就獲取不到參數(shù)的值了

2.獲取對象

并且Spring MVC可以自動實現(xiàn)參數(shù)對象的賦值,比如User對象;

@Data
public class User {
    private int id;
    private String name;
    private int age;
    //....
}
//普通對象
    @GetMapping("/show-User")
    public String showUser(User user){
        return user.toString();
    }

?Spring MVC -- 獲取參數(shù)(普通對象+JSON對象+URL地址參數(shù)+文件+Cookie/Session/Header),spring,mvc,json,spring boot,java,后端

?3.后端參數(shù)重命名@RequestParam

有些特殊情況下,前端傳遞的參數(shù) key 和我們后端接收的 key 可以不一致,比如前端傳遞了一個 time 給后端,而后端又是用 createtime 字段來接收的,這樣就會出現(xiàn)參數(shù)接收不到的情況,如果出現(xiàn)這種情況,我們就可以使用 @RequestParam 來重命名前后端的參數(shù)值

@GetMapping("/show-Time")
    public String showTime(@RequestParam("t") String startTime,
                           @RequestParam(value = "t2") String endTime){

        return "開始時間:" + startTime +" 結(jié)束時間:" + endTime ;
    }

Spring MVC -- 獲取參數(shù)(普通對象+JSON對象+URL地址參數(shù)+文件+Cookie/Session/Header),spring,mvc,json,spring boot,java,后端

?注意:

我們觀察@RequestParam源碼可以看到:

Spring MVC -- 獲取參數(shù)(普通對象+JSON對象+URL地址參數(shù)+文件+Cookie/Session/Header),spring,mvc,json,spring boot,java,后端

?這里代表如果使用@RequestParam的話,前端一定要傳遞參數(shù),否則就會報錯,但是如果我們在代碼中加入Spring MVC -- 獲取參數(shù)(普通對象+JSON對象+URL地址參數(shù)+文件+Cookie/Session/Header),spring,mvc,json,spring boot,java,后端

就可以不用帶參數(shù)了

4.獲取JSON對象@RequestBody

服務(wù)器端實現(xiàn) JSON 數(shù)據(jù)的接收需要使用 @RequestBody 注解:

    //接收json對象(和第三方系統(tǒng)通訊時常見的場景)
    @PostMapping("/show-jsonUser")//@RequestBody指定的就是接受一個json對象,需要配合PostMapping來使用
    public String showJsonUser(@RequestBody User user){
        return user.toString();
    }

Spring MVC -- 獲取參數(shù)(普通對象+JSON對象+URL地址參數(shù)+文件+Cookie/Session/Header),spring,mvc,json,spring boot,java,后端

5.從 URL 地址中獲取參數(shù) @PathVariable

Spring MVC -- 獲取參數(shù)(普通對象+JSON對象+URL地址參數(shù)+文件+Cookie/Session/Header),spring,mvc,json,spring boot,java,后端

Spring MVC -- 獲取參數(shù)(普通對象+JSON對象+URL地址參數(shù)+文件+Cookie/Session/Header),spring,mvc,json,spring boot,java,后端

6.上傳文件 @RequestPart

@RequestMapping("/upfile")
    public String upfile(@RequestPart("myfile")MultipartFile file) throws IOException {
        String path = "D:\\Desktop\\img.png";
        //保存文件
        file.transferTo(new File(path));
        return path;
    }

Spring MVC -- 獲取參數(shù)(普通對象+JSON對象+URL地址參數(shù)+文件+Cookie/Session/Header),spring,mvc,json,spring boot,java,后端

文件上傳我們使用這樣的方法的話就存在一個問題:我們傳輸文件的地址是固定的,當(dāng)李四傳輸了文件,張三再傳輸?shù)臅r候,李四傳輸?shù)奈募捅桓采w了

7.獲取Cookie/Session/Header

7.1 獲取 Request 和 Response 對象

@GetMapping("/getparam")
    //HttpServletRequest req 是spring boot/spring MVC 內(nèi)置的,不用去傳,當(dāng)其項目啟動的時候就直接注入了,不用傳,本身就有
    //HttpServletRespond 同樣也內(nèi)置了
    public String getParam(HttpServletRequest req){
        return req.getParameter("username");
    }

7.2 獲取Cookie

(1)Servlet 獲取 Cookie 的方法

 @RequestMapping("/getck")
    public String getCookie(HttpServletRequest request){
        Cookie[] cookies = request.getCookies();
        for (Cookie item:cookies){
            log.error(item.getName() + ":" + item.getValue());
        }
        return "get Cookie!";
    }

?(2)使用 @CookieValue 注解實現(xiàn) Cookie 的讀取

 @RequestMapping("/getck2")
    public String getCookie2(@CookieValue("awen") String val){
        return "Cookie value" + val;
    }

這里我是手動在瀏覽器中加入Cookie信息的

7.3 獲取Header(請求頭)中信息

(1)Servlet 獲取 Header 的方法

 @RequestMapping("/getUa")
    public String gerUa(@RequestHeader("user-agent") String userAgent){
        return userAgent;
    }

?(2)使用 @RequestHeader 注解實現(xiàn) Header 的獲取

    @RequestMapping("getua2")
    public String getHead(@RequestHeader("User-Agent")String userAgent) {
        return "header: " + userAgent;
    }

7.4 存儲和獲取 Session

獲取session:

和servlet時代存session是一樣的,沒有注解

存session信息:

(1)Session 存儲和 Servlet 類似,是使? HttpServletRequest 中獲取的

  @RequestMapping("/setsess")
    //存session
    public String setSession(HttpServletRequest request){
        HttpSession session = request.getSession(true);
        session.setAttribute("userinfo","userinfo");
        return "Set Session Succeed";
    }

(2)獲取 Session 方法1(Servlet 模式)

  @RequestMapping("/getsess")
    public String getSession(HttpServletRequest request){
        HttpSession session = request.getSession(false);//一定要加false
        if (session !=null && session.getAttribute("userinfo") != null){
            return (String) session.getAttribute("userinfo");
        }else {
            return "暫無 Session 信息";
        }
    }

(3)獲取 Seesion 方法2:@SessionAttribute

  @RequestMapping("getsess2")
    //false 表示沒有這個session也行
    public String getSession2(@SessionAttribute(value = "userinfo",required = false)String userinfo){
        return userinfo;
    }

我們觀測到@SessionAttribute的源碼中:

Spring MVC -- 獲取參數(shù)(普通對象+JSON對象+URL地址參數(shù)+文件+Cookie/Session/Header),spring,mvc,json,spring boot,java,后端

意味著必須要有屬性,通常情況下需要添加 required = false ,如果不添加,那么當(dāng) session 中不存在此屬性的時候程序運行就會報錯文章來源地址http://www.zghlxwxcb.cn/news/detail-602456.html

到了這里,關(guān)于Spring MVC -- 獲取參數(shù)(普通對象+JSON對象+URL地址參數(shù)+文件+Cookie/Session/Header)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 獲取url地址后面參數(shù)的2種方法(小程序二維碼跳轉(zhuǎn)參數(shù)解析)

    ????????微信掃描小程序二維碼后,在頁面的onLoad函數(shù)的參數(shù)options內(nèi)可以拿到跳轉(zhuǎn)參數(shù)scene值,但是需要對scene進(jìn)行decodeURIComponent操作,方法如下: 方法一: 方法二:

    2024年02月17日
    瀏覽(27)
  • vue 中從后端獲取到文件的 url 地址,前端根據(jù) url 地址下載文件

    vue 中從后端獲取到文件的 url 地址,前端根據(jù) url 地址下載文件

    項目用的是 vben admin 框架,用的是 vue3 + TS 項目需求數(shù)據(jù)導(dǎo)出功能,前端需要實現(xiàn)文件下載功能 后端返回的是文件的 url 地址 (本項目中返回的是阿里云 oss 的文件地址) 從后端得到的是一個 url 地址,先通過 fetch api 請求這個 url 地址并轉(zhuǎn)換成 blob 對象,通過 URL.createObjectUrl() 將 blo

    2024年02月06日
    瀏覽(28)
  • js 通過文件地址URL轉(zhuǎn)為File文件對象

    通過文件地址URL,將所指文件轉(zhuǎn)為File文件對象 文件url地址轉(zhuǎn)為文件對象,代碼如下(調(diào)用即可): 2.調(diào)用方式 代碼如下(示例):

    2024年02月10日
    瀏覽(92)
  • Java 根據(jù)網(wǎng)絡(luò)地址URL獲取文件

    系統(tǒng)需要根據(jù)提供的文件地址URL獲取該文件,代碼實現(xiàn)如下:

    2024年02月11日
    瀏覽(22)
  • Spring MVC獲取參數(shù)和自定義參數(shù)類型轉(zhuǎn)換器及編碼過濾器

    Spring MVC獲取參數(shù)和自定義參數(shù)類型轉(zhuǎn)換器及編碼過濾器

    目錄 ? 一、使用Servlet原生對象獲取參數(shù) 1.1?控制器方法 1.2?測試結(jié)果 二、自定義參數(shù)類型轉(zhuǎn)換器 2.1?編寫類型轉(zhuǎn)換器類 2.2?注冊類型轉(zhuǎn)換器對象? 2.3?測試結(jié)果? 三、編碼過濾器 3.1?JSP表單 3.2?控制器方法 3.3?配置過濾器 3.4 測試結(jié)果? 往期專欄文章相關(guān)導(dǎo)讀? 1. Maven系列專

    2024年02月10日
    瀏覽(32)
  • 【Spring MVC】獲取 @RequsetBody 標(biāo)識的對象,使用適配器模式增加代碼可讀性

    【Spring MVC】獲取 @RequsetBody 標(biāo)識的對象,使用適配器模式增加代碼可讀性

    一個技術(shù)需求引發(fā)的思考和實踐: 思考 用 AOP 把校驗代碼 實踐 用 Spring MVC 的 RequestBodyAdvice 做AOP邏輯 繼承 RequestBodyAdviceAdapter 實現(xiàn)自己的 適配器 用自己的適配器讓代碼可讀性增加 熟悉 Spring MVC 、Java 反射的一些實踐 本文內(nèi)容 澄清一個AOP校驗JSON內(nèi)容的思路 復(fù)習(xí)適配器模式

    2024年02月10日
    瀏覽(24)
  • Spring Batch 作業(yè)對象-作業(yè)參數(shù)設(shè)置與獲取

    Spring Batch 作業(yè)對象-作業(yè)參數(shù)設(shè)置與獲取

    目錄 引言 JobParameters 作業(yè)參數(shù)設(shè)置 作業(yè)參數(shù)獲取 方案1:使用ChunkContext類 ? 方案2:使用@Value 延時獲取 轉(zhuǎn)視頻版 書接上篇Spring Batch批處理-作業(yè)Job簡介,上篇帶小伙伴們了解色作業(yè)Job對象,那這篇就看一下作業(yè)參數(shù)是啥一回事,同時要怎么設(shè)置參數(shù)并獲取參數(shù)的。 前面提到

    2023年04月15日
    瀏覽(22)
  • 【Spring Boot】請求參數(shù)傳json對象,后端采用(pojo)CRUD案例(102)

    【Spring Boot】請求參數(shù)傳json對象,后端采用(pojo)CRUD案例(102)

    請求參數(shù)傳json對象,后端采用(pojo)接收的前提條件: 1.pom.xml文件加入坐標(biāo)依賴:jackson-databind 2.Spring Boot 的啟動類加注解:@EnableWebMvc 3.Spring Boot 的Controller接受參數(shù)采用:@RequestBody 4.postman入?yún)⒉捎胘son格式 1.pom.xml文件加入坐標(biāo): 2.Spring Boot 啟動類:加注解:@EnableWebMvc POJO類

    2024年02月14日
    瀏覽(16)
  • Spring-Cloud-Gateway修改請求(json,form帶文件請求)參數(shù),返回值參數(shù)

    新項目需要在getway統(tǒng)一做入?yún)?、出參加解密,記錄日志。記錄一下form,x-www-form-urlencoded , json 這幾種修改數(shù)據(jù)的方式。 gateway做攔截器是實現(xiàn)GlobalFilter接口,修改json方式網(wǎng)上有很多文章,后來又想研究研究能不能實現(xiàn)修改form-data參數(shù),以及文件請求,后者文章不多大部分是怎

    2024年02月16日
    瀏覽(28)
  • springBoot 配置文件 spring.mvc.throw-exception-if-no-handler-found 參數(shù)的作用

    springBoot 配置文件 spring.mvc.throw-exception-if-no-handler-found 參數(shù)的作用

    在Spring Boot應(yīng)用中,可以通過配置文件來控制當(dāng)找不到請求處理器(handler)時是否拋出異常。具體的配置參數(shù)是 spring.mvc.throw-exception-if-no-handler-found 。 默認(rèn)情況下,該參數(shù)的值為 false ,即當(dāng)找不到請求處理器時,Spring MVC會返回404 Not Found響應(yīng)。如果將該參數(shù)設(shè)置為 true ,則當(dāng)

    2024年02月12日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包