Отображение фильтра Web.xml в сервлете JSP с примером

Содержание:

Anonim

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

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

Типы фильтров в JSP

  • Фильтры аутентификации
  • Фильтры сжатия данных
  • Фильтры шифрования
  • Цепные фильтры MIME
  • Фильтры журналов
  • Токенизирующие фильтры

Фильтры определены в файле web.xml и являются отображением сервлета или JSP. Когда контейнер JSP запускается с веб-приложением, он создает экземпляр каждого фильтра, который был объявлен в дескрипторе развертывания.

Ниже приведены методы фильтрации:

  • Public void doFilter (ServletRequest, ServletResponse, FilterChain)

    Это вызывается каждый раз, когда запрос / ответ передается от каждого клиента, когда он запрашивается у ресурса.

  • Открытая пустая инициализация (FilterConfig)

    Это означает, что фильтр введен в эксплуатацию.

  • Public void destroy ()

    Это означает, что фильтр был выведен из эксплуатации.

Пример:

В этом примере мы создали фильтр и отображаем его в web.xml.

Gurufilter.java

демотест пакета;import java.io.IOException;import java.util.Date;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import Javax.servlet.http.HttpServletRequest;открытый класс GuruFilter реализует Filter {public void doFilter (запрос ServletRequest, ответ ServletResponse, цепочка Filterchain) выбрасывает IOException, ServletException {// TODO Заглушка автоматически сгенерированного методаHttpServletRequest req = (HttpServletRequest) запрос;Строка ipAddress = req.getRemoteAddr ();System.out.println ("IP-адрес" + ipAddress + ", время"+ новая дата (). toString ());// передаем запрос по цепочке фильтровchain.doFilter (запрос, ответ);}/ *** @ см. фильтр # init (FilterConfig)* /public void init (FilterConfig fConfig) выбрасывает ServletException {String guruparam = fConfig.getInitParameter ("гуру-параметр");// Распечатываем параметр инициализацииSystem.out.println ("Тестовый параметр: + guruparam);}}

Web.xml

<имя-дисплея>тест <фильтр><описание><имя-дисплея>GuruFilter  GuruFilter  demotest.GuruFilter 
 guru-param 
 Это параметр гуру  GuruFilter  / GuruFilter 

Расшифровка кода:

Gurufilter.java

Строка кода 17-32 : здесь мы используем метод «doFilter», в котором мы получаем объект запроса (в нашем примере объект запроса - это req (объект HttpServletRequest)) и получаем удаленный адрес клиента и печатаем на консоли, а также печатаем дата и время на консоли.

Строка кода 33–37 : Здесь мы используем метод инициализации, в котором мы берем параметр инициализации и выводим параметр инициализации в консоль.

Web.xml

Строка кода 10-11 - Отображение GuruFilter с именем класса GuruFilter.java, где у нас есть имя фильтра как GuruFilter и класс фильтра, который является путем к каталогу класса GuruFilter

Строка кода 13-15 - Отображение параметра инициализации с именем guru-param и получение его значения, которое помещается в тег фильтра, поэтому этот параметр инициализации был определен для gurufilter.

Выход:

Когда вы выполните приведенный выше код, вы получите следующий результат:

  • Выходные данные - это Test Param из параметра инициализации.
  • И получение IP-адреса, даты и времени.