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
xml version = "1.0" encoding = "UTF-8"?>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.