Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
 Как сделать sendRedirect ?  [new]
wolverin
Member

Откуда:
Сообщений: 948
Есть сервелет, на ошибки через javascript он шлет response.getWriter().write(""), которая отображается в html, в случае успеха хочу сделать sendRedirect, но в итоге вся страница которая должна появится вываливается в тег, куда пишу ошибки.

Как победить?
15 апр 19, 08:23    [21861914]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать sendRedirect ?  [new]
Nixic
Member

Откуда: Perm
Сообщений: 1871
wolverin,

где код? где ошибки?
15 апр 19, 08:35    [21861920]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать sendRedirect ?  [new]
wolverin
Member

Откуда:
Сообщений: 948
Nixic,

нет никаких ошибок, нужно чтобы не выполнялся javascript на sendRedirect
скрипт простой, делаю ajax запрос и получаю ответ, ответ вывожу в тег, но на sendRedirect нужно перейти на другую страницу, а не выводить ее в тег
15 апр 19, 08:40    [21861925]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать sendRedirect ?  [new]
Nixic
Member

Откуда: Perm
Сообщений: 1871
ну тогда гуглим "sendredirect java example", смотрим свой код проекта и сверяем, можно так же дебажить, чтобы понимать, что сформировалось, что ушло
15 апр 19, 08:46    [21861929]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать sendRedirect ?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
wolverin
response.getWriter().write(""),
если успех, то это не пиши и сразу делай редирект.
Код давай.
15 апр 19, 09:51    [21861987]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать sendRedirect ?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
wolverin
javascript на sendRedirect
редирект есть из java и есть из js.
15 апр 19, 09:52    [21861988]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать sendRedirect ?  [new]
alex55555
Member

Откуда:
Сообщений: 2129
wolverin
Как победить?

Читать про сервлеты.

Ошибка обрабатывается сервером и никакие твои логи он не шлёт, он генерирует свою страницу с текстом ошибки (хоть он и похож на логи). А ты просто не понимаешь, почему в тот или иной момент появляется та или иная страница.

Поэтому надо читать. Начиная со спецификации сервлетов и заканчивая доками на сервер.
15 апр 19, 12:17    [21862269]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать sendRedirect ?  [new]
wolverin
Member

Откуда:
Сообщений: 948
Nixic,

нечего там дебажить и екзамплить, при ajax не будет выполняться sendRedirect из сервелета, если вы читаете ответ в жаваскрипте
15 апр 19, 12:18    [21862270]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать sendRedirect ?  [new]
wolverin
Member

Откуда:
Сообщений: 948
alex55555,

я шлю текст пользователю при обработке ошибок в сервелете, мне нужно сделать чтобы был редирект, если все успешно на новую страницу, т.е. sendRedirect и response.getWriter().write("") по сути ничем не отличаются получается
15 апр 19, 12:20    [21862275]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать sendRedirect ?  [new]
wolverin
Member

Откуда:
Сообщений: 948
Petro123
wolverin
response.getWriter().write(""),
если успех, то это не пиши и сразу делай редирект.
Код давай.

вот пример аналогичного вопроса и кодов
https://stackoverflow.com/questions/199099/how-to-manage-a-redirect-request-after-a-jquery-ajax-call
15 апр 19, 12:21    [21862278]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать sendRedirect ?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
wolverin
Nixic,

нечего там дебажить и екзамплить, при ajax не будет выполняться sendRedirect из сервелета, если вы читаете ответ в жаваскрипте
докажи))
Ты даже прочитать не успеешь)
15 апр 19, 12:28    [21862291]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать sendRedirect ?  [new]
wolverin
Member

Откуда:
Сообщений: 948
Petro123,

что там доказывать, ссылка выше с таким же вопросом
15 апр 19, 12:30    [21862296]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать sendRedirect ?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
wolverin,
Мне лень ходить по ссылкам. Свой сайт есть. Первой строкой сервлете ставь редирект и проверяй.
Ты у компа или я?
15 апр 19, 12:43    [21862322]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать sendRedirect ?  [new]
wolverin
Member

Откуда:
Сообщений: 948
Petro123,

поставил первым, убрал вообще все из doPost(HttpServletRequest request, HttpServletResponse response) кроме response.sendRedirect

в скрипте упростил до

alert('000');
$.post('wsLogin', 'base='+base+'&brig='+brig+'&pass='+pass, function(response) {
alert('111');});

000 появляется, 111 нет
15 апр 19, 13:13    [21862393]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать sendRedirect ?  [new]
wolverin
Member

Откуда:
Сообщений: 948
сервелет естественно вызывается

меняю в сервелете одну строку на

response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
response.getWriter().write("бла1");

и все ответ приходит, 111 срабатывает
15 апр 19, 13:15    [21862400]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать sendRedirect ?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15805
wolverin
alert('111');});
а почему должно быть отображено?
15 апр 19, 13:18    [21862412]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать sendRedirect ?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
wolverin,
Упс. Был неправ. При ajax сервер не может редиректить.
Так. Теперь проверяй код http.ok. Если он, тогда делай редирект в js сам.
15 апр 19, 13:19    [21862416]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать sendRedirect ?  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15805
        request.getSession(true).invalidate();
        response.sendRedirect("/" + новый_адрес);
15 апр 19, 13:23    [21862425]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать sendRedirect ?  [new]
wolverin
Member

Откуда:
Сообщений: 948
вопщим победил следующим образом
на стороне сервера проверяю если это ajax, то отправляю response.setHeader("Location", "url"), если нет, то response.sendRedirect("url")
на стороне клиента в скрипте проверяю - если ответ пустой, то запрашиваю
var request = $.post(...)
url = request.getResponseHeader('Location');
если он не пустой, то делаю location.href = url
18 апр 19, 08:05    [21865709]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать sendRedirect ?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
wolverin,
Да. Если учесть, что кроме редиректа и полезная работа должна быть.
18 апр 19, 08:56    [21865726]     Ответить | Цитировать Сообщить модератору
Все форумы / Java Ответить