Java后臺(tái)接收數(shù)據(jù)的三種方式(url、form-data與application/json)
url傳參的方式
/** * 請(qǐng)求路徑:http://localhost:8080/hello/show5/1/james */ @PostMapping("show5/{id}/{name}") public void test5(@PathVariable("id") Long ids, @PathVariable("name") String names){ }
以form_data方式傳輸
@PostMapping("/add/user") public JSONObject addUser(User param){ return userService.addUser(param); }
字段接收-形參
/** * @RequestParam() 里邊的值必須要和前端傳遞過(guò)來(lái)的參數(shù)名字相同 */ @PostMapping public String testUser(@RequestParam("name") String a, @RequestParam("phone") String b, String password){ return "ok"; }
以json數(shù)據(jù)傳輸
@PostMapping("/add/user") public JSONObject addUser(@RequestBody User param){ return userService.addUser(param); }
其實(shí)還有一種以前用過(guò)的請(qǐng)求方式:HttpServerletRequest.getParameter("name"),不常用
注解
@RequestParam
作用:將指定的請(qǐng)求參數(shù)賦值給方法中的形參
- 指定的參數(shù)可以是普通元素、數(shù)組、集合、對(duì)象等等
- 一個(gè)請(qǐng)求——》可以有多個(gè)@RequestParam
語(yǔ)法:@RequestParam(value="參數(shù)名",required="true/false",defaultValue="")
value:參數(shù)名
required:是否包含該參數(shù),默認(rèn)為true,表示該請(qǐng)求路徑中必須包含該參數(shù),如果不包含就報(bào)錯(cuò)。
defaultValue:默認(rèn)參數(shù)值,如果設(shè)置了該值,required=true將失效,自動(dòng)為false,如果沒(méi)有傳該參數(shù),就使用默認(rèn)值
示例:
@PostMapping("/test") public void test(@RequestParam(required = true)String name) { }
@RequestBody
作用:接收前端傳遞的Json對(duì)象的字符串。(請(qǐng)求體中的數(shù)據(jù))
- Post請(qǐng)求,GET方式無(wú)請(qǐng)求體,所以使用@RequestBody接收數(shù)據(jù)時(shí),前端不能使用GET方式提交數(shù)據(jù)
- 一個(gè)請(qǐng)求——》只有一個(gè)@RequestBody
@PathVariable
作用:接收請(qǐng)求路徑中占位符的值。
Get路徑請(qǐng)求
語(yǔ)法:@RequestMapping(value=”user/{userId}/{userName}”) 示例: /** * 請(qǐng)求路徑:http://localhost:8080/hello/show5/1/james */ @PostMapping("show5/{id}/{name}") public void test5(@PathVariable("id") Long ids, @PathVariable("name") String names){ }
formdata和json的區(qū)別
Content-Type(內(nèi)容類型)
語(yǔ)法格式:
Content-Type: text/html; charset=utf-8 Content-Type: multipart/form-data; boundary=something
常見(jiàn)的媒體格式類型:
- text/html : HTML格式
- text/plain :純文本格式
- text/xml : XML格式
- image/gif :gif圖片格式
- image/jpeg :jpg圖片格式
- image/png:png圖片格式
以application開(kāi)頭的媒體格式類型:
- application/xhtml+xml :XHTML格式
- application/xml: XML數(shù)據(jù)格式
- application/atom+xml :Atom XML聚合格式
- application/json: JSON數(shù)據(jù)格式
- application/pdf:pdf格式
- application/msword : Word文檔格式
- application/octet-stream : 二進(jìn)制流數(shù)據(jù)(如常見(jiàn)的文件下載)
- application/x-www-form-urlencoded : 中默認(rèn)的encType,form表單數(shù)據(jù)被編碼為key/value格式發(fā)送到服務(wù)器(表單默認(rèn)的提交數(shù)據(jù)的格式)
另外一種常見(jiàn)的媒體格式是上傳文件之時(shí)使用的:
- multipart/form-data : 需要在表單中進(jìn)行文件上傳時(shí),就需要使用該格式
formdata:
常用有兩種: application/x-www-form-urlencoded 和 multipart/form-data , 默認(rèn)為application/x-www-form-urlencoded
- multipart/form-data:既可以上傳文件等二進(jìn)制數(shù)據(jù),也可以上傳表單鍵值對(duì),只是最后會(huì)轉(zhuǎn)化為一條信息;
- x-www-form-urlencoded:只能上傳鍵值對(duì),并且鍵值對(duì)都是間隔分開(kāi)的
json:
application/json: JSON數(shù)據(jù)格式,將數(shù)據(jù)進(jìn)行序列化的一種方式,后端可以直接使用
關(guān)于post請(qǐng)求能用@pathVariable注解的嘗試
正常來(lái)說(shuō)這個(gè)注解習(xí)慣使用在get請(qǐng)求上, 之前偷懶代碼貼出的是post, 關(guān)于此項(xiàng)的疑惑做個(gè)嘗試
找個(gè)controller復(fù)制過(guò)來(lái)之前的代碼
啟動(dòng)項(xiàng)目, 端口80, 打開(kāi)postman, 發(fā)送請(qǐng)求
控制臺(tái)
@PathVariable是spring3.0的新功能:接收請(qǐng)求路徑中占位符的值, 請(qǐng)求方式post, get, put等都可以
到此這篇關(guān)于Java后臺(tái)接收數(shù)據(jù)的三種方式(url、form-data與application/json)的文章就介紹到這了,更多相關(guān)Java后臺(tái)接收數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- java?11新特性HttpClient主要組件及發(fā)送請(qǐng)求示例詳解
- Java通過(guò)httpclient比較重定向和請(qǐng)求轉(zhuǎn)發(fā)
- Java HttpClient執(zhí)行請(qǐng)求時(shí)配置cookie流程詳細(xì)講解
- Java HttpClient-Restful工具各種請(qǐng)求高度封裝提煉及總結(jié)
- java中httpclient封裝post請(qǐng)求和get的請(qǐng)求實(shí)例
- java爬蟲(chóng)之使用HttpClient模擬瀏覽器發(fā)送請(qǐng)求方法詳解
- java發(fā)送form-data請(qǐng)求實(shí)現(xiàn)文件上傳的示例代碼
- Java請(qǐng)求調(diào)用參數(shù)格式為form-data類型的接口代碼示例
- Java httpclient請(qǐng)求form-data格式并設(shè)置boundary代碼實(shí)現(xiàn)方法
相關(guān)文章
Maven坐標(biāo)和依賴的實(shí)現(xiàn)示例
本文主要介紹了Maven坐標(biāo)和依賴的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-04-04java selenium XPath 定位實(shí)現(xiàn)方法
本文主要介紹java selenium XPath,這里整理了XPath的資料,并附實(shí)現(xiàn)方法,有需要的小伙伴可以參考下2016-08-08JUC循環(huán)屏障CyclicBarrier與CountDownLatch區(qū)別詳解
這篇文章主要為大家介紹了JUC循環(huán)屏障CyclicBarrier與CountDownLatch區(qū)別詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12SpringMVC 傳日期參數(shù)到后臺(tái)的實(shí)例講解
下面小編就為大家分享一篇SpringMVC 傳日期參數(shù)到后臺(tái)的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12Java設(shè)計(jì)模式之觀察者模式observer?pattern詳解
這篇文章主要介紹了Java設(shè)計(jì)模式之觀察者模式observer?pattern詳解,當(dāng)一個(gè)對(duì)象發(fā)生數(shù)據(jù)變化時(shí),通知其他相關(guān)的一系列對(duì)象,接受到通知的對(duì)象根據(jù)該對(duì)象的變化進(jìn)行相應(yīng)處理以響應(yīng)變化的過(guò)程,需要的朋友可以參考下2023-12-12Spring如何根據(jù)條件創(chuàng)建bean,@Conditional注解使用方式
這篇文章主要介紹了Spring如何根據(jù)條件創(chuàng)建bean,@Conditional注解使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06