Spec-Zone .ru
спецификации, руководства, описания, API


javax.servlet
Фильтр интерфейса


public interface Filter

Фильтр является объектом, который выполняет задачи фильтрации или по запросу к ресурсу (сервлет или по статическому контенту), или на ответе от ресурса, или обоих.

Фильтры выполняют просачивание doFilter метод. У каждого Фильтра есть доступ к объекту FilterConfig, из которого это может получить свои параметры инициализации, и ссылку на ServletContext, который это может использовать, например, чтобы загрузить ресурсы, необходимые для того, чтобы фильтровать задачи.

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

Примеры, которые были идентифицированы для этого проекта:

  1. Фильтры аутентификации
  2. Журналирование и Контроль Фильтров
  3. Фильтры преобразования изображения
  4. Фильтры сжатия данных
  5. Фильтры шифрования
  6. Маркирование Фильтров
  7. Фильтры, которые инициировали события доступа ресурса
  8. Фильтры XSL/T
  9. Фильтр цепочки типа пантомимы

С тех пор:
Сервлет 2.3

Сводка метода
 void destroy()
          Вызванный веб-контейнером, чтобы указать к фильтру, что это берется вне обслуживания.
 void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
          doFilter метод Фильтра вызывает контейнер каждый раз, когда пару запроса/ответа передают через цепочку из-за клиентского запроса на ресурс в конце цепочки.
 void init(FilterConfig filterConfig)
          Вызванный веб-контейнером, чтобы указать к фильтру, что это помещается в службу.
 

Деталь метода

init

void init(FilterConfig filterConfig)
          throws ServletException
Вызванный веб-контейнером, чтобы указать к фильтру, что это помещается в службу.

Контейнер сервлета вызывает init метод точно однажды после инстанцирования фильтра. init метод должен завершиться успешно прежде, чем фильтр просят сделать любую работу фильтрации.

Веб-контейнер не может поместить фильтр в службу если init метод также

  1. Бросает ServletException
  2. Не возвращается в пределах периода времени, определенного веб-контейнером

Броски:
ServletException

doFilter

void doFilter(ServletRequest request,
              ServletResponse response,
              FilterChain chain)
              throws java.io.IOException,
                     ServletException
doFilter метод Фильтра вызывает контейнер каждый раз, когда пару запроса/ответа передают через цепочку из-за клиентского запроса на ресурс в конце цепочки. FilterChain, который передают в к этому методу, позволяет Фильтру передавать запрос и ответ на следующий объект в цепочке.

Типичная реализация этого метода следовала бы за следующим образцом:

  1. Исследуйте запрос
  2. Дополнительно оберните объект запроса с пользовательской реализацией, чтобы фильтровать контент или заголовки для входной фильтрации
  3. Дополнительно оберните объект ответа с пользовательской реализацией, чтобы фильтровать контент или заголовки для выходной фильтрации
    • Любой вызывает следующий объект в цепочке, используя объект FilterChain (chain.doFilter()),
    • или не передают пару запроса/ответа следующему объекту в цепочке фильтра, чтобы блокировать обработку запросов
  4. Непосредственно заголовки набора на ответе после вызова следующего объекта в цепочке фильтра.

Броски:
java.io.IOException
ServletException

уничтожить

void destroy()
Вызванный веб-контейнером, чтобы указать к фильтру, что это берется вне обслуживания.

Этот метод только вызывают, как только все потоки в пределах doFilter метода фильтра вышли или после того, как период тайм-аута передал. После того, как веб-контейнер вызывает этот метод, он не будет вызывать doFilter метод снова на этом экземпляре фильтра.

Этот метод дает фильтру возможность очистить любые ресурсы, которые сохранены (например, память, дескрипторы файлов, потоки) и удостоверяются, что любое постоянное состояние синхронизируется с текущим состоянием фильтра в памяти.



Представьте ошибку или функцию

Авторское право © 2009-2011, Oracle Corporation и/или его филиалы. Все права защищены. Использование подвергается срокам действия лицензии.

Сгенерированный на 10-February-2011 12:41

free hit counter