Odwzorowanie filtru Web.xml w serwlecie JSP z przykładem

Spisie treści:

Anonim

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

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.