AJAX的Put方法使用。

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>