从PUT HttpServletRequest获取参数?

时间:2012-12-19 04:16:18

标签: java servlets put

我有一个试图处理PUT请求的HttpServlet,它有一些表格参数(用“application / x-www-form-urlencoded”标题发送)。我有相同的设置工作正常POST,但由于某种原因,当我要求参数时,PUT请求变为空:

protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws {
   Map<String,String[]> params = req.getParameterMap();
   System.out.println(params.size());
}

即使我传入参数,params的大小也是0。

是否有其他方法可以读取PUT请求的参数?

4 个答案:

答案 0 :(得分:3)

请参阅以下SO问题,似乎回答了您的问题:

Servlet parameters and doPut

答案 1 :(得分:1)

您必须将它们作为参数放在URL上。 PUT的主体没有POST的语义,它将其解释为表单参数。

答案 2 :(得分:0)

Spring MVC提供FormContentFilter来解析PUT,PATCH和DELETE的表单数据,并将其作为servlet请求参数公开

https://docs.spring.io/spring-framework/docs/current/javadocapi/org/springframework/web/filter/FormContentFilter.html

答案 3 :(得分:-1)

您可以使用标题...

req.getHeader("nameParameter")

你不能通过PUT / DELETE参数POST / GET。