Co to jest filtr JSP?
- Filtry służą do filtrowania funkcjonalności aplikacji internetowej Java.
- Przechwytują żądania od klienta, zanim spróbują uzyskać dostęp do zasobu
- Manipulują odpowiedziami z serwera i wysyłane do klienta.
Rodzaje filtrów w JSP
- Filtry uwierzytelniania
- Filtry kompresji danych
- Filtry szyfrowania
- Filtry łańcuchowe MIME
- Filtry rejestrowania
- Filtry tokenizujące
Filtry są zdefiniowane w pliku web.xml i stanowią mapę do serwletu lub strony JSP. Gdy kontener JSP uruchamia się z aplikacją WWW, tworzy instancję każdego filtru zadeklarowanego w deskryptorze wdrażania.
Poniżej przedstawiono metody filtrowania:
-
Public void doFilter (ServletRequest, ServletResponse, FilterChain)
Jest to wywoływane za każdym razem, gdy żądanie / odpowiedź jest przekazywane od każdego klienta, gdy jest żądane z zasobu.
-
Publiczne void init (FilterConfig)
Ma to na celu wskazanie, że filtr został oddany do użytku
-
Pustka publiczna zniszczyć ()
Wskazuje to, że filtr został wycofany z eksploatacji.
Przykład:
W tym przykładzie utworzyliśmy filtr i zmapowaliśmy go w pliku web.xml
Gurufilter.java
pakiet demotest;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;public class GuruFilter implementuje Filter {public void doFilter (żądanie ServletRequest, odpowiedź ServletResponse, łańcuch filtrów) rzuca IOException, ServletException {// TODO Automatycznie wygenerowany kod pośredniczący metodyHttpServletRequest req = (HttpServletRequest) żądanie;String ipAddress = req.getRemoteAddr ();System.out.println ("Adres IP" + adres ip + ", Czas to"+ nowa data (). toString ());// przekazuje żądanie wzdłuż łańcucha filtrówchain.doFilter (żądanie, odpowiedź);}/ *** @see Filter # init (FilterConfig)* /public void init (FilterConfig fConfig) rzuca ServletException {String guruparam = fConfig.getInitParameter ("guru-param");// Wydrukuj parametr initSystem.out.println ("Test Param: + guruparam);}}
Web.xml
xml version = "1.0" encoding = "UTF-8"?>test GuruFilter GuruFilter demotest.GuruFilter guru-param To jest parametr guru GuruFilter / GuruFilter
Wyjaśnienie kodu:
Gurufilter.java
Linia kodu 17-32 : Tutaj używamy metody "doFilter" gdzie pobieramy obiekt żądania (w naszym przykładzie obiektem żądania jest req (obiekt HttpServletRequest)) i pobieramy zdalny adres klienta i drukujemy na konsoli, a także drukujemy datę i godzinę na konsoli.
Linia kodu 33-37 : Tutaj używamy metody init, w której pobieramy parametr init i wypisujemy parametr init w konsoli.
Web.xml
Code Line 10-11 - Mapowanie GuruFilter z nazwą klasy GuruFilter.java, gdzie mamy nazwę filtra jako GuruFilter i klasę filtru będącą ścieżką do katalogu klasy GuruFilter
Linia kodu 13-15 - Mapowanie parametru init o nazwie guru-param i pobieranie jego wartości, która jest umieszczona pod znacznikiem filtru, więc ten parametr init został zdefiniowany dla gurufilter
Wynik:
Po wykonaniu powyższego kodu otrzymasz następujące dane wyjściowe:
- Dane wyjściowe to Test Param z parametru init
- I pobieranie adresu IP, daty i godziny.