Какой объект можно использовать для перехвата всех запросов к веб-приложению, прежде чем они достигнут JSP или сервлета? - PullRequest
2 голосов
/ 08 января 2011

Какой объект можно использовать для перехвата всех запросов к веб-приложению, прежде чем они достигнут JSP или сервлета?Я думаю, что ответ может быть фильтром, но я не уверен, что есть более конкретный ответ.

Ответы [ 3 ]

3 голосов
/ 08 января 2011

Фильтр - это путь. Вы можете сопоставить фильтр так же, как сервлет, чтобы он мог охватывать весь веб-сайт или только его части.

Редактировать для комментария -

Да, это именно то, что вам нужно сделать. Фильтры являются первой частью цепочки запросов. Ну, после отправки контейнером, но первая часть, к которой у вас, как у разработчика, есть доступ.

Фильтры могут быть объединены в цепочку, и каждый из них может опередить цепочку запросов (таким образом, никогда не затрагивая более поздние фильтры или сервлеты (JSP - это сервлеты), они могут переходить по цепочке запросов и узурпировать результаты запроса цепочка (то есть они могут изменить или отклонить вывод компонентов ниже. Вы можете считать это реализацией шаблона Decorator.

Некоторые типичные фильтры включают фильтры безопасности (проверяют, имеет ли запрос доступ к требуемому ресурсу), фильтры сжатия, фильтры изменения запроса (например, функциональность Apaches mod_rewrite была реализована как фильтр). Фильтры могут полностью заменить фактический объект запроса и ответа (многие делают это путем обертывания существующих), поэтому они действительно имеют полный контроль над цепочкой запросов, и возможный сервлет или статический ресурс не имеют представления о существовании фильтра.

Фильтры - замечательный аспект стека сервлетов.

1 голос
/ 08 января 2011

Да Фильтр - правильный ответ.Просто хотел добавить в шаблон проектирования MVC аналогичную вещь, которую можно сделать с помощью сервлета контроллера.Который сначала принимает все запросы, прежде чем переехать куда-то еще.

1 голос
/ 08 января 2011

Фильтр - лучший способ направить весь запрос к jsp / servlet,

Использование: 1. Проверить, есть ли у пользователя действительный сеанс. 2. Добавьте атрибут к запросу. 3. Сожмите выходной поток в случае загрузки файла. 4. Аналитический запрос, то есть часто посещаемая страница для бизнес-аналитика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...