手动解析Tomcat中PUT请求的参数

5
我有一些使用PUT请求的JavaScript代码,我想使用request.getParameter()来读取变量。我知道Java EE不会解析PUT请求中的内容,因为HTML PUT最初是用于文件上传的。但是我想知道是否有一种方法可以强制执行此行为,或者至少如何访问Tomcat在解析POST请求时使用的解析器,并在原始请求字符串上自己运行它。
谢谢。

Servlets可以通过HttpServlet#doPut支持PUT请求。 - Luiggi Mendoza
我知道,而且我已经收到了PUT请求。问题在于它无法解析我发送的表单数据。 - Peter
这个表单的编码是什么?multipart/form-data还是application/x-www-form-urlencoded? - Paul Wostenberg
后者:Content-Type: application/x-www-form-urlencoded; charset=UTF-8 - Peter
1
你应该能够通过HttpServlet检索表单数据,就像@LuiggiMendoza所提到的那样。你确定你的JavaScript实际上发送了你期望的表单数据吗? - Paul Wostenberg
检索不是问题,解析才是。Tomcat没有将表单数据放入请求参数映射中。我想知道的是如何强制Tomcat这样做,或者使用Tomcat使用的任何库并自己完成它。 - Peter
1个回答

11

解决方案似乎是将以下属性添加到server.xml的Connector元素中:

parseBodyMethods="POST, PUT"

这告诉Tomcat将PUT请求视为POST请求,就解析主体而言。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接