SpringMVC獲取HTTP中元素的實(shí)現(xiàn)示例
一、獲取URL中的參數(shù)@PathVariable
path variable: 路徑變量。
@PathVariable這個(gè)注解可以拿到URL中的參數(shù),使用注意:
- 寫(xiě)在方法的參數(shù)名前,每個(gè)變量都要寫(xiě)。
- 當(dāng)URL中的變量與方法中的變量同名時(shí),可以不在@PathVariable寫(xiě)上URL的變量名。
- 當(dāng)要對(duì)拿到的URL變量重命名,要在@PathVariable()括號(hào)中寫(xiě)上URL的名字。
- URL中的參數(shù)必傳。
后端代碼:
Postman傳參:
二、上傳?件@RequestPart
- 上傳文件使用MuMultipartFile類(lèi)下的transferTo方法。
- 使用@RequestPart注解可以進(jìn)行重命名。
- 記得拋異常
后端代碼:
@RequestMapping("/r2") public String getFile(@RequestPart("file11") MultipartFile file) throws IOException { String fileName = file.getOriginalFilename(); file.transferTo(new File("E:/"+ file.getOriginalFilename())); return "上傳成功"+fileName; }
Postman傳參:
- 在Body里面找form-data傳File類(lèi)型。
三、獲取Cookie/Session
3.1 HttpServletRequest和 HttpServletResponse
- HttpServletRequest這個(gè)類(lèi)可以拿到HTTP請(qǐng)求中的東西。
- HttpServletResponse這個(gè)類(lèi)可以拿到HTTP響應(yīng)中的東西,還可以進(jìn)行修改。
3.2 獲取Cookie
獲取Cookie有以下兩種方式。
3.2.1 使用HttpServletRequest
只需要調(diào)用該類(lèi)下的getCookies方法即可。
@RequestMapping("r3") public String r3 (HttpServletRequest request) { Cookie[] cookies = request.getCookies(); return "獲取成功"; }
Postman發(fā)請(qǐng)求:
3.2.2 使用注解@CookieValue
在注解中寫(xiě)下Cookie中變量的名,然后后面跟著要賦值的變量類(lèi)型與名字。
這種方法每次只能獲得一個(gè)Cookie變量。
@RequestMapping("/r4") public String r4(@CookieValue("name") String name) { return name; }
Postman發(fā)請(qǐng)求:
3.3 設(shè)置session
使用HttpServletRequest下的getSession方法,拿到sessionId,拿到session。
HttpSession getSession(boolean create);
- 默認(rèn)為true,如果沒(méi)有拿到session,返回一個(gè)空HttpSession對(duì)象。
- 如果為false,沒(méi)有拿到session,返回一個(gè)null。
代碼:
@RequestMapping("/r5") public String setSession(HttpServletRequest request) { HttpSession session = request.getSession(); session.setAttribute("name","lisi"); session.setAttribute("age","88"); return "設(shè)置成功"; }
3.4 獲取session
獲取session有以下三種方式。
3.4.1 使用HttpServletRequest
使用HttpServletRequest類(lèi)下的getSession方法拿到session,
再通過(guò)HttpSession 類(lèi)下的方法getAttribute獲取session中的對(duì)象 Object getAttribute(String name);
。
代碼:
@RequestMapping("/r6") public String r5(HttpServletRequest request) { HttpSession session = request.getSession(false); if (null == session) { return "用戶未登錄"; } else { return "用戶名:"+(String) session.getAttribute("name") + "用戶年齡"+(String) session.getAttribute("age"); } }
Postman傳參:
3.4.2 直接使用HttpSession
相當(dāng)于HttpSession session = request.getSession();
直接在方法參數(shù)完成。
@RequestMapping("/r8") public String r5(HttpSession session ) { if (null == session) { return "用戶未登錄"; } else { return "用戶名:"+(String) session.getAttribute("name") + "用戶年齡"+(String) session.getAttribute("age"); } }
3.4.3 使用注解@SessionValue
注解中value代表:session中的對(duì)象, required 調(diào)配沒(méi)拿到session時(shí)返回什么,true返回空HttpSession對(duì)象,false返回null。
代碼:
@RequestMapping("r7") public String r6(@SessionAttribute(value = "name",required = false) String name) { System.out.println(name); return name; }
Postman傳參:
四、獲取Header
獲取session有以下兩種方式。
4.1 使用HttpServletRequest
使用HttpServletRequest類(lèi)下的getHeader方法,方法中填入想要的header中的參數(shù)名稱(chēng),拿到header下的參數(shù)。
代碼:
@RequestMapping("/r9") public String getHeader(HttpServletRequest request) { String header = request.getHeader("user-agent"); return "獲取到 "+header; }
Postman傳參:
4.2 使用注解@RequestHeader
在注解中寫(xiě)下Header中參數(shù)的名,然后后面跟著要賦值給的變量類(lèi)型與名字。
代碼:
@RequestMapping("/r10") public String getHeader2(@RequestHeader("user-agent") String header) { return "獲取到 "+header; }
Postman傳參:
到此這篇關(guān)于SpringMVC獲取HTTP中元素的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)SpringMVC獲取HTTP元素內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 如何基于SpringMVC實(shí)現(xiàn)斷點(diǎn)續(xù)傳(HTTP)
- springmvc HttpServletRequest 如何獲取c:forEach的值
- SpringMVC @RequestBody自動(dòng)轉(zhuǎn)json Http415錯(cuò)誤的解決
- SpringMVC HttpMessageConverter消息轉(zhuǎn)換器
- springMVC中HttpMessageConverter的具體使用
- SpringMVC4.3?HttpMessageConverter接口實(shí)現(xiàn)源碼分析
- SpringMVC中處理Http請(qǐng)求的原理詳解
- 詳解springmvc如何處理接受http請(qǐng)求
相關(guān)文章
Spring Boot使用yml格式進(jìn)行配置的方法
很多springboot項(xiàng)目使用的是yml格式,主要目的是方便對(duì)讀懂其他人的項(xiàng)目,下面小編通過(guò)本文給大家分享Spring Boot使用yml格式進(jìn)行配置的方法,需要的朋友參考下吧2018-04-0416個(gè)SpringBoot擴(kuò)展接口的總結(jié)和實(shí)例
Spring Boot是一個(gè)開(kāi)源的Java框架,它簡(jiǎn)化了基于Spring的應(yīng)用程序的開(kāi)發(fā)和部署,它提供了許多強(qiáng)大的特性和擴(kuò)展接口,本文給大家介紹了16個(gè)常用的Spring Boot擴(kuò)展接口,需要的朋友可以參考下2023-09-09Java?EasyExcel實(shí)現(xiàn)合并相同內(nèi)容單元格與動(dòng)態(tài)標(biāo)題功能
這篇文章主要為大家詳細(xì)介紹了Java?EasyExcel如何實(shí)現(xiàn)合并相同內(nèi)容單元格與動(dòng)態(tài)標(biāo)題功能,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考下2023-12-12Java簡(jiǎn)單實(shí)現(xiàn)農(nóng)夫過(guò)河問(wèn)題示例
這篇文章主要介紹了Java簡(jiǎn)單實(shí)現(xiàn)農(nóng)夫過(guò)河問(wèn)題,簡(jiǎn)單描述了農(nóng)夫過(guò)河問(wèn)題的概念、原理并結(jié)合簡(jiǎn)單實(shí)例形式分析了java解決農(nóng)夫過(guò)河問(wèn)題的相關(guān)操作技巧,需要的朋友可以參考下2017-12-12java中Webclient對(duì)象如何解析400狀態(tài)碼詳解
這篇文章主要介紹了java中Webclient對(duì)象如何解析400狀態(tài)碼的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-12-12代碼詳解Java猴子選王問(wèn)題(約瑟夫環(huán))
本篇文章通過(guò)實(shí)例給大家分析了java約瑟夫環(huán)這個(gè)經(jīng)典內(nèi)容,有興趣的跟著小編一起學(xué)習(xí)下吧。2018-02-02Java與Android使用監(jiān)聽(tīng)者模式示例
這篇文章主要為大家介紹了Java與Android使用監(jiān)聽(tīng)者模式示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08Windows系統(tǒng)中Java調(diào)用cmd命令及執(zhí)行exe程序的方法
這篇文章主要介紹了Windows系統(tǒng)中Java調(diào)用cmd命令及執(zhí)行exe程序的方法,主要用到了IOException類(lèi),需要的朋友可以參考下2016-03-03java集合框架的體系結(jié)構(gòu)詳細(xì)說(shuō)明
最近在一本J2EE的書(shū)中看到了很不錯(cuò)的對(duì)集合框架的說(shuō)明文章2012-11-11