springmvc中配置RESTful風格控制器
一般的http請求中其實只需要get和post就可以滿足項目需求了,而為什麽還要使用restful可能就是為了使請求url看起來更加直觀,好看吧。。
restful常用的請求方式:get,post,put,patch,delete
springmvc默認情況下對get和post支持的最好,像put,putch,delete其實也是支持的,只不過默認情況下只支持控制器接收url傳遞的參數,如果我們想要想post那樣傳遞參數,需要我們在後端和前端做一些設置,比如在前端請求時手動設置請求頭中的內容類型為json,後端還要配合前端設置控制器的參數接收一個請求體,而不是普通表單或url參數,使用requestBody註解來接收,springmvc會通過消息處理器來幫助json格式的請求體到java bean的轉換,格外的麻煩,所以以下提供三種解決方案:
1、修改tomcat的server.xml:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" parseBodyMethods="POST,PUT,DELETE" URIEncoding="UTF-8" />
經過測試這種是可行的,只是ajax請求時需要設置請求頭為
Content-Type: application/x-www-form-urlencoded
請求數據的內容格式是這樣name=bbba&age=22
如果表單提交的話只需要設置請求編碼application/x-www-form-urlencoded即可。
2、在web.xml中添加HttpPutFormContentFilter
參考 https://blog.csdn.net/geloin/article/details/7444590
3、在web.xml中添加HiddenHttpMethodFilter
參考 https://blog.csdn.net/geloin/article/details/7444321
我比較推薦使用第3中解決方案,沒有原因,個人喜好。。
springmvc中配置RESTful風格控制器