Kas yra JSP filtras?
- Filtrai naudojami filtruojant „Java“ žiniatinklio programos funkcionalumą.
- Jie perima kliento užklausas prieš bandydami pasiekti šaltinį
- Jie manipuliuoja atsakymais iš serverio ir siunčiami klientui.
Filtrų tipai JSP
- Autentifikavimo filtrai
- Duomenų glaudinimo filtrai
- Šifravimo filtrai
- MIME grandinės filtrai
- Prisijungti filtrai
- Tokenizing filtrai
Filtrai yra apibrėžti „web.xml“ ir jie yra servleto arba JSP žemėlapis. Kai JSP sudėtinis rodinys prasideda žiniatinklio programoje, jis sukuria kiekvieno filtro, kuris buvo paskelbtas diegimo apraše, egzempliorių.
Toliau pateikiami filtravimo metodai:
-
„Public void doFilter“ („ServletRequest“, „ServletResponse“, „FilterChain“)
Tai vadinama visada, kai užklausa / atsakymas perduodamas iš kiekvieno kliento, kai to prašoma iš išteklių.
-
Vieša niekinė inicijavimas („FilterConfig“)
Tai reiškia, kad filtras pradėtas naudoti
-
Viešas niekinis sunaikinimas ()
Tai reiškia, kad filtras buvo paimtas iš eksploatacijos.
Pavyzdys:
Šiame pavyzdyje mes sukūrėme filtrą ir susiejame su web.xml
Gurufilter.java
paketo demotest;importuoti java.io.IOException;importuoti java.util.Date;importuoti javax.servlet.Filter;importuoti javax.servlet.FilterChain;importuoti javax.servlet.FilterConfig;importuoti javax.servlet.ServletException;importuoti javax.servlet.ServletRequest;importuoti javax.servlet.ServletResponse;importuoti „Javax.servlet.http.HttpServletRequest“;viešosios klasės „GuruFilter“ įdiegia filtrą {public void „doFilter“ („ServletRequest“ užklausa, „ServletResponse“ atsakymas, „Filterchain“ grandinė) išmeta IOException, ServletException {// TODO Automatiškai sugeneruotas metodas„HttpServletRequest req“ = („HttpServletRequest“) užklausa;Eilutė „ipAddress“ = req.getRemoteAddr ();System.out.println ("IP adresas" + ipAddress + ", laikas yra"+ nauja data (). toString ());// perduokite užklausą palei filtro grandinęchain.doFilter (prašymas, atsakymas);}/ *** @ See Filter # init („FilterConfig“)* /public void init („FilterConfig fConfig“) išmeta „ServletException“Styginių guruparam = fConfig.getInitParameter ("guru-param");// Atspausdinkite init parametrąSystem.out.println ("Testo parametras: + guruparamas);}}
Žiniatinklis.xml
xml version = "1.0" encoding = "UTF-8"?>testas „GuruFilter“ GuruFilter demotest.GuruFilter guru-param Tai yra guru parampar GuruFilter / GuruFilter
Kodo paaiškinimas:
Gurufilter.java
Kodo eilutė 17-32 : Čia mes naudojame "doFilter" metodą, kai gauname užklausos objektą (mūsų pavyzdyje užklausos objektas yra req (HttpServletRequest objektas)) ir gauname nuotolinį kliento adresą ir spausdiname ant konsolės, taip pat spausdiname data ir laikas konsolėje.
Kodo eilutė 33-37 : Čia mes naudojame init metodą, kuriame imame init parametrą ir spausdiname init parametrą konsolėje.
Žiniatinklis.xml
Kodo eilutė 10-11 - „GuruFilter“ susiejimas su klasės pavadinimu „GuruFilter.java“, kur turime filtro pavadinimą kaip „GuruFilter“ ir filtro klasę, kuri yra „GuruFilter“ klasės katalogo kelias
Kodo eilutė 13-15 - „Init“ parametro, pavadinto „guru-param“, susiejimas ir jo vertės, kuri dedama po filtro žyma, gavimas, kad šis „init-param“ būtų apibrėžtas gurufilter
Išvestis:
Vykdydami pirmiau nurodytą kodą gausite šį išvestį:
- Išėjimas yra „Parametras“ iš parametro „init“
- Ir gaunamas IP adresas, jo data ir laikas.