Vad är JSP-filter?
- Filter används för filtrering av Java-webbapplikationen.
- De avlyssnar förfrågningarna från klienten innan de försöker komma åt resursen
- De manipulerar svaren från servern och skickas till klienten.
Typer av filter i JSP
- Autentiseringsfilter
- Datakomprimeringsfilter
- Krypteringsfilter
- MIME-kedjefilter
- Loggningsfilter
- Tokeniserande filter
Filter definieras i web.xml och de är en karta till servlet eller JSP. När JSP-behållaren startar med webbapplikationen skapas den instans av varje filter som har deklarerats i distributionsbeskrivaren.
Följande är filtermetoderna:
-
Public void doFilter (ServletRequest, ServletResponse, FilterChain)
Detta kallas varje gång när en begäran / svar skickas från varje klient när det begärs från en resurs.
-
Offentlig ogiltig init (FilterConfig)
Detta för att indikera att filtret tas i bruk
-
Offentligt tomrum förstör ()
Detta för att indikera att filtret har tagits ur service.
Exempel:
I det här exemplet har vi skapat filter och kartlagts i web.xml
Gurufilter.java
paket demotest;importera java.io.IOException;importera java.util.Date;importera javax.servlet.Filter;importera javax.servlet.FilterChain;importera javax.servlet.FilterConfig;importera javax.servlet.ServletException;importera javax.servlet.ServletRequest;importera javax.servlet.ServletResponse;importera Javax.servlet.http.HttpServletRequest;offentlig klass GuruFilter implementerar filter {public void doFilter (ServletRequest-begäran, ServletResponse-svar, Filterchain-kedja) kastar IOException, ServletException {// TODO Auto-genererad metodstubHttpServletRequest req = (HttpServletRequest) begäran;Sträng ipAddress = req.getRemoteAddr ();System.out.println ("IP-adress" + ipAddress + ", tiden är"+ nytt datum (). toString ());// skicka begäran längs filterkedjanchain.doFilter (begäran, svar);}/ *** @se Filter # init (FilterConfig)* /public void init (FilterConfig fConfig) kastar ServletException {Strängguruparam = fConfig.getInitParameter ("guru-param");// Skriv ut init-parameternSystem.out.println ("Testparameter: + guruparam);}}
Web.xml
test GuruFilter GuruFilter demotest.GuruFilter guru-param Detta är guru paramter GuruFilter / GuruFilter
Förklaring av koden:
Gurufilter.java
Kodrad 17-32 : Här använder vi metoden "doFilter" där vi får förfrågningsobjekt (i vårt exempel är förfrågningsobjektet req (HttpServletRequest-objekt)) och får klientens fjärradress och skriver ut på konsolen och skriver också ut datum och tid på konsolen.
Kodrad 33-37 : Här använder vi init-metoden där vi tar init-parametern och skriver ut init-parametern i konsolen.
Web.xml
Kodrad 10-11 - Kartläggning av GuruFilter med klassnamnet GuruFilter.java där vi har filternamn som GuruFilter och filterklass som är katalogvägen för GuruFilter-klassen
Kodrad 13-15 - Kartläggning av init-parametern med namnet guru-param och få värdet av den som placeras under filtertaggen så att denna init-param har definierats för gurufilter
Produktion:
När du kör koden ovan får du följande utdata:
- Utgången är Test Param från init-parametern
- Och hämtar IP-adress, datum och tid för den.