从HttpServletRequest对象获取发布的XML

c12*_*c12 9 java servlets servlet-filters

我有一个接收HttpServletRequest的Filter,请求是一个POST,它包含一个xml,我需要读入我的filter方法.从HttpServletRequest对象获取已发布的xml的最佳方法是什么.

Bal*_*usC 6

这取决于客户端如何发送它.

如果它已作为原始请求主体发送,则使用ServletRequest#getInputStream():

InputStream xml = request.getInputStream();
// ...
Run Code Online (Sandbox Code Playgroud)

如果它已作为常规application/x-www-form-urlencoded请求参数发送,则使用ServletRequest#getParameter():

String xml = request.getParameter("somename");
// ...
Run Code Online (Sandbox Code Playgroud)

如果它是作为一个multipart/form-data部件的味道上传的文件发送,那么使用HttpServletRequest#getPart().

InputStream xml = request.getPart("somename").getInputStream();
// ...
Run Code Online (Sandbox Code Playgroud)

这是标准servlet API支持的方式.其他方式可能需要不同的或第三方API(例如SOAP).