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

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

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

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

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


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