Подтвердить что ты не робот

Каково использование фильтра и цепи в сервлете?

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

4b9b3361

Ответ 1

Сервлет-фильтры - это реализация цепочки ответственности

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

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

Ответ 2

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

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

ИЛИ

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

введите описание изображения здесь

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

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

-Сообщение потока ответов.

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

Что делает 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.