Ce este JSP Filter?
- Filtrele sunt utilizate pentru filtrarea funcționalității aplicației web Java.
- Ei interceptează cererile de la client înainte de a încerca să acceseze resursa
- Acestea manipulează răspunsurile de la server și trimise către client.
Tipuri de filtre în JSP
- Filtre de autentificare
- Filtre de compresie a datelor
- Filtre de criptare
- Filtre cu lanț MIME
- Filtre de înregistrare
- Filtre de tokenizare
Filtrele sunt definite în web.xml și sunt o hartă pentru servlet sau JSP. Când containerul JSP începe cu aplicația web, acesta creează instanța fiecărui filtru care a fost declarat în descriptorul de implementare.
Următoarele sunt metodele de filtrare:
-
Public void doFilter (ServletRequest, ServletResponse, FilterChain)
Acesta este apelat de fiecare dată când o cerere / răspuns este transmisă de la fiecare client atunci când este solicitată de la o resursă.
-
Inițiere publică (FilterConfig)
Aceasta indică faptul că filtrul este pus în funcțiune
-
Public nul distruge ()
Aceasta pentru a indica faptul că filtrul a fost scos din service.
Exemplu:
În acest exemplu, am creat filtru și cartografiat în web.xml
Gurufilter.java
demotest pachet;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;importă Javax.servlet.http.HttpServletRequest;clasa publică GuruFilter implementează Filter {public void doFilter (cerere ServletRequest, răspuns ServletResponse, lanț Filterchain) aruncă IOException, ServletException {// TODO Metoda generată automatHttpServletRequest req = (HttpServletRequest) cerere;String ipAddress = req.getRemoteAddr ();System.out.println („Adresă IP” + adresă ip + „, timpul este„+ data nouă (). toString ());// treceți cererea de-a lungul lanțului de filtrarechain.doFilter (cerere, răspuns);}/ *** @vezi filtru # init (FilterConfig)* /public vid init (FilterConfig fConfig) aruncă ServletException {String guruparam = fConfig.getInitParameter ("guru-param");// Imprimați parametrul initSystem.out.println ("Test Param: + guruparam);}}
Web.xml
xml version = "1.0" encoding = "UTF-8"?>test GuruFilter GuruFilter demotest.GuruFilter guru-param Acesta este parametrul guru GuruFilter / GuruFilter
Explicația codului:
Gurufilter.java
Linia de cod 17-32 : Aici folosim metoda "doFilter" în care obținem obiectul request (în exemplul nostru obiectul request este req (obiect HttpServletRequest)) și obținem adresa la distanță a clientului și imprimăm pe consolă și imprimăm data și ora de pe consolă.
Linia de cod 33-37 : Aici folosim metoda init unde luăm parametrul init și imprimăm parametrul init în consolă.
Web.xml
Linia de cod 10-11 - Maparea GuruFilter cu numele clasei GuruFilter.java unde avem numele de filtru ca GuruFilter și clasa de filtrare care este calea directorului clasei GuruFilter
Linia de cod 13-15 - Cartografierea parametrului inițial numit guru-param și obținerea valorii acestuia care este plasată sub eticheta filtrului, astfel încât acest parametru inițial a fost definit pentru gurufilter
Ieșire:
Când executați codul de mai sus, obțineți următoarea ieșire:
- Ieșirea este Test Param din parametrul init
- Și preluând adresa IP, data și ora acesteia.