Mis on JSP-filter?
- Filtrid kasutatakse Java veebirakenduse funktsionaalsuse filtreerimiseks.
- Nad püüavad kliendi taotlusi kinni enne, kui nad ressursile juurde pääsevad
- Nad manipuleerivad serverilt saadud vastustega ja saadetakse kliendile.
Filtrite tüübid JSP-s
- Autentimisfiltrid
- Andmete tihendamise filtrid
- Krüptofiltrid
- MIME ahelfiltrid
- Filtrite logimine
- Filtrite märgistamine
Filtrid on määratletud failis web.xml ja need on kaart servleti või JSP-le. Kui JSP konteiner algab veebirakendusega, loob see iga juurutamise kirjelduses deklareeritud filtri eksemplari.
Filtrimeetodid on järgmised:
-
Avalik void doFilter (ServletRequest, ServletResponse, FilterChain)
Seda nimetatakse alati, kui päring / vastus edastatakse igalt kliendilt, kui seda ressursilt küsitakse.
-
Avalik tühine init (FilterConfig)
See näitab, et filter on kasutusele võetud
-
Avalik tühine hävitamine ()
See näitab, et filter on teenusest eemaldatud.
Näide:
Selles näites oleme loonud filtri ja kaardistanud saidi web.xml
Gurufilter.java
paketi demotest;import java.io.IOException;import java.util.Date;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;importige Javax.servlet.http.HttpServletRequest;avaliku klassi GuruFilter rakendab filtrit {public void doFilter (ServletRequesti taotlus, ServletResponse'i vastus, Filterchaini kett) viskab IOException, ServletException {// TODO Automaatselt loodud meetodi tüviHttpServletRequest req = (HttpServletRequest) taotlus;String ipAddress = req.getRemoteAddr ();System.out.println ("IP-aadress" + ipAadress + ", aeg on"+ uus kuupäev (). toString ());// edastage päring mööda filtrikettikett.doFilter (taotlus, vastus);}/ *** @see Filter # init (FilterConfig)* /public void init (FilterConfig fConfig) viskab ServletException {Stringi guruparam = fConfig.getInitParameter ("guru-param");// Prindi parameeter initSystem.out.println ("Test Param: + guruparam);}}
Veeb.xml
xml version = "1.0" encoding = "UTF-8"?>test GuruFilter GuruFilter demotest.GuruFilter guru-param See on guru parameeter GuruFilter / GuruFilter
Koodi selgitus:
Gurufilter.java
Koodirida 17-32 : siin kasutame meetodit "doFilter", kus saame päringuobjekti (meie näites on päringuobjekt req (HttpServletRequest objekt)) ja kliendi kaugaadress ning konsoolile printimine ja printimine kuupäev ja kellaaeg konsoolis.
Koodirida 33-37 : siin kasutame init-meetodit, kus võtame konsooli init-parameetri ja printime init-parameetri.
Veeb.xml
Koodirida 10-11 - GuruFilteri kaardistamine klassi nimega GuruFilter.java, kus meil on filtri nimi GuruFilter ja filtriklass, mis on klassi GuruFilter kataloogitee
Koodirida 13-15 - algparameetri guru-param kaardistamine ja selle väärtuse saamine, mis asetatakse filtrimärgendi alla, nii et see init-param on gurufiltrile määratletud
Väljund:
Ülaltoodud koodi käivitamisel saate järgmise väljundi:
- Väljundiks on parameetri init parameeter Test Test
- Ja tooma IP-aadressi, selle kuupäeva ja kellaaja.