Heim >Java >javaLernprogramm >Was ist ein Filter?
Ein Filter ist ein Programm, das auf dem Server vor dem Servlet oder der JSP-Seite ausgeführt wird, mit der es verknüpft ist. Filter können an ein oder mehrere Servlets oder JSP-Seiten angehängt werden und können die in diese Ressourcen eingehenden Anforderungsinformationen überprüfen.
Danach kann der Filter die folgenden Entscheidungen treffen:
① Rufen Sie die Ressource auf herkömmliche Weise auf (dh rufen Sie ein Servlet oder eine JSP-Seite auf).
②Verwenden Sie die geänderten Anforderungsinformationen, um Ressourcen anzurufen.
③ Rufen Sie die Ressource auf, ändern Sie sie jedoch, bevor Sie die Antwort an den Client senden.
④Blockieren Sie den Ressourcenaufruf, gehen Sie stattdessen zu einer anderen Ressource, geben Sie einen bestimmten Statuscode zurück oder generieren Sie eine Ersatzausgabe.
So funktioniert der Filter
Wenn ein Servlet als Filter verwendet wird, kann es Kundenanfragen verarbeiten. Nachdem die Verarbeitung abgeschlossen ist, wird sie zur Verarbeitung an den nächsten Filter übergeben, sodass die Kundenanfrage einzeln in der Filterkette verarbeitet wird, bis die Anfrage an das Ziel gesendet wird. Beispielsweise gibt es eine Webseite zum Übermitteln „geänderter Registrierungsinformationen“ auf einer Website. Nachdem der Benutzer die geänderten Informationen eingegeben und übermittelt hat, muss der Server während der Verarbeitung zwei Aufgaben ausführen: feststellen, ob die Sitzung des Clients gültig ist; Vereinheitlichen Sie die übermittelten Daten. Beide Aufgaben können in einer Filterkette bestehend aus zwei Filtern bearbeitet werden. Wenn die Filterverarbeitung erfolgreich ist, werden die übermittelten Daten an das endgültige Ziel gesendet. Wenn die Filterverarbeitung nicht erfolgreich ist, wird die Ansicht an die angegebene Fehlerseite gesendet.
Filterlebenszyklus
public void init(FilterConfig filterConfig) throws ServletException;//初始化
Wie bei dem Servlet-Programm, das wir geschrieben haben, liegt die Erstellung und Zerstörung von Filter in der Verantwortung des WEB-Servers. Wenn die Webanwendung startet, erstellt der Webserver ein Instanzobjekt von Filter, ruft dessen Init-Methode auf, liest die web.xml-Konfiguration und schließt die Initialisierungsfunktion des Objekts ab, wodurch er sich auf das Abfangen nachfolgender Benutzeranforderungen vorbereitet (das Filterobjekt). wird nur einmal erstellt und die Init-Methode wird nur einmal ausgeführt. Entwickler können das FilterConfig-Objekt, das die aktuellen Filterkonfigurationsinformationen darstellt, über die Parameter der Init-Methode abrufen.
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException;//拦截请求
Diese Methode schließt den eigentlichen Filtervorgang ab. Wenn der Client Zugriff auf die mit dem Filter verknüpfte URL anfordert, führt der Servlet-Filter zunächst die doFilter-Methode aus. Der FilterChain-Parameter wird verwendet, um auf nachfolgende Filter zuzugreifen.
public void destroy();//销毁
Das Filterobjekt bleibt nach der Erstellung im Speicher und wird zerstört, wenn die Webanwendung entfernt oder der Server gestoppt wird. Wird aufgerufen, bevor der Webcontainer das Filterobjekt entlädt. Diese Methode wird nur einmal im Lebenszyklus des Filters ausgeführt. Bei dieser Methode können vom Filter genutzte Ressourcen freigegeben werden.
Empfohlenes Tutorial: „Java-Tutorial“
Das obige ist der detaillierte Inhalt vonWas ist ein Filter?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!