HttpPutFormContentFilter为什么不支持HTTP.DELETE啊...

Sgmder 发布于 2017/01/13 18:56
阅读 692
收藏 0
HttpPutFormContentFilter

今天在学习RestFul接口的时候发现从Postman发出来的PUT和DELETE请求参数没办法被SpringMvc获取到,百度了一下发现了HttpPutFormContentFilter,使用之后PUT可以了但是DELETE不行...SO寻找HttpDeleteFormContentFilter,发现没有...

阅读了HttpPutFormContentFilter的源码后发现

if(("PUT".equals(request.getMethod()) || "PATCH".equals(request.getMethod())) && this.isFormContentType(request)) {
    ServletServerHttpRequest inputMessage = new ServletServerHttpRequest(request) { public InputStream getBody() throws IOException { return request.getInputStream();
        }
    };
    MultiValueMap formParameters = this.formConverter.read((Class)null, inputMessage);
    HttpPutFormContentFilter.HttpPutFormContentRequestWrapper wrapper = new HttpPutFormContentFilter.HttpPutFormContentRequestWrapper(request, formParameters);
    filterChain.doFilter(wrapper, response);
} else {
    filterChain.doFilter(request, response);
}
然后尝试添加了if判断语句为

if (("DELETE".equals(request.getMethod()) || "PUT".equals(request.getMethod()) || "PATCH".equals(request.getMethod())) && this.isFormContentType(request))
发现DELETE就可以用了...

那么为什么Spring没有支持DELETE的这个Filter呢...

是不是有什么坑,或者有其它Filter,求大神解答下疑惑。

另外HttpPutFormContentFilter这种自取form数据的方式和HiddenHttpMethodFilter将POST转化为PUT和DELETE相比,哪个效率高,对高并发有很大影响么?

加载中
0
烟花苏柳

我也想问啊!!!!

0
根号7
根号7

Http不仅限于哪几种提交方式,其他提交方式只是需要自己取实现协议解析即可。

返回顶部
顶部