powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Правильный переход с RequstDispatcher
6 сообщений из 6, страница 1 из 1
Правильный переход с RequstDispatcher
    #32713045
taliano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здраствуйте уважаемые коллеги!

Наткнулся случайно на такую проблему:

При переходе с одного ресурса на другой пользуюсь экземляром объекта RequestDispatcher. Но в адресной строке браузера остается URL предидущего ресурса (с которого вызывается переход). И получается что если нажать Refresh, то запросится опять старый ресурс. При использовании sendRedirect(); такой ситуации не происходит.

Подскажите пожалуйста как правильно работать с RequestDispatcher-ом.
Сам делаю так:
Код: plaintext
1.
2.
3.
RequestDispatcher dispatcher = null;
dispatcher = request.getRequestDispatcher("myPage.jsp");
dispatcher.forward(request, response);
...
Рейтинг: 0 / 0
Правильный переход с RequstDispatcher
    #32715330
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RequestDispatcher делает внутренний редирект, т. е. запрос полученный сервлетом передается на другой ресурс внутри сервера и сделать тут ничего нельзя (это даже круто!), а sendRedirect возвращает браузеру статус код 303 и новый адрес по которому тот должен обратиться, после чего браузер шлет новый запрос по указанному адресу - это медленнее и нельзя связать с запросом объектных данных.
Использование RequestDispatcher позволяет прикрепить к запросу объектные данные и передать их в другой ресурс.
...
Рейтинг: 0 / 0
Правильный переход с RequstDispatcher
    #32717211
taliano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KachalovRequestDispatcher делает внутренний редирект, т. е. запрос полученный сервлетом передается на другой ресурс внутри сервера и сделать тут ничего нельзя (это даже круто!), а sendRedirect возвращает браузеру статус код 303 и новый адрес по которому тот должен обратиться, после чего браузер шлет новый запрос по указанному адресу - это медленнее и нельзя связать с запросом объектных данных.
Использование RequestDispatcher позволяет прикрепить к запросу объектные данные и передать их в другой ресурс.

Вот именно. Мне желательно в этом месте программы использовать RequestDispatcher (если не жизненно необходимо.) Но вот как, чтобы в адресной строке не оставался URL исполненного ресурса.
Поясню:
Servlet1 использует RequestDispatcher который делает forward на Servlet2. Когда Servlet2 исполнился и отображает результаты, в адресной строке остается Servlet1, а нужно Servlet2. Получится нажал я F5 и выполнил еще раз Servlet1.
Может нужно посылать дополнительно какой-нибудь header?
Ни может же быть, чтобы в этом отношении не было продуманно?
...
Рейтинг: 0 / 0
Правильный переход с RequstDispatcher
    #32717235
Фотография А.Гpacoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если сервлеты из разных вэб-приложений, то ничего не выйдет
с риквестдиспетчером.
...
Рейтинг: 0 / 0
Правильный переход с RequstDispatcher
    #32717276
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
отправлять реквест сразу на Servlet2 религия не позволяет?
...
Рейтинг: 0 / 0
Правильный переход с RequstDispatcher
    #32717355
taliano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zalexakaотправлять реквест сразу на Servlet2 религия не позволяет?
Так ведь Servlet1 делает добавление в базу, затем делает forward на Servlet2, который делает SELECT всех данных на страницу. Вот так у меня все делает :)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Правильный переход с RequstDispatcher
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]