1. In der Frühjahrsanwendung haben wir zwei Filter verwendet, einer ist ein Interceptor und der andere ist natürlich ein Filter. Wir werden hier die Verwendung von Filtern im Springboot einführen. Die Verwendung von Filtern in SpringMVC ist im Grunde genommen gleich, aber es gibt einen kleinen Unterschied in der Konfiguration.
2. Mit der Filterfunktion können Benutzer eine Anforderung ändern und eine Antwort ändern. Filter ist kein Servlet, sondern kann keine Antwort erzeugen. Es kann die Anfrage vorbereiten, bevor eine Anfrage das Servlet erreicht, oder die Antwort beim Verlassen des Servlets. Mit anderen Worten, Filter ist eigentlich eine "Servlet Chaining" (Servlet -Kette).
Ein Filter enthält:
1) Abfangen, bevor das Servlet genannt wird;
2) Überprüfen Sie die Servlet -Anfrage, bevor das Servlet aufgerufen wird.
3) den Anforderungsheader ändern und Daten nach Bedarf anfordern.
4) Änderungen der Antwort- und Antwortdaten nach Bedarf;
5) abgefangen, nachdem das Servlet aufgerufen wurde.
1. Anwendungsszenarien des Filters
Durch das Verständnis der Filterfilter können wir wissen, dass in den folgenden drei Situationen eine gewisse Verarbeitung durchgeführt werden kann:
1> Entscheiden Sie, ob auf die Zielressource zugegriffen werden muss, indem der Aufruf an die Kette.Dofilter -Methode gesteuert wird.
Sie können beispielsweise in den Benutzerberechtigungen usw. überprüfen. Stellen Sie fest, ob der Benutzer die Erlaubnis hat, auf bestimmte Ressourcen zuzugreifen, die Erlaubnis zur Freigabe zu haben, und führt die Kette nicht ohne Erlaubnis aus.
2> Einige Zwecke werden erreicht, indem eine Verarbeitung vor dem Aufrufen der Kette. Dofilter -Methode durchgeführt wird.
Lösen Sie beispielsweise das Problem des chinesischen verstümmelten Codes usw. Vor der Dofilter -Methode können die Codierung der Kodierung und Antwort der Einstellungsanforderung und der Antwort durchgeführt werden. Sie können die Anforderungsschnittstelle sogar zusammenfassen und dekorieren, um das chinesische Problem der Get -Request -Methode zu behandeln (die entsprechende Anforderung umschreiben.GetParameter -Methode).
3> Einige Zwecke werden erreicht, indem nach dem Aufrufen der Kette die Methode der Kette durchgeführt wird.
Komprimieren Sie beispielsweise die gesamte Website. Vor dem Aufrufen der Methode der Kette. In der Klasse A wird der Ausgangsinhalt in den BytearrayoutputStream -Stream zwischengespeichert, und dann wird nach der Kette. DOFILTER -Methode ausgeführt wird die BytearrayoutputStream -Stream -Cache -Daten in der Klasse A erhalten und mit dem GzipoutputStream -Stream komprimiert.
2. Das Prinzip des Filterabfangens
Es gibt eine Dofiltermethode in der Filterschnittstelle. Wenn der Entwickler die Filterklasse schreibt, um die Dofilter -Methode zu implementieren und zu konfigurieren, welche Webressourcen zu intercept sind, ruft der Webserver zuerst die Dofilter -Methode des Filters auf, bevor er die Servicemethode der Webressource aufruft (bestimmt durch den internen Zugriffsmechanismus des Servers).
1. Filterregeln
// alle Ressourcen in der Anwendung filtern. Alle Dateien unter dem Stamm der aktuellen Anwendung enthalten alle Dateien unter dem Unterverzeichnis mit mehreren Ebenen. Beachten Sie, dass */"Registrierung.addurlpatterns ("/ * ") vorangegangen ist; // Filtern Sie die angegebenen Typ -Dateiressourcen, alle HTML -Dateien unter dem Stamm der aktuellen Anwendung. Hinweis: Es gibt keine "/" vor *.html, ansonsten die Fehlerregistrierung. // FILLEN SIE ALLE Dateien unter dem angegebenen Verzeichnis. Alle Dateien unter dem Unterverzeichnis order_name (können ein Multi-Level-Unterverzeichnis unter dem Stamm der aktuellen Anwendung sein. // filtern Sie die angegebene Dateiregistrierung.III. Anwendung
@Component@ServletComponentScan@WebFilter(urlPatterns = "/login/*",filterName = "loginFilter")public class LoginFilter implements Filter{ @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse ServletResponse, Filterchain FilterChain) löst IOException, ServleTException {} @Override public void Destroy () {}} aus4. Erklärung:
1. Der Zweck dieser Annotation @Component besteht darin, den Loginfilter zur Verarbeitung an den Container zu übergeben. Das ist, um Loginfilter zum Laufen zu bringen
2. @ServletComponentscan Dies wird verwendet, um @Webfilter zu scannen, um @Webfilter zum Laufen zu bringen. Natürlich ist es auch möglich, das Servlet -Drahtrohr zu erklären. Dieses @ServletComponentscan kann die Anwendung, die allgemeine Konfiguration, am besten deinstallieren. Ich habe hier nur einen Filter, also habe ich ihn nicht in die Bewerbung geschrieben.
3.. @Webfilter ist offensichtlich. Welchen Link wird zum Filtern verwendet und warum lautet der Name des Filters?
5. Eine kurze Einführung in die Verwendung des Filters in SpringMVC
1. Die Schreibmethode ist immer noch dieselbe. Es erbt Filter, um 3 Methoden zu implementieren, um es zu verarbeiten.
2. Werfen Sie es in den Container: Dies muss in web.xml konfiguriert werden
<filter> <filter-name>loginFilter</filter-name> <filter-class>com.troy.boot.filter.LoginFilter</filter-class> </filter> <filter-mapping> <filter-name>loginFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
3.. Sie können die spezifische Verwendung selbst studieren.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.