Перенаправить или переслать - PullRequest
5 голосов
/ 27 марта 2012

Просматривая какой-то унаследованный код, используя передние стойки, я вижу:

<global-forwards>
     ...
     <forward name="accessDenied" path="/www/jsp/AccessDeniedForm.do" redirect="true" />
</global-forwards>

Так что это просто глобальная пересылка для отправки на страницу запрещенного доступа. Мне любопытно решение о перенаправлении, а не о переадресации. Каковы преимущества и недостатки его использования?

Ответы [ 3 ]

5 голосов
/ 29 марта 2012

Каковы "за" и "против" его использования?

Прежде чем обсуждать "за" и "против" использования этого элемента forward с перенаправлением, установленным в true, давайте разберемся, что на самом деле происходит с этимконфигурации.Если для элемента перенаправления задано значение true в элементе forward, пользовательскому агенту должна быть выдана инструкция перенаправления, чтобы для этого ресурса пересылки был создан новый запрос.Эта ссылка , вероятно, предоставит подробную информацию, которая вам нужна.

Значение по умолчанию для перенаправления - false, по сути, когда вызывается элемент forward, он перенаправляет на указанный путь и все.Если вы устанавливаете перенаправление на true, например, браузер сделает другой запрос.Поэтому я думаю, что, сказав это, вы, вероятно, знаете или имеете идею за и против, если действительно хотите ее использовать.

1 голос
/ 01 апреля 2012

В перенаправлении элемент управления может быть направлен на другие серверы или даже на другое доменное имя. Перенаправление выполняется в оба конца. Когда перенаправление выполняется, оно отправляется обратно клиенту, а информация о перенаправленном URL-адресе находится в заголовке с указанием браузер, чтобы перейти к следующему URL. Это будет действовать как новый запрос, и все данные запроса и ответа будут потеряны.

В дальнейшем пересылка выполняется со стороны сервера, URL-адрес браузера клиента не изменяется. Данные также не теряются. Это похоже на обновление страницы браузера. Любые данные, опубликованные в первой отправке, отправляются повторно. Поэтому используйте их с осторожностью.

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

Переадресация медленнее, так как для нее требуется обратная поездка. Вперед быстрее.

0 голосов
/ 02 февраля 2016

Если указать

redirect = "true" , Struts использует перенаправление на стороне клиента

[response.sendRedirect ()]

.JSP будет вызван новым запросом браузера, и все данные, сохраненные в старом запросе, будут потеряны.

...