2010-08-17 7 views
0

JSP로 Ajax 호출을 작성하는 JavaScript가 있습니다. JavaScript와 JSP는 동일한 웹 서버에 배포됩니다. JSP에서 HttpURLConnection을 사용하여 다른 웹 서버에서 사용할 수있는 서비스 (서블릿) 중 하나에 요청을 전달하고 있습니다. 저는 JSP로 응답을 받았지만 이제는 Ajax 호출을 작성한 JavaScript에 응답을 다시 전달해야합니다. 내가 어떻게 할 수 있니?Javascript에서 JSP로 Ajax 호출을 수행하는 방법은 무엇입니까?

궁극적 인 목표는 JavaScript에서 JSP로, 그리고 JSP에서 서비스 중 하나로 Ajax 요청을 만들어 JavaScript로 응답을 되돌려 보내는 것입니다.

+0

HTML, xml 또는 json을 반환 하시겠습니까? json 또는 xml이면 jsp를 사용하지 마십시오! 이를위한 서블릿이 있습니다. html 인 경우 대신 json을 사용하십시오. = P – BGerrissen

+0

JSON 반환. – srv

답변

1

JSP는 작업에 대해 wrong tool입니다. 템플릿 텍스트로 출력이 손상됩니다. 서블릿으로 교체하십시오. 평범한 Java IO 방법으로 URLConnection#getInputStream()에서 HttpServletResponse#getOutputStream()으로 스트리밍하면됩니다.

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    URLConnection connection = new URL("http://other.service.com").openConnection(); 
    // Set necessary connection headers, parameters, etc here. 

    InputStream input = connection.getInputStream(); 
    OutputStream output = response.getOutputStream(); 
    // Set necessary response headers (content type, character encoding, etc) here. 

    byte[] buffer = new byte[10240]; 
    for (int length = 0; (length = input.read(buffer)) > 0;) { 
     output.write(buffer, 0, length); 
    } 
} 

그게 전부입니다. 이 서블릿을 특정 url-patternweb.xml에 매핑하고 아약스 물건을 서블릿 URL이라고 부릅니다.

관련 문제