разница между клапаном и фильтром - PullRequest
29 голосов
/ 04 апреля 2011

Может кто-нибудь объяснить разницу между сервлетным фильтром и клапаном Tomcat.В чем преимущество использования одного над другим?

Ответы [ 3 ]

42 голосов
/ 04 апреля 2011

Из документации Tomcat:

Элемент Valve представляет компонент, который будет вставлен в конвейер обработки запросов для соответствующего контейнера Catalina

Фильтры сервлета служат дляточно такая же цель, но клапаны - это особые классы Tomcat, тесно связанные с инфраструктурой / API Tomcat.С другой стороны, API сервлетов реализован всеми совместимыми веб-контейнерами.Тем не менее, клапаны не будут работать, например, с Jetty, у которого есть другой API для этого, в то время как фильтры сервлетов будут.

Другое важное отличие состоит в том, что клапаны работают на уровне контейнера (перехватывая все приложения / запросы),в то время как фильтры сервлета перехватывают весь запрос только к данному приложению.Поэтому, если вы хотите внедрить перехватчик для всего сервера, необходимы клапаны.

10 голосов
/ 04 апреля 2011

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

Клапаны должны использоваться только для функций, которые требуют доступа к API-интерфейсам native-tomcat.Что довольно редко.

2 голосов
/ 12 августа 2013

Не совсем верно.С помощью фильтров вы можете воздействовать на некоторые части приложений, движков или хостов с помощью шаблона url.Клапаны влияют только на все части приложения, движков или хоста.Клапаны не имеют URL-шаблона.Это все.Извините за мой английский.Я надеюсь, что это решило ваши вопросы.

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