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"} - 文件上傳:請求體用于傳輸文件的二進制數(shù)據(jù);通常會使用特定的編碼方式對文件進行處理,如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ù),默認為true:請求路徑必須包含該參數(shù),否則報錯 // defaultValue:默認參數(shù)值,如果設(shè)置了該值,required=true將失效,自動為false,如果沒有傳該參數(shù),就使用默認值
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ù)默認為123,有參數(shù)傳遞則為請求參數(shù)
@GetMapping("/example")
public void handleRequest(@RequestParam(value="id",required="false",defaultValue="123")) {
// 處理路徑參數(shù)
}@Validated
@Validated注解:方法參數(shù)或方法返回值進行校驗
方法參數(shù)校驗
方法參數(shù)校驗,應(yīng)用于控制器的處理方法,驗證傳入?yún)?shù)是否滿足指定校驗規(guī)則
@Validated注解應(yīng)用在方法的參數(shù)上,對request參數(shù)進行校驗;校驗的規(guī)則可以通過在RequestDto類的屬性上使用注解@NotNull、@NotBlank等定義
@PostMapping("/example")
public void handleRequest(@Validated @RequestBody RequestDto request) {
// 處理請求
}方法返回值校驗
處理方法的執(zhí)行完畢,可以對方法返回對象進行校驗,確保返回數(shù)據(jù)滿足指定校驗規(guī)則
@Validated注解應(yīng)用在方法的返回值上,對ResponseDto對象進行校驗;校驗規(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實現(xiàn)區(qū)域內(nèi)屏幕截圖示例
這篇文章主要介紹了java截圖示例,需要的朋友可以參考下2014-04-04
Java 數(shù)據(jù)結(jié)構(gòu)與算法系列精講之背包問題
背包問題是一個非常典型的考察動態(tài)規(guī)劃應(yīng)用的題目,對其加上不同的限制和條件,可以衍生出諸多變種,若要全面理解動態(tài)規(guī)劃,就必須對背包問題了如指掌2022-02-02
JavaWeb入門:HttpResponse和HttpRequest詳解
這篇文章主要介紹了Django的HttpRequest和HttpResponse對象,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下2021-07-07
Spring MVC參數(shù)校驗詳解(關(guān)于`@RequestBody`返回`400`)
這篇文章主要介紹了Spring MVC參數(shù)校驗的相關(guān)資料,主要是針對`@RequestBody`返回`400`的問題,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面跟著小編來一起學習學習吧。2017-08-08
springboot+jwt+springSecurity微信小程序授權(quán)登錄問題
這篇文章主要介紹了springboot+jwt+springSecurity微信小程序授權(quán)登錄問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01

