Почему перенаправленный запрос снова проходит через цепочку фильтров? - PullRequest
3 голосов
/ 13 июля 2011

Я реализовал не обычную архитектуру для приложения Grails, потому что я сделал фронт-контроллер, который только пересылает запросы дальше (на основе некоторых критериев).Я также реализовал преобразователь локали в виде фильтра запросов сервлетов http.И оказалось, что перенаправленный запрос снова проходит через цепочку фильтров.Итак, поток выглядит следующим образом:

  1. Запрос поступает в приложение Grails
  2. Запрос проходит через мой фильтр
  3. Фронт-контроллер получает запрос и направляет его дальше
  4. Пересланный запрос снова проходит через мой фильтр
  5. Обратный контроллер получает запрос

За время написания этого поста я придумал, как его опуститьпроблема (моя реализация специфична).Но все же мне любопытно, почему это происходит?Форвард должен работать за сценой.Спецификация Java EE ничего не говорит об этом поведении ( forward javadoc ).

1 Ответ

5 голосов
/ 13 июля 2011

В элементе <filter-mapping> есть опция вперед <dispatcher>. Включает в себя FORWARD. Вам нужно будет перечислить опции, к которым вы хотите применить фильтр (запрос, ошибка, включить) и пропустить вперед.

...