我的servlet中有一个HttpServletRequest对象,它获得一个发布到它的XML文档。我想使用JAXP (而不是JAXB,因为对于我的特定用例,它使用了太多的磁盘空间)。我需要将文档解析为内存中的DOM对象,然后在内存中对其进行处理。您知道如何从请求对象解析POST XML吗?
谢谢,
约翰·戈什
发布于 2012-01-22 03:56:11
这取决于客户端是如何发送的。
如果它符合HTTP multipart/form-data标准(就像与HTML <input type="file">一起使用的那样),那么使用Apache Commons FileUpload或Servlet3.0 HttpServletRequest#getParts()从多部分请求中提取所需的部分。你可以在这里找到一些具体的例子:How to upload files to server using JSP/Servlet?你最终想要得到一个InputStream。
如果它是原始的请求主体(即整个请求主体实际上是整个XML文件,您经常在使用HTTP协议传输文件的本地开发的低级应用程序中看到这一点),那么您可以通过HttpServletRequest#getInputStream()将其作为InputStream获取。
无论您使用/选择哪种方式,都需要确保以某种方式以引用XML文件的InputStream结束。这样,您就可以以通常的方式将其提供给JAXP API,该方法具有接受InputStream的方法。
https://stackoverflow.com/questions/8946410
复制相似问题