1

我的 servlet 中有一个 HttpServletRequest 对象,它获取发布到它的 XML 文档。我想使用 JAXP(不是 JAXB,因为它对我的特定用例使用了太多磁盘空间)。我需要将文档解析为内存中的 DOM 对象,并在其中进行处理。关于如何从请求对象解析 POST XML 的任何想法?

谢谢,

约翰·戈切

4

1 回答 1

0

这取决于客户如何发送它。

如果它符合 HTTPmultipart/form-data标准(就像与 HTML 一起使用的那样<input type="file">),则使用Apache Commons FileUpload或 Servlet 3.0HttpServletRequest#getParts()从多部分请求中提取所需的部分。你可以在这里找到一些具体的例子:How to upload files to server using JSP/Servlet? 您最终希望以InputStream.

如果它是原始请求正文(即整个请求正文实际上是整个 XML 文件,您经常会在滥用 HTTP 协议传输文件的本土低级应用程序中看到这种情况),那么您可以将其InputStream作为HttpServletRequest#getInputStream().

无论您使用/选择哪种方式,您都需要确保以某种方式最终InputStream引用 XML 文件。通过这种方式,您可以以通常的方式将其提供给 JAXP API,其中方法采用InputStream.

于 2012-01-21T19:56:11.473 回答