logo search
Ответы к экзамену по ПИИ

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

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

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

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

Любой фильтр должен реализовать три обязательных метода: 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>