Kas ir JSP filtrs?
- Filtri tiek izmantoti Java tīmekļa lietojumprogrammas filtrēšanai.
- Viņi pārtver klienta pieprasījumus, pirms mēģina piekļūt resursam
- Viņi manipulē ar atbildēm no servera un nosūta klientam.
Filtru veidi JSP
- Autentifikācijas filtri
- Datu saspiešanas filtri
- Šifrēšanas filtri
- MIME ķēdes filtri
- Mežizstrādes filtri
- Tokenizācijas filtri
Filtri ir definēti vietnē web.xml, un tie ir servleta vai JSP karte. Kad JSP konteiners sākas ar tīmekļa lietojumprogrammu, tas izveido katra filtra gadījumu, kas ir deklarēts izvietošanas aprakstā.
Tālāk ir norādītas filtrēšanas metodes:
-
Public void doFilter (ServletRequest, ServletResponse, FilterChain)
To sauc ikreiz, kad pieprasījums / atbilde tiek nodota no katra klienta, kad to pieprasa no resursa.
-
Publiska anulēšana init (FilterConfig)
Tas norāda, ka filtrs ir nodots ekspluatācijā
-
Publiska tukšuma iznīcināšana
Tas norāda, ka filtrs ir izņemts no pakalpojuma.
Piemērs:
Šajā piemērā mēs esam izveidojuši filtru un kartējuši web.xml
Gurufilter.java
paketes demotest;importēt java.io.IOException;importēt java.util.Date;importēt javax.servlet.Filter;importēt javax.servlet.FilterChain;importēt javax.servlet.FilterConfig;importēt javax.servlet.ServletException;importēt javax.servlet.ServletRequest;importēt javax.servlet.ServletResponse;importēt Javax.servlet.http.HttpServletRequest;publiskā klase GuruFilter ievieš filtru {public void doFilter (ServletRequest pieprasījums, ServletResponse atbilde, Filterchain ķēde) izmet IOException, ServletException {// TODO Automātiski ģenerētās metodes spraudnisHttpServletRequest req = (HttpServletRequest) pieprasījums;String ipAddress = req.getRemoteAddr ();System.out.println ("IP adrese" + ipAddress + ", laiks ir"+ jauns datums (). toString ());// nododiet pieprasījumu pa filtru ķēdichain.doFilter (pieprasījums, atbilde);}/ *** @ skatiet filtru # init (FilterConfig)* /public void init (FilterConfig fConfig) izmet ServletException {Virknes guruparam = fConfig.getInitParameter ("guru-param");// Izdrukājiet parametru initSystem.out.println ("Pārbaudes parametrs: + guruparams);}}
Web.xml
xml version = "1.0" encoding = "UTF-8"?>tests GuruFilter GuruFilter demotest.GuruFilter guru-param Šis ir guru parametrs GuruFilter / GuruFilter
Koda skaidrojums:
Gurufilter.java
Kodu rinda 17-32 : Šeit mēs izmantojam metodi "doFilter", kur mēs iegūstam pieprasījuma objektu (mūsu piemērā pieprasījuma objekts ir req (HttpServletRequest objekts)) un iegūstam klienta attālo adresi un drukājam uz konsoles, kā arī izdrukājam datums un laiks konsolē.
Koda rinda 33-37 : Šeit mēs izmantojam init metodi, kur mēs ņemam init parametru un drukājam init parametru konsolē.
Web.xml
Kodu rinda 10-11 - GuruFilter kartēšana ar klases nosaukumu GuruFilter.java, kur mums ir filtra nosaukums kā GuruFilter un filtra klase, kas ir klases GuruFilter direktorijas ceļš
Kodu rinda 13-15 - Sākotnējā parametra kartēšana ar nosaukumu guru-param un tā vērtības iegūšana, kas tiek ievietota filtra tagā, tādējādi šis init parametrs ir definēts guru filtram
Izeja:
Izpildot iepriekš minēto kodu, tiek parādīta šāda izeja:
- Rezultāts ir testa parametrs no init parametra
- Un IP adreses, datuma un laika iegūšana.