Как возвратить ответ с сервлета в запрашивающий JavaScript?

162
07 апреля 2018, 21:21

Классическое CRUD веб приложение с использованием JavaScript и классов java. На пользовательской странице index.jsp скриптом отправляю запрос на сервер в виде обычной строки.

JavaScript на index.jsp:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        document.getElementById("demo").innerHTML = "Hello";
    }
};
xhttp.open("POST", 'Servlet', true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send("val="+ val);
<p id="demo"></p>

В сервлете перехватываю запрос String active = request.getParameter("val");, передаю в бизнес, бизнес отрабатывает CRUD и return отработанный метод в виде, к примеру, списка пользователей. Трудность заключается в том, как теперь возвратить ответ скрипту? Это делается файлом XML или есть и другие способы?

P.S. Обращаю внимание, что запрос был выбран именно XMLHttpRequest из-за модели AJAX. Не нужна перезагрузка страницы или переход в другое окно.

Answer 1

Если я правильно понял вопрос, то вы хотите понять как фронту получать данные из бэка.

В простейшем случаее хватает request-response модели. Если в двух словах: вы делаете запрос с фронта, бэк как-то обрабатывает этот запрос и возвращает этот результат.

Бывает так, что фронту нужно получить данные из бэка не сразу после запроса, а через какое-то время. Для этого в простейшем случае делается повторные запрос на бэк и читает ответ от сервера.

Здесь, например, можно посмотреть пример того как это делается с помощью JavaScript.

READ ALSO
Транслит при вносе данных в mysql

Транслит при вносе данных в mysql

Есть необходимость вносить данные в БД на русском но, чтоб в таблицу они попадали уже транслитом на латинице

179
MySQL - Как правильно связать таблицы?

MySQL - Как правильно связать таблицы?

Есть 2 таблицы - посты и комментарии к ним:

204
объединить поля по древовидной выборке

объединить поля по древовидной выборке

Данным запросом, получаю дерево категорий, но есть еще столбец code, как на базе данного запроса, получить только объединенную строку code в порядке...

164
В mysql вместо NULL в таблице появляются нули

В mysql вместо NULL в таблице появляются нули

Вот таким кодом я изменил дефолтное значение в mysql:

204