HttpServletRequest JAXP DOM:读取POST数据

时间:2012-01-20 18:53:12

标签: xml dom servlets jaxp

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

谢谢,

John Goche

1 个答案:

答案 0 :(得分:0)

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

如果符合HTTP multipart/form-data标准(如与HTML <input type="file">一起使用),则使用Apache Commons FileUpload或Servlet 3.0 HttpServletRequest#getParts()提取所需内容部分来自多部分请求。你可以在这里找到一些具体的例子:How to upload files to server using JSP/Servlet?你最终想得到一个InputStream

如果它是原始请求主体(即整个请求主体实际上是整个XML文件,您通常会在本地低级别应用程序中看到这种情况,这些应用程序滥用HTTP协议来传输文件),然后你只需HttpServletRequest#getInputStream()就可以InputStream获得它。

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