Подтвердить что ты не робот

Разница между JSP вперед и перенаправлением

Пожалуйста, объясните разницу между jsp:forward и redirect?
Что происходит в каждом случае?

4b9b3361

Ответ 1

  • redirect устанавливает статус ответа 302 [1] и новый url в заголовке Location и отправляет ответ браузеру. Затем браузер, согласно спецификации http, делает другой запрос к новому URL

  • пересылка происходит полностью на сервере. Контейнер сервлета просто перенаправляет один и тот же запрос на целевой URL, не зная об этом обозреватель. Следовательно, при обработке нового URL-адреса вы можете использовать одни и те же атрибуты запроса и те же параметры запроса. И браузер не будет знать, что URL-адрес изменился (потому что он полностью произошел на сервере)


[1]: Это пример отраслевой практики, противоречащей стандарту. Спецификация HTTP/1.0 (RFC 1945) требовала от клиента выполнения временная переадресация (исходная описательная фраза "Перемещена" Временно "), но популярные браузеры реализованы 302 с функциональность 303 См. раздел" Прочее ". Таким образом, HTTP/1.1 добавил статус коды 303 и 307, чтобы различать два поведения. Однако, некоторые веб-приложения и фреймворки используют код состояния 302, как если бы он были 303. Источник

Ответ 2

Я слышал интересное объяснение переадресации и пересылки. Представьте, что вам нужен сервис от вашего друга. Не важно, какой сервис. Предположим, что ваш друг не может вам помочь, но знаю, кто может.

Он ОТКЛЮЧАЕТ ваш запрос, если он скажет вам: "Я не могу справиться с этим, но знаю, кто может. Вот его номер телефона. Назовите его"

Он ОБРАЩАЕТ ваш запрос, если он скажет вам: "Нет проблем", и позвоните этому человеку самостоятельно, не заметив, что вы привлекли другого человека к работе с вашим желанием. Тогда ваш друг будет получать результат от вашего желания и передать вам.

Ответ 3

Переадресация также медленнее по сравнению с форвардом, потому что она должна проходить через браузер и ждать, пока браузер сделает новый запрос, а также потому, что объекты области запроса будут недоступны после перенаправления.

Ответ 4

Перенаправление:

  • Пользователь запрашивает ресурс.
  • Ответ отправлен пользователю.
  • Это не запрашиваемый ресурс, это ответ с HTTP-кодом 302 и содержит URL-адрес запрашиваемого ресурса.
  • URL-адрес может быть таким же или отличается от запрошенного URL.
  • Клиентский браузер снова запрашивает ресурс с новым URL-адресом, на этот раз фактический ресурс отправляется пользователю.

Вперед:

Это процесс простого отображения запрошенного ресурса пользователю. Это происходит исключительно на стороне сервера.

Ответ 5

Этот пост дает действительно хорошее объяснение о форварде и перенаправлении с использованием примера с хорошим реальным миром.

Молочный человек приходит и просит ежемесячный платеж вам в вашем доме. Здесь дом - это контейнер, и вы являетесь ресурсом, существующим в контейнер. Молочный человек - клиент или браузер.

Он запрашивает у вас ежемесячный платеж, это запрос, сделанный браузер к ресурсу A. Если вы заходите в свой дом и спрашиваете мать (другой ресурс B внутри того же контейнера) для наличных и вернитесь и доставьте молочник, это называется вперед.

Если вы попросите молочника поговорить с матерью внутри вашего или попросите молочника поговорить с вашим отцом, который находится в его офис (другой домен), то это называется перенаправлением.

Ответ 6

При отправке запроса

- объекты запроса и ответа передаются. -url остается неизменным.

При перенаправлении запроса на другой JSP/сервлет,

-request и объекты ответа не переносятся на новый объект. -Url переходит в каталог новой страницы.