Cos'è il filtro JSP?
- I filtri vengono utilizzati per filtrare la funzionalità dell'applicazione Web Java.
- Intercettano le richieste del client prima di tentare di accedere alla risorsa
- Manipolano le risposte dal server e le inviano al client.
Tipi di filtri in JSP
- Filtri di autenticazione
- Filtri di compressione dei dati
- Filtri di crittografia
- Filtri a catena MIME
- Filtri di registrazione
- Filtri di tokenizzazione
I filtri sono definiti in web.xml e sono una mappa per servlet o JSP. Quando il contenitore JSP inizia con l'applicazione web, crea l'istanza di ogni filtro che è stato dichiarato nel descrittore di distribuzione.
Di seguito sono riportati i metodi di filtro:
-
Public void doFilter (ServletRequest, ServletResponse, FilterChain)
Viene chiamato ogni volta che una richiesta / risposta viene passata da ogni client quando viene richiesta da una risorsa.
-
Public void init (FilterConfig)
Questo per indicare che il filtro è stato messo in servizio
-
Public void destroy ()
Questo per indicare che il filtro è stato tolto dal servizio.
Esempio:
In questo esempio, abbiamo creato il filtro e mappato in web.xml
Gurufilter.java
demotest pacchetto;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;public class GuruFilter implementa Filter {public void doFilter (ServletRequest request, ServletResponse response, Filterchain chain) genera IOException, ServletException {// TODO Stub del metodo generato automaticamenteHttpServletRequest req = (HttpServletRequest) richiesta;String ipAddress = req.getRemoteAddr ();System.out.println ("IP Address" + ipAddress + ", Time is"+ nuova data (). toString ());// passa la richiesta lungo la catena del filtrochain.doFilter (richiesta, risposta);}/ *** @see Filter # init (FilterConfig)* /public void init (FilterConfig fConfig) genera ServletException {String guruparam = fConfig.getInitParameter ("guru-param");// Stampa il parametro initSystem.out.println ("Test Param: + guruparam);}}
Web.xml
xml version = "1.0" encoding = "UTF-8"?>test GuruFilter GuruFilter demotest.GuruFilter guru-param Questo è il parametro del guru GuruFilter / GuruFilter
Spiegazione del codice:
Gurufilter.java
Riga di codice 17-32 : qui stiamo usando il metodo "doFilter" dove otteniamo l'oggetto richiesta (nel nostro esempio l'oggetto richiesta è req (oggetto HttpServletRequest)) e otteniamo l'indirizzo remoto del client e stampiamo sulla console e stampiamo anche data e ora sulla console.
Riga di codice 33-37 : qui stiamo usando il metodo init dove stiamo prendendo il parametro init e stampando il parametro init nella console.
Web.xml
Riga di codice 10-11 - Mappatura del GuruFilter con il nome della classe GuruFilter.java dove abbiamo il nome del filtro come GuruFilter e la classe del filtro che è il percorso della directory della classe GuruFilter
Riga di codice 13-15 - Mappatura del parametro init denominato guru-param e ottenerne il valore che è posto sotto il tag filter, quindi questo init-param è stato definito per gurufilter
Produzione:
Quando esegui il codice sopra, ottieni il seguente output:
- L'output è Test Param dal parametro init
- E il recupero dell'indirizzo IP, della data e dell'ora.