2012-01-20 125 views
1

我在我的servlet中有一個HttpServletRequest對象,其中 獲取發佈給它的XML文檔。我想用 JAXP(不是JAXB,因爲它對我的特殊用例使用了太多的磁盤空間 )。我需要將文檔 解析爲內存中將要處理的DOM對象。 有關如何從請求對象中解析POST XML的任何想法?HttpServletRequest JAXP DOM:讀取POST數據

感謝,

約翰Goche的

回答

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協議自產自銷的低級別的應用程序),那麼你就可以得到它作爲InputStream只需HttpServletRequest#getInputStream()

無論您使用/選擇什麼方式,您都需要確保以某種方式結束引用XML文件的InputStream。通過這種方式,您可以按照通常的方式將其提供給JAXP API,其方法採用InputStream