我在我的servlet中有一個HttpServletRequest對象,其中 獲取發佈給它的XML文檔。我想用 JAXP(不是JAXB,因爲它對我的特殊用例使用了太多的磁盤空間 )。我需要將文檔 解析爲內存中將要處理的DOM對象。 有關如何從請求對象中解析POST XML的任何想法?HttpServletRequest JAXP DOM:讀取POST數據
感謝,
約翰Goche的
我在我的servlet中有一個HttpServletRequest對象,其中 獲取發佈給它的XML文檔。我想用 JAXP(不是JAXB,因爲它對我的特殊用例使用了太多的磁盤空間 )。我需要將文檔 解析爲內存中將要處理的DOM對象。 有關如何從請求對象中解析POST XML的任何想法?HttpServletRequest JAXP DOM:讀取POST數據
感謝,
約翰Goche的
這取決於如何在客戶端發送它。
如果它是符合的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
。