@RequestMapping
RequestMapping是一個用來處理請求地址映射的註解,可用於類或方法上。用於類上,表示類中的所有響應請求的方法都是以該地址作爲父路徑。
RequestMapping註解有六個屬性,下面我們把她分成三類進行說明。
1、 value, method;
value: 指定請求的實際地址
method: 指定請求的method類型, GET、POST、PUT、DELETE等;
2、 consumes,produces;
consumes: 指定處理請求的提交內容類型(Content-Type),例如application/json, text/html;
produces: 指定返回的內容類型,僅當request請求頭中的(Accept)類型中包含該指定類型才返回;
3、 params,headers;
params: 指定request中必須包含某些參數值時,才讓該方法處理。
headers: 指定request中必須包含某些指定的header值,才能讓該方法處理請求。
示例
一個很坑的例子,前端採用ajaxFileupload上傳文件,後端返回json數據,前端通過彈出框顯示該json數據。但是在ie下,瀏覽器一直顯示是否下載該json,以下是我的解決方案:
後端:
@RequestMapping(value = "/caseFile/upload", consumes = "multipart/*", method = RequestMethod.POST, produces = {MediaType.TEXT_PLAIN_VALUE})
前端:
dataType: 'json', "Content-Type": "application/json; charset=utf-8"
content-type常見值
在Http協議消息頭中,使用Content-Type來表示具體請求中的媒體類型信息。
例如: Content-Type: text/html;charset:utf-8;
常見的媒體格式類型如下:
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數據格式
application/atom+xml :Atom XML聚合格式
application/json : JSON數據格式
application/pdf :pdf格式
application/msword : Word文檔格式
application/octet-stream : 二進制流數據(如常見的文件下載)
application/x-www-form-urlencoded : <form encType=””>中默認的encType,form表單數據被編碼爲key/value格式發送到服務器(表單默認的提交數據的格式)
另外一種常見的媒體格式是上傳文件之時使用的:
multipart/form-data : 需要在表單中進行文件上傳時,就需要使用該格式