Вы можете рассматривать клапаны как эквивалент для фильтров, но на стороне сервера, а не на стороне приложения. Например. Вы должны развернуть клапан на сервере и, как правило, не сможете выполнить горячее развертывание его новых версий без перезапуска сервера. Вы можете повторно развернуть фильтр, повторно развернув свое приложение, содержащее фильтр.
И клапаны, и фильтры чувствительны к порядку: когда вы используете Valves (tomcat использует их для аутентификации на стороне сервера), и вы уверены, что пользователь аутентифицирован, но вы не получите принципала, ваш клапан, похоже, работает перед аутентификационным клапаном Tomcat. Вы можете убедиться, что ваш клапан настроен в правильном порядке, или переместить реализацию на фильтр, потому что фильтры всегда работают после , когда все клапаны работают.
В принципе, они очень похожи. Фильтры определяются спецификацией сервлета, а Valves (являющиеся частью реализации сервера) определяются Tomcat.