Java接收前端請求體的多種方式總結(jié)
前言
請求體(Request Body)是HTTP請求中的一部分,用于傳輸請求的數(shù)據(jù);在HTTP請求中,請求體通常用于POST、PUT等需要傳遞數(shù)據(jù)的請求方法
- 表單數(shù)據(jù)(Form Data):請求體以鍵值對的形式表示,使用
&
符號分隔不同字段;例如:username=johndoe&password=123456
- JSON數(shù)據(jù):請求體以JSON(JavaScript Object Notation)格式表示,通常用于傳遞結(jié)構(gòu)化的數(shù)據(jù);例如:
{"name": "John Doe", "email": "johndoe@example.com"}
- 文件上傳:請求體用于傳輸文件的二進(jìn)制數(shù)據(jù);通常會使用特定的編碼方式對文件進(jìn)行處理,如multipart/form-data
@RequestBody
@RequestBody
:Spring框架中用于接收前端請求體的注解,可以將請求體的內(nèi)容綁定到Java對象中
http://localhost:8080/api/search?code=123
@GetMapping("/search") public void handleRequest(@RequestParam("code") String code) { // 處理路徑參數(shù) }
@PathVariable
@PathVariable
:Java中接收前端請求中的路徑參數(shù);路徑參數(shù)是指URL中的一部分,它們以占位符的形式存在于API的URL中,可以在Java代碼中動態(tài)獲取和使用
http://localhost:8080/api/example/123
@GetMapping("/example/{id}") public void handleRequest(@PathVariable("id") String id) { // 處理路徑參數(shù) }
@RequestParam
@RequestParam
注解:接收查詢字符串參數(shù)或表單參數(shù);可以將請求中的參數(shù)值綁定到方法的參數(shù)上;該方式適用于獲取特定參數(shù)的值
@RequestParam(value="參數(shù)名",required="true/false",defaultValue="") // value:參數(shù)名 // required:是否包含該參數(shù),默認(rèn)為true:請求路徑必須包含該參數(shù),否則報錯 // defaultValue:默認(rèn)參數(shù)值,如果設(shè)置了該值,required=true將失效,自動為false,如果沒有傳該參數(shù),就使用默認(rèn)值
http://localhost:8080/api/example?id=123
@GetMapping("/example") public void handleRequest(@RequestParam(value="id",required="true")) { // 處理路徑參數(shù) }
http://localhost:8080/api/example?123 required= false:表示請求中可以沒有該參數(shù),方法參數(shù)將被設(shè)置為 null
@GetMapping("/example") public void handleRequest(@RequestParam(value="id",required="false")) { // 處理路徑參數(shù) }
http://localhost:8080/api/example?id=1 defaultValue="hello":接受參數(shù)默認(rèn)為123,有參數(shù)傳遞則為請求參數(shù)
@GetMapping("/example") public void handleRequest(@RequestParam(value="id",required="false",defaultValue="123")) { // 處理路徑參數(shù) }
@Validated
@Validated
注解:方法參數(shù)或方法返回值進(jìn)行校驗(yàn)
方法參數(shù)校驗(yàn)
方法參數(shù)校驗(yàn),應(yīng)用于控制器的處理方法,驗(yàn)證傳入?yún)?shù)是否滿足指定校驗(yàn)規(guī)則
@Validated
注解應(yīng)用在方法的參數(shù)上,對request
參數(shù)進(jìn)行校驗(yàn);校驗(yàn)的規(guī)則可以通過在RequestDto
類的屬性上使用注解@NotNull
、@NotBlank
等定義
@PostMapping("/example") public void handleRequest(@Validated @RequestBody RequestDto request) { // 處理請求 }
方法返回值校驗(yàn)
處理方法的執(zhí)行完畢,可以對方法返回對象進(jìn)行校驗(yàn),確保返回數(shù)據(jù)滿足指定校驗(yàn)規(guī)則
@Validated
注解應(yīng)用在方法的返回值上,對ResponseDto
對象進(jìn)行校驗(yàn);校驗(yàn)規(guī)則通過ResponseDto
類的屬性上使用注解來定義
@GetMapping("/example/{id}") public @Validated ResponseDto handleRequest(@PathVariable("id") String id) { // 處理請求 return responseDto; }
@RequestHeader
@RequestHeader
注解:接收請求頭的值,可以將請求頭中指定的信息綁定到方法的參數(shù)上
@GetMapping("/example") public void handleRequest(@RequestHeader("User-Agent") String userAgent) { // 處理請求頭的值 }
@HttpServletRequest
@HttpServletRequest注解:方法參數(shù)中注入HttpServletRequest
對象,通過它來獲取完整的請求信息,包括請求體、請求頭、路徑參數(shù)和查詢字符串參數(shù)等
@PostMapping("/example") public void handleRequest(HttpServletRequest request) { // 處理請求信息 }
總結(jié)
到此這篇關(guān)于Java接收前端請求體的多種方式的文章就介紹到這了,更多相關(guān)Java接收前端請求體內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java ffmpeg 實(shí)現(xiàn)視頻加文字/圖片水印功能(示例代碼)
本文介紹了使用Java和ffmpeg庫實(shí)現(xiàn)視頻加文字或圖片水印的方法,通過引入依賴代碼和示例,詳細(xì)說明了如何將文字水印和圖片水印添加到視頻中,為需要在視頻中加入水印的開發(fā)者提供了實(shí)用的指導(dǎo),這種方法不僅增強(qiáng)了視頻內(nèi)容的版權(quán)保護(hù),也為視頻編輯提供了更多的可能性2024-10-10springboot實(shí)現(xiàn)maven多模塊和打包部署
本文主要介紹了springboot實(shí)現(xiàn)maven多模塊和打包部署,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04Java 處理高并發(fā)負(fù)載類優(yōu)化方法案例詳解
這篇文章主要介紹了Java 處理高并發(fā)負(fù)載類優(yōu)化方法案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08JVM教程之Java代碼編譯和執(zhí)行的整個過程(二)
這篇文章主要介紹了JVM學(xué)習(xí)筆記第二篇,關(guān)于Java代碼編譯和執(zhí)行的整個過程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03Jmeter分布式壓力測試實(shí)現(xiàn)過程詳解
這篇文章主要介紹了Jmeter分布式壓力測試實(shí)現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-09-09