Фильтры (Java Filter). Назначение. Принципы применения

Фильтр – это класс Java, реализующий интерфейс Filter, и выполняющий роль препроцессора запроса. С помощью фильтра можно осуществить доступ к ресурсу непосредственно перед запросом, блокировать, предварительно обработать или модифицировать запрос, изменить ответ и т. п.

Фильтры могут быть использованы для различных ресурсов: сервлетов, jspстраниц, html-страниц и др. Один и тот же фильтр может быть назначен разным ресурсам. С другой стороны одному ресурсу может быть назначено несколько фильтров – в этом случае они образуют цепочкуфильтров.

Технология фильтров основывается на использовании трех основных интерфейсов: Filter, FilterChain и FilterConfig.

- Интерфейс Filter является важнейшим интерфейсом и предназначен для фильтрации запросов и ответов.

- Интерфейс FilterChain реализуется web-контейнером и используется для организации цепочки фильтров. С помощью этого интерфейса можно заблокировать доступ к ресурсу.

- Интерфейс FilterConfig тоже реализуется web-контейнером и предназначен для информирования фильтра о его окружении.

Любой фильтр должен реализовать три обязательных метода: init, destroy и doFilter. Все методы вызываются web-контейнером, а последовательность их вызова определяет жизненный цикл фильтра.

package flt;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class Flt1 implements Filter {

public void init(FilterConfig cfg) throws ServletException {

System. out. println("Flt1:init");

}

public void destroy() {

System. out. println("Flt1:destroy");

}

public void doFilter(ServletRequest rq, ServletResponse rs, FilterChain ch)

throws IOException, ServletException {

}

}

<filter>

<filter-name>Flt1</filter-name>

<filter-class>flt.Flt1</filter-class>

</filter>

<filter-mapping>

<filter-name>Flt1</filter-name>

<url-pattern>/ Sss </url-pattern>

</filter-mapping>



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: