我在我的应用程序中使用java servlet和jsp,我需要读取远程XML文件并正确地将其呈现为HTML并显示在网页上...用于阅读过程的技术是什么?我应该使用HTTPURLConnection类读取xml文件的内容还是有其他一些方法吗? 而且,如果我使用servlet作为控制器而JSP作为视图,那么servlet和jsp在这个过程中应该负责什么呢?servlet应该只读取整个XML文件然后将读取输出传递给JSP,它只打印它并使用XSL正确渲染?
我真的希望听到任何可能提供帮助的人的消息,
亲切的问候
答案 0 :(得分: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()
,否则网络浏览器可能会以明文形式处理它。