Was ist JSP-Filter?
- Filter werden zum Filtern der Funktionalität der Java-Webanwendung verwendet.
- Sie fangen die Anforderungen des Clients ab, bevor sie versuchen, auf die Ressource zuzugreifen
- Sie bearbeiten die Antworten vom Server und senden sie an den Client.
Arten von Filtern in JSP
- Authentifizierungsfilter
- Datenkomprimierungsfilter
- Verschlüsselungsfilter
- MIME-Kettenfilter
- Protokollierungsfilter
- Tokenisierungsfilter
Filter sind in web.xml definiert und stellen eine Zuordnung zu Servlet oder JSP dar. Wenn der JSP-Container mit der Webanwendung beginnt, wird die Instanz jedes Filters erstellt, der im Bereitstellungsdeskriptor deklariert wurde.
Es folgen die Filtermethoden:
-
Public void doFilter (ServletRequest, ServletResponse, FilterChain)
Dies wird jedes Mal aufgerufen, wenn eine Anforderung / Antwort von jedem Client übergeben wird, wenn sie von einer Ressource angefordert wird.
-
Public void init (FilterConfig)
Dies soll anzeigen, dass der Filter in Betrieb genommen wird
-
Öffentliche Leere zerstören ()
Dies zeigt an, dass der Filter außer Betrieb genommen wurde.
Beispiel:
In diesem Beispiel haben wir einen Filter erstellt und in der Datei web.xml zugeordnet
Gurufilter.java
Paket 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;import Javax.servlet.http.HttpServletRequest;öffentliche Klasse GuruFilter implementiert Filter {public void doFilter (ServletRequest-Anforderung, ServletResponse-Antwort, Filterchain-Kette) löst IOException, ServletException {aus// TODO Automatisch generierter MethodenstubHttpServletRequest req = (HttpServletRequest) request;String ipAddress = req.getRemoteAddr ();System.out.println ("IP-Adresse" + ipAddress + ", Zeit ist"+ neues Datum (). toString ());// Übergebe die Anfrage entlang der Filterkettechain.doFilter (Anfrage, Antwort);}}/ *** @see Filter # init (FilterConfig)* /public void init (FilterConfig fConfig) löst ServletException aus {String guruparam = fConfig.getInitParameter ("guru-param");// Den init-Parameter druckenSystem.out.println ("Test Param: + Guruparam);}}}}
Web.xml
xml version = "1.0" encoding = "UTF-8"?>test display-name> description> GuruFilter display-name> GuruFilter Filtername> demotest.GuruFilter filter-class> guru-param param-name> Dies ist der Guru-Parameter param-value> init-param> filter> GuruFilter Filtername> / GuruFilter url-pattern> filter-mapping>
Erläuterung des Codes:
Gurufilter.java
Codezeile 17-32 : Hier verwenden wir die "doFilter" -Methode, bei der wir das Anforderungsobjekt abrufen (in unserem Beispiel ist das Anforderungsobjekt req (HttpServletRequest-Objekt)) und die Remote-Adresse des Clients abrufen und auf der Konsole drucken und auch drucken Datum und Uhrzeit auf der Konsole.
Codezeile 33-37 : Hier verwenden wir die Init-Methode, bei der wir den Init-Parameter verwenden und den Init-Parameter in der Konsole drucken.
Web.xml
Codezeile 10-11 - Zuordnung des GuruFilter zum Klassennamen GuruFilter.java, wobei der Filtername als GuruFilter und die Filterklasse als Verzeichnispfad der GuruFilter-Klasse verwendet werden
Codezeile 13-15 - Zuordnung des Init-Parameters mit dem Namen guru-param und Abrufen des Werts, der unter dem Filter-Tag platziert wird, sodass dieser Init-Parameter für gurufilter definiert wurde
Ausgabe:
Wenn Sie den obigen Code ausführen, erhalten Sie die folgende Ausgabe:
- Die Ausgabe ist Test Param vom Parameter init
- Und IP-Adresse, Datum und Uhrzeit abrufen.