spring mvc接收form data和query string parameters表單引數
阿新 • • 發佈:2020-08-06
POST、PUT、DELETE請求不指定Content-Type時,預設使用application/x-www-form-urlencoded
這時引數提交方式是form data
POST請求預設會將引數填充的servlet的請求引數中,PUT、DELETE不會。所以會有後兩種請求拿不到引數的問題。怎麼解決?
兩個思路:
(1)將PUT、DELETE請求轉為POST
(2)用Filter將引數填充的servlet的請求引數中
下面是第二種思路:
舊的spring 版本配置HttpPutFormContentFilter,只能解決PUT請求引數的填充。可以自定義補充實現DELETE的請求的邏輯,參考FormContentFilter(照抄也沒問題,親測)
新的spring 版本配置 FormContentFilter,可以解決PUT、DELETE請求引數的填充。
配置web.xml
<filter>
<filter-name>MyFormContentFilter</filter-name>
<filter-class>com.test.filters.MyFormContentFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFormContentFilter</filter-name><url-pattern>/*</url-pattern>
</filter-mapping>
GET請求引數提交方式是query string parameters
@RequestParam就可以解析