Mapování filtru Web.xml v servletu JSP s příkladem

Obsah:

Anonim

Co je filtr JSP?

  • Filtry se používají k filtrování funkcí webové aplikace Java.
  • Zachytávají požadavky od klienta, než se pokusí o přístup ke zdroji
  • Manipulují s odpověďmi ze serveru a zasílají klientovi.

Typy filtrů v JSP

  • Filtry ověřování
  • Filtry pro kompresi dat
  • Šifrovací filtry
  • Filtry řetězu MIME
  • Protokolovací filtry
  • Tokenizační filtry

Filtry jsou definovány v souboru web.xml a jsou mapou na servlet nebo JSP. Když kontejner JSP začíná webovou aplikací, vytvoří instanci každého filtru, který byl deklarován v deskriptoru implementace.

Následují metody filtrování:

  • Public void doFilter (ServletRequest, ServletResponse, FilterChain)

    Toto se nazývá pokaždé, když je požadavek / odpověď předána od každého klienta, když je požadována ze zdroje.

  • Veřejná neplatná inicializace (FilterConfig)

    To znamená, že je filtr uveden do provozu

  • Zničení veřejné prázdniny ()

    To znamená, že filtr byl vyřazen z provozu.

Příklad:

V tomto příkladu jsme vytvořili filtr a mapovali jsme jej v souboru web.xml

Gurufilter.java

balíček 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;importovat Javax.servlet.http.HttpServletRequest;veřejná třída GuruFilter implementuje filtr {public void doFilter (požadavek ServletRequest, odpověď ServletResponse, řetěz Filterchain) vyvolá IOException, ServletException {// TODO Automaticky generovaný útržek metodyHttpServletRequest req = (HttpServletRequest) požadavek;Řetězec ipAddress = req.getRemoteAddr ();System.out.println ("IP adresa" + ipAddress + ", čas je"+ nové datum (). toString ());// předat požadavek podél řetězce filtrůchain.doFilter (požadavek, odpověď);}/ *** @ See Filter # init (FilterConfig)* /public void init (FilterConfig fConfig) vyvolá ServletException {Řetězec guruparam = fConfig.getInitParameter ("guru-param");// Vytiskne parametr initSystem.out.println ("Testovací parametr: + guruparam);}}

Web.xml

test 
GuruFilter  GuruFilter  demotest.GuruFilter 
 guru-param 
 Toto je guru parametr  GuruFilter  / GuruFilter 

Vysvětlení kódu:

Gurufilter.java

Řádek kódu 17-32 : Zde používáme metodu „doFilter“, kde dostáváme objekt požadavku (v našem příkladu je objekt požadavku req (objekt HttpServletRequest)) a získáváme vzdálenou adresu klienta a tisk na konzoli a také tisk datum a čas na konzole.

Řádek kódu 33-37 : Zde používáme metodu init, kdy v konzole bereme parametr init a tisk parametru init.

Web.xml

Řádek kódu 10-11 - Mapování GuruFilter s názvem třídy GuruFilter.java, kde máme název filtru jako GuruFilter a třídu filtru, což je cesta k adresáři třídy GuruFilter

Řádek kódu 13-15 - Mapování parametru init s názvem guru-param a získání jeho hodnoty, která je umístěna pod značkou filtru, takže tento parametr init byl definován pro gurufilter

Výstup:

Když spustíte výše uvedený kód, získáte následující výstup:

  • Výstupem je Test Param z parametru init
  • A načítání IP adresy, data a času.