|
Правильный переход с RequstDispatcher
|
|||
---|---|---|---|
#18+
Здраствуйте уважаемые коллеги! Наткнулся случайно на такую проблему: При переходе с одного ресурса на другой пользуюсь экземляром объекта RequestDispatcher. Но в адресной строке браузера остается URL предидущего ресурса (с которого вызывается переход). И получается что если нажать Refresh, то запросится опять старый ресурс. При использовании sendRedirect(); такой ситуации не происходит. Подскажите пожалуйста как правильно работать с RequestDispatcher-ом. Сам делаю так: Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2004, 15:28 |
|
Правильный переход с RequstDispatcher
|
|||
---|---|---|---|
#18+
RequestDispatcher делает внутренний редирект, т. е. запрос полученный сервлетом передается на другой ресурс внутри сервера и сделать тут ничего нельзя (это даже круто!), а sendRedirect возвращает браузеру статус код 303 и новый адрес по которому тот должен обратиться, после чего браузер шлет новый запрос по указанному адресу - это медленнее и нельзя связать с запросом объектных данных. Использование RequestDispatcher позволяет прикрепить к запросу объектные данные и передать их в другой ресурс. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2004, 17:38 |
|
Правильный переход с RequstDispatcher
|
|||
---|---|---|---|
#18+
KachalovRequestDispatcher делает внутренний редирект, т. е. запрос полученный сервлетом передается на другой ресурс внутри сервера и сделать тут ничего нельзя (это даже круто!), а sendRedirect возвращает браузеру статус код 303 и новый адрес по которому тот должен обратиться, после чего браузер шлет новый запрос по указанному адресу - это медленнее и нельзя связать с запросом объектных данных. Использование RequestDispatcher позволяет прикрепить к запросу объектные данные и передать их в другой ресурс. Вот именно. Мне желательно в этом месте программы использовать RequestDispatcher (если не жизненно необходимо.) Но вот как, чтобы в адресной строке не оставался URL исполненного ресурса. Поясню: Servlet1 использует RequestDispatcher который делает forward на Servlet2. Когда Servlet2 исполнился и отображает результаты, в адресной строке остается Servlet1, а нужно Servlet2. Получится нажал я F5 и выполнил еще раз Servlet1. Может нужно посылать дополнительно какой-нибудь header? Ни может же быть, чтобы в этом отношении не было продуманно? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2004, 16:51 |
|
Правильный переход с RequstDispatcher
|
|||
---|---|---|---|
#18+
если сервлеты из разных вэб-приложений, то ничего не выйдет с риквестдиспетчером. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2004, 16:56 |
|
Правильный переход с RequstDispatcher
|
|||
---|---|---|---|
#18+
отправлять реквест сразу на Servlet2 религия не позволяет? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2004, 17:08 |
|
Правильный переход с RequstDispatcher
|
|||
---|---|---|---|
#18+
zalexakaотправлять реквест сразу на Servlet2 религия не позволяет? Так ведь Servlet1 делает добавление в базу, затем делает forward на Servlet2, который делает SELECT всех данных на страницу. Вот так у меня все делает :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2004, 17:28 |
|
|
start [/forum/topic.php?fid=59&fpage=837&tid=2153677]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 139ms |
0 / 0 |