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