Što je JSP filtar?
- Filteri se koriste za filtriranje funkcionalnosti Java web aplikacije.
- Presreću zahtjeve klijenta prije nego što pokušaju pristupiti resursu
- Oni manipuliraju odgovorima s poslužitelja i šalju ih klijentu.
Vrste filtera u JSP-u
- Filteri za provjeru autentičnosti
- Filtri za kompresiju podataka
- Filtri za šifriranje
- MIME lančani filtri
- Filteri za bilježenje
- Tokeniziranje filtera
Filteri su definirani u web.xml, a oni su mapa za servlet ili JSP. Kada JSP spremnik započne s web aplikacijom, on stvara instancu svakog filtra koji je deklariran u deskriptoru implementacije.
Slijede metode filtriranja:
-
Javna void doFilter (ServletRequest, ServletResponse, FilterChain)
To se naziva svaki put kada se zahtjev / odgovor prosljeđuje od svakog klijenta kada se traži od resursa.
-
Javna void init (FilterConfig)
To znači da je filtar pušten u rad
-
Javna praznina uništiti ()
To znači da je filtar uklonjen iz servisa.
Primjer:
U ovom smo primjeru stvorili filtar i mapirali u web.xml
Gurufilter.java
demotest paketa;import java.io.IOException;import java.util.Date;uvoz javax.servlet.Filter;uvoz javax.servlet.FilterChain;uvoz javax.servlet.FilterConfig;uvoz javax.servlet.ServletException;uvoz javax.servlet.ServletRequest;uvoz javax.servlet.ServletResponse;uvoz Javax.servlet.http.HttpServletRequest;javna klasa GuruFilter provodi Filter {javna void doFilter (zahtjev za ServletRequest, odgovor ServletResponse, lanac filtra) baca IOException, ServletException {// TODO Automatski generirani kvar metodeHttpServletRequest req = (HttpServletRequest) zahtjev;Niz ipAddress = req.getRemoteAddr ();System.out.println ("IP adresa" + ipAddress + ", Vrijeme je"+ novi datum (). toString ());// prosljeđivanje zahtjeva duž lanca filtrachain.doFilter (zahtjev, odgovor);}/ *** @see Filter # init (FilterConfig)* /javna void init (FilterConfig fConfig) baca ServletException {Niz guruparam = fConfig.getInitParameter ("guru-param");// Ispis parametra initSystem.out.println ("Test Param: + guruparam);}}
Web.xml
xml version = "1.0" encoding = "UTF-8"?>test GuruFilter GuruFilter demotest.GuruFilter guru-param Ovo je guru paramter GuruFilter / GuruFilter
Objašnjenje koda:
Gurufilter.java
Redak koda 17-32 : Ovdje koristimo metodu "doFilter" gdje dobivamo objekt zahtjeva (u našem primjeru objekt zahtjeva je req (objekt HttpServletRequest)) i dobivamo udaljenu adresu klijenta i ispis na konzoli te ispis datum i vrijeme na konzoli.
Linija koda 33-37 : Ovdje koristimo metodu init gdje uzimamo parametar init i ispisujemo parametar init u konzoli.
Web.xml
Redak koda 10-11 - Mapiranje GuruFiltera s imenom klase GuruFilter.java gdje imamo naziv filtra kao GuruFilter i klasu filtra koja je put do direktorija klase GuruFilter
Redak koda 13-15 - Mapiranje init parametra nazvanog guru-param i dobivanje njegove vrijednosti koja se stavlja ispod oznake filtra tako da je ovaj init-param definiran za gurufilter
Izlaz:
Kada izvršite gornji kod, dobit ćete sljedeći izlaz:
- Izlaz je Test Param iz parametra init
- I dohvaćanje IP adrese, datuma i vremena.