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