Hva er JSP Filter?
- Filtre brukes til å filtrere funksjonaliteten til Java-webapplikasjonen.
- De fanger opp forespørslene fra klienten før de prøver å få tilgang til ressursen
- De manipulerer svarene fra serveren og sendes til klienten.
Typer filtre i JSP
- Autentiseringsfiltre
- Datakomprimeringsfiltre
- Krypteringsfiltre
- MIME kjedefiltre
- Logge filtre
- Tokeniserende filtre
Filtre er definert i web.xml, og de er et kart til servlet eller JSP. Når JSP-container starter med webapplikasjonen, oppretter den forekomsten av hvert filter som er deklarert i distribusjonsbeskrivelsen.
Følgende er filtermetodene:
-
Offentlig ugyldig doFilter (ServletRequest, ServletResponse, FilterChain)
Dette kalles hver gang en forespørsel / svar sendes fra hver klient når det blir forespurt fra en ressurs.
-
Offentlig ugyldig init (FilterConfig)
Dette er for å indikere at filteret tas i bruk
-
Offentlig tomrom ødelegge ()
Dette for å indikere at filteret er tatt ut av drift.
Eksempel:
I dette eksemplet har vi laget filter og kartlagt i web.xml
Gurufilter.java
demotest pakke;importere java.io.IOException;importere java.util.Date;importere javax.servlet.Filter;importere javax.servlet.FilterChain;importere javax.servlet.FilterConfig;importere javax.servlet.ServletException;importere javax.servlet.ServletRequest;importere javax.servlet.ServletResponse;importere Javax.servlet.http.HttpServletRequest;offentlig klasse GuruFilter implementerer filter {public void doFilter (ServletRequest-forespørsel, ServletResponse-svar, Filterchain-kjede) kaster IOException, ServletException {// TODO Auto-generert metodestubHttpServletRequest req = (HttpServletRequest) forespørsel;Streng ipAddress = req.getRemoteAddr ();System.out.println ("IP-adresse" + ipAddress + ", tiden er"+ ny dato (). toString ());// send forespørselen langs filterkjedenchain.doFilter (forespørsel, svar);}/ *** @se Filter # init (FilterConfig)* /public void init (FilterConfig fConfig) kaster ServletException {Strengguruparam = fConfig.getInitParameter ("guru-param");// Skriv ut init-parameterenSystem.out.println ("Test Param: + guruparam);}}
Web.xml
xml version = "1.0" koding = "UTF-8"?>test GuruFilter GuruFilter demotest.GuruFilter guru-param Dette er guru paramter GuruFilter / GuruFilter
Forklaring av koden:
Gurufilter.java
Kodelinje 17-32 : Her bruker vi "doFilter" -metoden der vi får forespørselsobjekt (i vårt eksempel er forespørselsobjektet req (HttpServletRequest-objekt)) og får fjernadressen til klienten og skriver ut på konsollen og skriver også ut dato og klokkeslett på konsollen.
Kodelinje 33-37 : Her bruker vi init-metoden der vi tar init-parameteren og skriver ut init-parameteren i konsollen.
Web.xml
Kodelinje 10-11 - Kartlegging av GuruFilter med klassenavnet GuruFilter.java hvor vi har filternavn som GuruFilter og filterklasse som er katalogbanen til GuruFilter-klassen
Kodelinje 13-15 - Kartlegging av init-parameteren kalt guru-param og å få verdien av den som er plassert under filteretiketten, slik at denne init-parameteren er definert for gurufilter
Produksjon:
Når du utfører koden ovenfor, får du følgende utgang:
- Utgangen er Test Param fra init-parameteren
- Og henter IP-adresse, dato og klokkeslett for den.