Фильтры сервлетов являются реализацией схемы цепочки ответственности
Суть в том, что каждый фильтр остается «впереди» и «позади» каждого сервлета, которому он сопоставлен.Поэтому, если у вас есть фильтр вокруг сервлета, у вас будет:
void doFilter(..) {
// do stuff before servlet gets called
// invoke the servlet, or any other filters mapped to the target servlet
chain.doFilter(..);
// do stuff after the servlet finishes
}
У вас также есть опция , а не для вызова chain.doFilter(..)
, и в этом случае сервлет никогда не будет вызываться,Это полезно в целях безопасности - например, вы можете проверить, вошел ли пользователь в систему.