2010-05-15 50 views
1

我在我的應用程序中使用java servlets和jsp,我需要讀取遠程XML文件並將其正確地呈現爲HTML並顯示在網頁上...用於讀取過程的技術是什麼?我應該使用HTTPURLConnection類讀取xml文件的內容還是有其他一些方法? 此外,如果我使用servlet作爲控制器並將JSP用作視圖,那麼在此過程中servlet和jsp的責任是什麼?servlet應該只讀取整個XML文件,然後將讀取輸出傳遞給JSP,例如,使用XSL打印並正確渲染?如何使用JSP讀取遠程網站上的XML文件?

我真的希望從任何人誰可以幫忙聽,

隨着親切的問候

回答

3

JSP這裏沒有責任。只需使用XSL在servlet中轉換XML並將其結果直接寫入響應的OutputStream即可。

StreamSource xml = new StreamSource(new URL("http://external.com/file.xml").openStream()); 
StreamSource xsl = new StreamSource(new File("/path/to/file.xsl")); 
StreamResult out = new StreamResult(response.getOutputStream()); 

try { 
    Transformer transformer = TransformerFactory.newInstance().newTransformer(xsl); 
    transformer.transform(xml, out); 
} catch (TransformerException e) { 
    throw new ServletException("Transforming XML failed.", e); 
} 

不要忘記設置Content-Type使用HttpServletResponse#setContentType(),否則web瀏覽器可以處理它以明文形式。

+0

非常感謝您的回覆!只是有一個後續問題:如果我想在JSP頁面的特定部分顯示輸出的HTML,但是我想在servlet中執行所有處理內容,所以JSP中沒有任何業務邏輯。我可以按照您描述的相同方法,然後使用request.getRequestDispatcher(「」)。forward()方法將數據表示轉發到JSP,其中將格式化的XML數據與我獲得的信息一起呈現JSP本身?我希望我的問題清楚:)提前Thx – Alex 2010-05-15 13:18:04

+0

只需使用''URL指向此servlet。 – BalusC 2010-05-15 13:56:29