Spring MVC 接收HTTP請求引數的註解

2021-10-20 22:27:01 字數 2618 閱讀 3606

1.spring mvc中,處理的比較多的幾種 http請求資訊格式(content-type)

multipart/form-data  (form表單裡面有檔案上傳時,必須要指定enctype屬性值為multipart/form-data,意思是以二進位製流的形式傳輸檔案)

http請求中,request的body部分的資料編碼格式由header部分的content-type指定

2.spring mvc 用來處理請求引數的註解

spring mvc 提供了多個註解來獲取http請求中的提交的資料內容,具體用哪個註解是根據請求的編碼方式(request header content-type 值)來決定的。

@pathvariable 

@pathvariable 用來獲取請求url中的引數

@requestparam 

@requestparam接收的資料是來自http請求體 或 即請求頭requestheader中(也就是在url中,格式為***?)的querystring中

requestparam可以接受簡單型別的屬性,也可以接受物件型別

requestparam實質是將request.getparameter() 中的key-value引數map 利用spring的轉化機制conversionservice配置,轉化成引數接收物件或字段。get方式中query string的值,和post方式中body data的值都會被servlet接受到並轉化到request.getparameter()引數集中,所以@requestparam可以獲取的到 

請求引數放在請求頭中

請求引數放在請求頭中,如果是開啟f12看到的是如下資訊

@requestbody接收的引數是來自requestbody中,即http請求體。所以get請求不能用@requestbody註解。

import lombok.data;

@data

public class personrequest

import org.slf4j.logger;

import org.slf4j.logge***ctory;

import org.springframework.web.bind.annotation.requestbody;

import org.springframework.web.bind.annotation.restcontroller;

import com.alibaba.fastjson.json;

@restcontroller

public class personcontroller

}

post測試如下

開啟f12測試,會看到如下

@modelattribute註解型別將引數繫結到model物件

3.spring mvc  控制器方法的兩種返回值

但是加上 @responsebody 後返回結果不會被解析為跳轉路徑,會直接返回 json 資料,寫入 http response body 中。 比如非同步獲取 json 資料。

@requestbody @requestparam 用混的話會報錯:missingservletrequestparameterexception: required string parameter '***' is not present

Spring MVC接收引數

1.和servletapi緊耦方法 使用原生 servletapi 使用原有的request物件進行獲取 只需要在方法內容宣告request形參即可,servlet在呼叫的時候會自動賦值。按照request的使用方式正常使用即可 springmvc引數優點 沒有引數,不賦值,正常執行 有引數,則給引...

springmvc接收多個json

var formparams serializeobject bankaccounttest 序列化後解決亂碼 formparams decodeuricomponent formparams,true var row notes,jsondata,params row table.bootstra...

Springmvc的物件接收

注意在頁面上所有的屬性值一定要和後台相對應 接收乙個實體類 首先要有乙個pojo實體類,比如 public class items public void setid integer id public string getname public void setname string name p...