Как выполнить Ajax-вызов из Javascript в JSP? - PullRequest
0 голосов
/ 18 августа 2010

У меня есть JavaScript, из которого я делаю Ajax Call для JSP.И JavaScript, и JSP развернуты на одном веб-сервере.Из JSP я пересылаю запрос одному из сервисов (сервлетов), доступных на другом веб-сервере, используя HttpURLConnection.Я получил ответ в JSP, но теперь мне нужно передать ответ обратно в JavaScript, который сделал Ajax Call.Как я могу это сделать?

Моя конечная цель - сделать запрос Ajax из JavaScript в JSP и из этого JSP в одну из служб и вернуть ответ обратно в JavaScript.

1 Ответ

1 голос
/ 18 августа 2010

JSP является неправильным инструментом для данной работы. Вывод будет поврежден с текстом шаблона. Замените его сервлетом. Вам просто нужно передать URLConnection#getInputStream() в HttpServletResponse#getOutputStream() обычным способом ввода-вывода Java.

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);
    }
}

Вот и все. Сопоставьте этот сервлет в web.xml с определенным url-pattern, и пусть ваш ajax-материал вызовет этот URL-адрес сервлета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...