Heim  >  Artikel  >  Java  >  Was bedeutet Filter?

Was bedeutet Filter?

(*-*)浩
(*-*)浩Original
2019-05-14 15:46:2946232Durchsuche

Filter bedeutet „Filter“. Vor dem Zugriff auf die Ressourcendatei wird die Anforderung durch eine Reihe von Filtern abgefangen oder geändert Befolgen Sie die Regeln in der Mitte. Sie können Antworten auch filtern, abfangen oder ändern.

Was bedeutet Filter?

Filter ist, wie der Name schon sagt, der Prozess des Filterns und Vorverarbeitens von Daten. Warum Filter einführen? Beim Besuch einer Website werden manchmal vertrauliche Informationen gesendet. Nach dem Senden werden die vertraulichen Informationen bei der Anzeige durch Zeichen wie * ersetzt. Dies dient der Verwendung von Filtern zur Verarbeitung der Informationen.

Empfohlener Kurs: Java-Tutorial.

Dies ist nur ein einfaches Beispiel, und seine Funktion kann nicht nur darauf beschränkt werden, sondern auch alle gesendeten Anfragen gleichzeitig vorverarbeiten Es kann auch die vom Server zurückgegebene Antwort vorverarbeiten und so den Druck auf den Server erheblich reduzieren. Es implementiert beispielsweise einige erweiterte Funktionen wie die Berechtigungszugriffskontrolle auf URL-Ebene, das Filtern vertraulicher Wörter und das Komprimieren von Antwortinformationen. Schauen wir uns die Filter genauer an.

Filtertechnologie ist eine neu hinzugefügte Funktion von Servlet 2.3. Servlet2.3 wurde im Oktober 2000 von Sun veröffentlicht. Zu seinen Entwicklern zählen viele Einzelpersonen und Unternehmensgruppen, was das von Sun vertretene Prinzip der Code-Offenheit vollständig widerspiegelt. Durch die gemeinsame Anstrengung vieler Teilnehmer ist Servlet2.3 viel leistungsfähiger als zuvor und auch seine Leistung wurde erheblich verbessert.

1. Konzept

Filterfunktion, Filterung der vom Client an den Server gesendeten Anfragen und Verarbeitung der vom Server zurückgegebenen Antwort. Es ermöglicht Benutzern, eine Anfrage zu ändern und eine Antwort zu modifizieren. Filter ist kein Servlet, er kann keine Antwort generieren, aber er kann eine Anfrage vorverarbeiten, bevor sie das Servlet erreicht, und er kann die Antwort auch verarbeiten, wenn die Antwort das Servlet verlässt. Mit anderen Worten, der Filter ist tatsächlich ein Übermittler zwischen dem Client und dem Servlet und kann ändern, was übergeben werden soll.

Hinweis: Filter werden zum Abfangen von Anfragen und Antworten verwendet und können keine Antworten generieren, während Servlets zum Verarbeiten von Anfragen und zum Generieren von Antworten verwendet werden.

2. Anwendbare Anlässe

Implementieren Sie eine Berechtigungszugriffskontrolle auf URL-Ebene, filtern Sie vertrauliche Wörter, komprimieren Sie Antwortinformationen usw.

3. Wie der Filter das Abfangen implementiert

Wenn der Client eine Anfrage stellt, fängt der Filter die HttpServletRequest des Clients ab, bevor die HttpServletRequest das Servlet erreicht. Überprüfen Sie HttpServletRequest nach Bedarf. Sie können auch den Header und die Daten von HttpServletRequest ändern. Rufen Sie die doFilter-Methode im Filter auf, um die Anforderung freizugeben. Nachdem die Anfrage das Servlet erreicht hat, wird die Anfrage verarbeitet und eine HttpServletResponse generiert und an den Client gesendet. Der Filter fängt die HttpServletResponse ab, bevor sie den Client erreicht. Überprüfen Sie HttpServletResponse nach Bedarf und ändern Sie den HttpServletResponse-Header und die Daten. Schließlich erreicht die HttpServletResponse den Client.

4.Filterschnittstelle

Die Servlet-API stellt eine Filterschnittstelle bereit, und der geschriebene Filter muss diese Schnittstelle implementieren.

5.Filterlebenszyklus

(1) Es gibt drei wichtige Methoden in der Filterschnittstelle.

init()-Methode: Initialisierungsparameter, die beim Erstellen eines Filters automatisch aufgerufen werden. Wenn wir Initialisierungsparameter festlegen müssen, können wir diese in diese Methode schreiben. doFilter()-Methode: doFilter wird ausgeführt, wenn eine auszuführende Anforderung abgefangen wird. Hier schreiben wir unsere Vorverarbeitung von Anfragen und Antworten. Methode destroy(): wird automatisch aufgerufen, wenn der Filter zerstört wird.

(2) Filterlebenszyklus

Die Erstellung und Zerstörung von Filtern wird vom Webserver gesteuert.

Wenn der Server startet, erstellt der Webserver ein Instanzobjekt von Filter und ruft seine Init-Methode auf, um die Initialisierungsfunktion des Objekts abzuschließen. Das Filterobjekt wird nur einmal erstellt und die Init-Methode wird nur einmal ausgeführt. Wenn eine Anfrage abgefangen wird, wird die doFilter-Methode ausgeführt. Kann mehrfach ausgeführt werden. Wenn der Server heruntergefahren wird, zerstört der Webserver das Filterinstanzobjekt.

6.Filterobjekt – FilterConfig

Beim Konfigurieren des Filters kann der Benutzer verwenden, um einige Initialisierungsparameter für den Filter zu konfigurieren Web-Container-Instanz Filterobjekt: Beim Aufruf seiner Init-Methode wird das filterConfig-Objekt übergeben, das die Filterinitialisierungsparameter kapselt. Daher können Entwickler beim Schreiben von Filtern die Methode des filterConfig-Objekts abrufen:

String getFilterName(): Ruft den Namen des Filters ab. String getInitParameter(String name): Gibt den Wert des Initialisierungsparameters mit dem in der Bereitstellungsbeschreibung angegebenen Namen zurück. Wenn es nicht existiert, geben Sie null zurück. Enumeration getInitParameterNames(): Gibt eine Enumerationssammlung der Namen aller Initialisierungsparameter des Filters zurück. public ServletContext getServletContext(): Gibt einen Verweis auf das Servlet-Kontextobjekt zurück.

7. Filterkette – FilterChain

Eine Gruppe von Filtern fängt bestimmte Webressourcen ab. Diese Gruppe von Filtern wird dann als Filterkette bezeichnet. Die Ausführungsreihenfolge von Filtern hängt von der ab (wer auch immer den Filter zuerst ausführt).


Das obige ist der detaillierte Inhalt vonWas bedeutet Filter?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Was ist Javabean?Nächster Artikel:Was ist Javabean?