3

我有一个试图处理 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());
}

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

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

4

3 回答 3

4

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

Servlet 参数和 doPut

于 2012-12-19T04:26:36.250 回答
2

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

于 2012-12-19T07:06:02.490 回答
0

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

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

于 2020-11-01T20:51:37.870 回答