Java后臺接收數(shù)據(jù)的三種方式(url、form-data與application/json)
url傳參的方式
/**
* 請求路徑: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() 里邊的值必須要和前端傳遞過來的參數(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);
}其實還有一種以前用過的請求方式:HttpServerletRequest.getParameter("name"),不常用
注解
@RequestParam
作用:將指定的請求參數(shù)賦值給方法中的形參
- 指定的參數(shù)可以是普通元素、數(shù)組、集合、對象等等
- 一個請求——》可以有多個@RequestParam
語法:@RequestParam(value="參數(shù)名",required="true/false",defaultValue="")
value:參數(shù)名
required:是否包含該參數(shù),默認為true,表示該請求路徑中必須包含該參數(shù),如果不包含就報錯。
defaultValue:默認參數(shù)值,如果設置了該值,required=true將失效,自動為false,如果沒有傳該參數(shù),就使用默認值
示例:
@PostMapping("/test")
public void test(@RequestParam(required = true)String name) {
}@RequestBody
作用:接收前端傳遞的Json對象的字符串。(請求體中的數(shù)據(jù))
- Post請求,GET方式無請求體,所以使用@RequestBody接收數(shù)據(jù)時,前端不能使用GET方式提交數(shù)據(jù)
- 一個請求——》只有一個@RequestBody
@PathVariable
作用:接收請求路徑中占位符的值。
Get路徑請求
語法:@RequestMapping(value=”user/{userId}/{userName}”)
示例:
/**
* 請求路徑: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)容類型)
語法格式:
Content-Type: text/html; charset=utf-8 Content-Type: multipart/form-data; boundary=something
常見的媒體格式類型:
- text/html : HTML格式
- text/plain :純文本格式
- text/xml : XML格式
- image/gif :gif圖片格式
- image/jpeg :jpg圖片格式
- image/png:png圖片格式
以application開頭的媒體格式類型:
- 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 : 二進制流數(shù)據(jù)(如常見的文件下載)
- application/x-www-form-urlencoded : 中默認的encType,form表單數(shù)據(jù)被編碼為key/value格式發(fā)送到服務器(表單默認的提交數(shù)據(jù)的格式)
另外一種常見的媒體格式是上傳文件之時使用的:
- multipart/form-data : 需要在表單中進行文件上傳時,就需要使用該格式
formdata:

常用有兩種: application/x-www-form-urlencoded 和 multipart/form-data , 默認為application/x-www-form-urlencoded
- multipart/form-data:既可以上傳文件等二進制數(shù)據(jù),也可以上傳表單鍵值對,只是最后會轉(zhuǎn)化為一條信息;
- x-www-form-urlencoded:只能上傳鍵值對,并且鍵值對都是間隔分開的
json:

application/json: JSON數(shù)據(jù)格式,將數(shù)據(jù)進行序列化的一種方式,后端可以直接使用
關于post請求能用@pathVariable注解的嘗試
正常來說這個注解習慣使用在get請求上, 之前偷懶代碼貼出的是post, 關于此項的疑惑做個嘗試

找個controller復制過來之前的代碼

啟動項目, 端口80, 打開postman, 發(fā)送請求

控制臺

@PathVariable是spring3.0的新功能:接收請求路徑中占位符的值, 請求方式post, get, put等都可以
到此這篇關于Java后臺接收數(shù)據(jù)的三種方式(url、form-data與application/json)的文章就介紹到這了,更多相關Java后臺接收數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- java?11新特性HttpClient主要組件及發(fā)送請求示例詳解
- Java通過httpclient比較重定向和請求轉(zhuǎn)發(fā)
- Java HttpClient執(zhí)行請求時配置cookie流程詳細講解
- Java HttpClient-Restful工具各種請求高度封裝提煉及總結(jié)
- java中httpclient封裝post請求和get的請求實例
- java爬蟲之使用HttpClient模擬瀏覽器發(fā)送請求方法詳解
- java發(fā)送form-data請求實現(xiàn)文件上傳的示例代碼
- Java請求調(diào)用參數(shù)格式為form-data類型的接口代碼示例
- Java httpclient請求form-data格式并設置boundary代碼實現(xiàn)方法
相關文章
spring data jpa 查詢自定義字段,轉(zhuǎn)換為自定義實體方式
這篇文章主要介紹了spring data jpa 查詢自定義字段,轉(zhuǎn)換為自定義實體方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06
Java實現(xiàn)字符串轉(zhuǎn)為駝峰格式的方法詳解
這篇文章主要介紹了如何利用Java語言實現(xiàn)字符串轉(zhuǎn)為駝峰格式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2022-07-07
springcloud gateway網(wǎng)關服務啟動報錯的解決
這篇文章主要介紹了springcloud gateway網(wǎng)關服務啟動報錯的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
Spring Boot Hello World的實現(xiàn)代碼
這篇文章主要介紹了Spring Boot Hello World的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-06-06

