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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM