2010-05-15 5 views
1

내 응용 프로그램에서 자바 서블릿과 jsp를 사용하고 있는데 원격 XML 파일을 읽고 적절하게 HTML로 렌더링하고 웹 페이지에 표시해야합니다 ... 프로세스를 읽는 데 사용되는 기술은 무엇입니까? HTTPURLConnection을 사용해야합니까? 클래스는 xml 파일의 내용을 읽거나 다른 방법이 있습니까? 또한 서블릿을 컨트롤러로 사용하고 JSP를 뷰로 사용하는 경우이 프로세스에서 servlet 및 JSP의 책임은 무엇입니까? 서블릿이 전체 XML 파일을 읽은 다음 JSP로 읽기 출력을 전달하면됩니다. 그것을 인쇄하고 예를 들어 XSL을 사용하여 제대로 렌더링 할 수 있습니까? 종류와 정말 도움이 될 수있는 사람들이 희망을 듣고 JSP를 사용하여 원격 웹 사이트에서 XML 파일을 읽는 방법은 무엇입니까?

,

답변

3

JSP 여기에 책임이 없습니다 간주한다. XSL을 사용하여 서블릿에서 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); 
} 

HttpServletResponse#setContentType()를 사용하여 Content-Type 설정하는 것을 잊지 마십시오, 그렇지 않으면 웹 브라우저는 일반 텍스트로 처리 할 수 ​​있습니다.

+0

답장을 보내 주셔서 감사합니다. 후속 질문이 있습니다. 출력 된 HTML을 JSP 페이지의 특정 부분에 표시하려면 어떻게해야합니까?하지만 서블릿에서 모든 처리 작업을 수행하여 JSP에 비즈니스 로직이 없도록하려면 어떻게해야합니까? 앞에서 설명한 것과 동일한 방법을 수행 한 다음 request.getRequestDispatcher (""). forward() 메서드를 사용하여 데이터 형식을 JSP로 전달할 수 있습니다. 여기서 서식이 지정된 XML 데이터가 나와있는 정보와 함께 표시됩니다 JSP 자체? 내 질문에 분명히 바란다 :) Thx in advance – Alex

+0

URL이이 서블릿을 가리키는 경우에만 ''을 사용하십시오. – BalusC

관련 문제