Какая польза от фильтра и цепочки в сервлете? - PullRequest
22 голосов
/ 08 ноября 2010

chain.doFilter(req,res);
Мы использовали это в программе сервлетов. Я хочу знать, в чем польза метода doFilter() в сервлете? Кроме того, какова концепция фильтра и цепочки в сервлетах Java?

Ответы [ 3 ]

35 голосов
/ 08 ноября 2010

Фильтры сервлетов являются реализацией схемы цепочки ответственности

Суть в том, что каждый фильтр остается «впереди» и «позади» каждого сервлета, которому он сопоставлен.Поэтому, если у вас есть фильтр вокруг сервлета, у вас будет:

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(..), и в этом случае сервлет никогда не будет вызываться,Это полезно в целях безопасности - например, вы можете проверить, вошел ли пользователь в систему.

20 голосов
/ 11 ноября 2015

Что такое фильтры?

Filters используются для intercept and process requests перед отправкой сервлетам (в случае запроса).

OR

Filters используются для intercept and process a response перед отправкой сервлету обратно клиенту.

enter image description here

Почему они используются?

- Фильтры могут выполнять проверки безопасности.

-Сжать поток ответов.

-Создайте другой ответ.

Что делает doFilter ()?

doFilter() называется every time, контейнер определяет, что фильтр должен быть применен к странице.

Требуется three arguments

-> ServletRequest

-> ServlerResponse

-> FilterChain

Все functionality that your filter supposed to do реализовано в методе doFilter().

Что такое FilterChain?

Ваш filters do not know anything about the other filters and servlet. FilterChain знает order of the invocation of filters и driven по filter elements, которые вы определили в DD.

12 голосов
/ 08 ноября 2010

Фильтры дополняют сервлеты. Для использования, вы должны прочитать это, Основы фильтров . Фильтры реализуются с использованием Цепочка ответственности GoF-шаблон.

...