1. 程式人生 > 實用技巧 >spring mvc接收form data和query string parameters表單引數

spring mvc接收form data和query string parameters表單引數

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就可以解析