Зіставлення фільтрів Web.xml у сервлеті JSP з прикладом

Зміст:

Anonim

Що таке JSP-фільтр?

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

Типи фільтрів у JSP

  • Фільтри аутентифікації
  • Фільтри стиснення даних
  • Фільтри шифрування
  • Ланцюгові фільтри MIME
  • Фільтри реєстрації
  • Токеннізуючі фільтри

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

Нижче наведено методи фільтрації:

  • Публічна порожнеча doFilter (ServletRequest, ServletResponse, FilterChain)

    Це називається щоразу, коли запит / відповідь передається від кожного клієнта, коли він запитується з ресурсу.

  • Публічний пустий init (FilterConfig)

    Це означає, що фільтр введений в експлуатацію

  • Public void знищення ()

    Це означає, що фільтр вилучено з експлуатації.

Приклад:

У цьому прикладі ми створили фільтр і зіставили його в web.xml

Gurufilter.java

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

Web.xml

<ім'я відображення>тест <фільтр><опис><ім'я відображення>GuruFilter  GuruFilter  demotest.GuruFilter 
 гуру-парам 
 Це параметр гуру <відображення фільтрів> GuruFilter  / GuruFilter 

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

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 та отримання значення, яке розміщується під тегом фільтра, щоб цей init-param був визначений для gurufilter

Вихід:

При виконанні наведеного вище коду ви отримуєте такий результат:

  • Результатом є Test Param з параметра init
  • І отримання IP-адреси, дати та часу.