Kaj je filter JSP?
- Filtri se uporabljajo za filtriranje funkcionalnosti spletne aplikacije Java.
- Zahteve odjemalca prestrežejo, preden poskušajo dostopati do vira
- Manipulirajo z odgovori strežnika in jih pošljejo odjemalcu.
Vrste filtrov v JSP
- Filtri za preverjanje pristnosti
- Filtri za stiskanje podatkov
- Šifrirni filtri
- Verižni filtri MIME
- Filtri za beleženje
- Tokenizirajoči filtri
Filtri so definirani v web.xml in so zemljevid za strežniški programček ali JSP. Ko se vsebnik JSP zažene s spletno aplikacijo, ustvari primerek vsakega filtra, ki je bil prijavljen v deskriptorju razmestitve.
Sledijo metode filtriranja:
-
Javna void doFilter (ServletRequest, ServletResponse, FilterChain)
To se imenuje vsakič, ko se zahteva / odgovor pošlje od vsakega odjemalca, ko se zahteva od vira.
-
Javna void init (FilterConfig)
To pomeni, da je filter dan v uporabo
-
Javna praznina uniči ()
To pomeni, da je bil filter odstranjen iz uporabe.
Primer:
V tem primeru smo ustvarili filter in preslikali v web.xml
Gurufilter.java
demotest paketa;import java.io.IOException;uvoz 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;javni razred GuruFilter izvaja Filter {public void doFilter (zahteva za ServletRequest, odgovor ServletResponse, veriga filtrov) vrže IOException, ServletException {// TODO Samodejno ustvarjena škrbina metodeHttpServletRequest req = (HttpServletRequest) zahteva;Niz ipAddress = req.getRemoteAddr ();System.out.println ("IP naslov" + ipAddress + ", čas je"+ nov datum (). toString ());// podajamo zahtevo po verigi filtrovchain.doFilter (zahteva, odgovor);}/ *** @see Filter # init (FilterConfig)* /javna void init (FilterConfig fConfig) vrže ServletException {Niz guruparam = fConfig.getInitParameter ("guru-param");// Natisni parameter initSystem.out.println ("Test Param: + guruparam);}}
Web.xml
xml version = "1.0" encoding = "UTF-8"?>test GuruFilter GuruFilter demotest.GuruFilter guru-param To je guru paramter GuruFilter / GuruFilter
Pojasnilo kode:
Gurufilter.java
Vrstica kode 17-32 : Tu uporabljamo metodo "doFilter", kjer dobimo objekt zahteve (v našem primeru je objekt zahteve req (objekt HttpServletRequest)) in dobimo oddaljeni naslov odjemalca ter tiskanje na konzoli in tudi tiskanje datum in čas na konzoli.
Vrstica kode 33-37 : Tu uporabljamo metodo init, kjer vzamemo parameter init in v konzoli natisnemo parameter init.
Web.xml
Vrstica kode 10-11 - Preslikava GuruFilter z imenom razreda GuruFilter.java, kjer imamo ime filtra kot GuruFilter in razred filtra, ki je pot imenika razreda GuruFilter
Vrstica kode 13-15 - Preslikava parametra init z imenom guru-param in pridobivanje njegove vrednosti, ki je postavljena pod oznako filtra, tako da je ta init-param definiran za gurufilter
Izhod:
Ko zaženete zgornjo kodo, dobite naslednji izhod:
- Rezultat je Test Param iz parametra init
- In pridobivanje naslova IP, datuma in ure.