Что такое фильтр 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
xml version = "1.0" encoding = "UTF-8"?><имя-дисплея>тест <фильтр><описание><имя-дисплея>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-адреса, даты и времени.