Сеня рядом и Белла пришел. Былое
Как работают фильтры сервлетов? Servlet содержит саму бизнес-логику обработки запросов. Реализации интерфейса javax.servlet.Filter выстраиваются в цепочку, через которую проходит запрос по пути в сервлет, и ответ на него по пути обратно к пользователю. Filter Chain – типичный пример реализации паттерна Chain of responsibility. Каждый фильтр может модифицировать запрос/ответ, и либо отправить на обработку следующему фильтру, либо заворачивать обратно. В фильтрах удобно выполнять некий общий код обработки запросов: отклонение неавторизованных обращений, логгирование, обогащение запроса/ответа данными из контекста. Фильтр состоит из трех методов: init, doFilter и destroy. doFilter – основная реализация фильтрации, он вызывается для каждого запроса. Инициализация и уничтожение вызываются строго по одному разу. Кроме того, сервлет-контейнер гарантирует, что их вызовы не будут пересекаться: doFilter не начнет работать до конца выполнения init, и закончит до начала destroy. Подробнее можно почитать тут #JavaEE
Java 1131. Какова цель метода filter() в стримах?
Метод filter() в Java Stream API используется для фильтрации элементов в стриме. Он принимает в качестве аргумента предикат, который определяет, оставлять элемент в стриме или удалить его. Предикат - это функция, которая принимает элемент стрима в качестве аргумента и возвращает булево значение, указывающее, оставлять элемент или удалить его. Например, если у нас есть стрим целых чисел и мы хотим оставить только четные числа, мы можем использовать метод filter() следующим образом: List<Integer> numbers = Arrays...