AJAX一般常用的是Post和Get请求,今天突然学习的时候遇到了Put的请求,
一直没看懂前端JS是怎么写的,没搞明白前端的逻辑。
后来仔细研究了下,终于是差不多了。
首先,AJAX是不能直接发送put请求的。
在Tomcat中,Connector的默认方法是Post,如果不是Post方法,数据将无法封装到Parameter中去,后端就无法获得数据。
因此可以通过使用HttpPutFormContentFilter (com.sptingframework 5.1以后使用FormContentFilter)过滤器。
通过从request中获取request,getInputStream()的流 inputMessage,然后将流中的数据封装到Map中 MultiValueMap 最后将数据重新封装到request对象中去,完成put数据的封装。
从而实现Toncat的Request不满足的PUT请求类似数据封装层对象这一点操作。
<filter>
<filter-name>FormContentFilter</filter-name>
<filter-class>org.springframework.web.filter.FormContentFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>FormContentFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>