Hvad er JSP-filter?
- Filtre bruges til filtrering af Java-webapplikationens funktionalitet.
- De opfanger anmodningerne fra klienten, før de prøver at få adgang til ressourcen
- De manipulerer svarene fra serveren og sendes til klienten.
Typer af filtre i JSP
- Godkendelsesfiltre
- Datakomprimeringsfiltre
- Krypteringsfiltre
- MIME-kædefiltre
- Logning af filtre
- Tokeniserende filtre
Filtre er defineret i web.xml, og de er et kort til servlet eller JSP. Når JSP-container starter med webapplikationen, opretter den forekomsten af hvert filter, der er erklæret i installationsbeskrivelsen.
Følgende er filtermetoderne:
-
Offentligt ugyldigt doFilter (ServletRequest, ServletResponse, FilterChain)
Dette kaldes hver gang, når en anmodning / svar sendes fra hver klient, når det anmodes om fra en ressource.
-
Offentlig ugyldig init (FilterConfig)
Dette er for at indikere, at filteret tages i brug
-
Offentligt tomrum ødelægge ()
Dette for at indikere, at filteret er taget ud af drift.
Eksempel:
I dette eksempel har vi oprettet filter og kortlagt i web.xml
Gurufilter.java
demotest pakke;importere java.io.IOException;importere java.util.Date;importere javax.servlet.Filter;importere javax.servlet.FilterChain;import javax.servlet.FilterConfig;importere javax.servlet.ServletException;import javax.servlet.ServletRequest;importere javax.servlet.ServletResponse;importer Javax.servlet.http.HttpServletRequest;offentlig klasse GuruFilter implementerer filter {public void doFilter (ServletRequest anmodning, ServletResponse svar, Filterchain kæde) kaster IOException, ServletException {// TODO Auto-genereret metodestubHttpServletRequest req = (HttpServletRequest) anmodning;String ipAddress = req.getRemoteAddr ();System.out.println ("IP-adresse" + ipAddress + ", tiden er"+ ny dato (). toString ());// send anmodningen langs filterkædenchain.doFilter (anmodning, svar);}/ *** @se Filter # init (FilterConfig)* /public void init (FilterConfig fConfig) kaster ServletException {String guruparam = fConfig.getInitParameter ("guru-param");// Udskriv init-parameterenSystem.out.println ("Testparameter: + guruparam);}}
Web.xml
xml version = "1.0" kodning = "UTF-8"?>test GuruFilter GuruFilter demotest.GuruFilter guru-param Dette er guru paramter GuruFilter / GuruFilter
Forklaring af koden:
Gurufilter.java
Kodelinje 17-32 : Her bruger vi "doFilter" -metoden, hvor vi får anmodningsobjekt (i vores eksempel er anmodningsobjektet req (HttpServletRequest-objekt)) og får fjernadressen til klienten og udskriver på konsollen og udskriver også dato og klokkeslæt på konsollen.
Kodelinje 33-37 : Her bruger vi init-metoden, hvor vi tager init-parameteren og udskriver init-parameteren i konsollen.
Web.xml
Kodelinje 10-11 - Kortlægning af GuruFilter med klassenavnet GuruFilter.java, hvor vi har filternavn som GuruFilter og filterklasse, som er katalogstien til GuruFilter-klassen
Kodelinje 13-15 - Kortlægning af init-parameteren med navnet guru-param og hentning af værdien af den, der er placeret under filtermærket, så denne init-param er defineret til gurufilter
Produktion:
Når du udfører ovenstående kode, får du følgende output:
- Outputtet er Test Param fra init-parameteren
- Og henter IP-adresse, dato og klokkeslæt for den.