Учебники

15) Отображение фильтра JSP в Web.xml

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

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

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

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

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

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

  • Открытый void doFilter (ServletRequest, ServletResponse, FilterChain)

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

  • Public void init (FilterConfig)

    Это означает, что фильтр помещен в сервис

  • Public void destroy ()

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

Пример:

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

Gurufilter.java

  1. package demotest;
  2.  
  3. import java.io.IOException;
  4. import java.util.Date;
  5.  
  6. import javax.servlet.Filter;
  7. import javax.servlet.FilterChain;
  8. import javax.servlet.FilterConfig;
  9. import javax.servlet.ServletException;
  10. import javax.servlet.ServletRequest;
  11. import javax.servlet.ServletResponse;
  12. import Javax.servlet.http.HttpServletRequest;
  13.  
  14.  
  15. public class GuruFilter implements Filter {
  16. public void doFilter(ServletRequest request, ServletResponse response, Filterchain chain) throws IOException, ServletException {
  17. // TODO Auto-generated method stub
  18. HttpServletRequest req = (HttpServletRequest) request;
  19. String ipAddress = req.getRemoteAddr();
  20. System.out.println("IP Address "+ipAddress + ", Time is"
  21. + new Date().toString());
  22. // pass the request along the filter chain
  23. chain.doFilter(request, response);
  24. }
  25. /**
  26. * @see Filter#init(FilterConfig)
  27. */
  28. public void init(FilterConfig fConfig) throws ServletException {
  29. String guruparam = fConfig.getInitParameter("guru-param");
  30. //Print the init parameter
  31. System.out.println("Test Param: " + guruparam);
  32. }
  33. }

web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  4. <display-name>
  5. test</display-name>
  6. <filter>
  7. <description>
  8. </description>
  9. <display-name>
  10. GuruFilter</display-name>
  11. <filter-name>GuruFilter</filter-name>
  12. <filter-class>demotest.GuruFilter</filter-class>
  13. <init-param>
  14. <param-name>guru-param</param-name>
  15. <param-value>This is guru paramter</param-value>
  16. </init-param>
  17. </filter>
  18. <filter-mapping>
  19. <filter-name>GuruFilter</filter-name>
  20. <url-pattern>/GuruFilter</url-pattern>
  21. </filter-mapping>

Пояснение к коду:

Gurufilter.java

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

Строка кода 33-37 : здесь мы используем метод init, где мы берем параметр init и печатаем параметр init в консоли.

web.xml

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

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

Вывод:

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

Действие JSP - загрузка файла, фильтр JSP, запрос клиента, ответ сервера, обработка файлов cookie, обработка дат

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