Dieser Artikel stellt hauptsächlich relevante Informationen zur detaillierten Erklärung des Filters im JavaWeb-Servlet vor. Ich hoffe, dass dieser Artikel jedem helfen kann, wie man ihn verwendet. Freunde in Not können sich auf
JavaWeb-Servlet beziehen Ausführliche Erläuterung des Filterfilters in
1. Kurzbeschreibung
Filterfilter filtert alle Webressourcen des Webservers, um einige spezielle Funktionen zu erreichen (Berechtigungszugriffskontrolle). , Filtern sensibler Wörter, Komprimieren von Antwortinformationen). Filter kann die Anfrage und Antwort des Servlet-Containers prüfen und ändern. Er kann keine Anfrage und Antwort selbst generieren und stellt nur eine Filterfunktion bereit. (Bevor das Servlet aufgerufen wird, wird das Request-Objekt überprüft, um seine zugehörigen zu ändern Informationen, und das Servlet wird aufgerufen. Nach der Überprüfung der Antwort und der Änderung der zugehörigen Informationen befindet sich das Filterobjekt auf dem Server.
2. Lebenszyklus
(1) Starten Sie den Server, lesen Sie die Konfigurationsdatei web.xml, laden Sie die Filterklasse und instanziieren Sie sie , und rufen Sie init();
(2) auf. Die vom Benutzer aufgerufene Ressource wird mit dem URL-Muster des Filters abgeglichen. Rufen Sie doFilter() auf und übergeben Sie das zu filternde Objekt an den nächsten Filter die chain.doFilter()-Methode;
(3). Wenn die Anwendung gestoppt oder neu geladen wird, wird destroy() aufgerufen
3 🎜>
Die beiden Filter spielen unterschiedliche Filterrollen entsprechend der durch die Filter in web.xml definierten Reihenfolge und führen doFilter() für jeden Filter aus Sequenz durch chain.doFilter(). Es kann jederzeit während des Ausführungsprozesses unterbrochen werden, solange chain.doFilter() nicht ausgeführt wird, werden nachfolgende Filter und angeforderte Inhalte nicht ausgeführt.
(1) Erben Sie die Filterschnittstelle und überschreiben Sie die doFilter()-Methode (2). Konfiguration von web.xml zum Filtern von Vorgängen, die den Anforderungen entsprechen
Informationen zur Konfiguration von URL-Mustern>>
/* * MyFilter.java * 过滤器 */ package com.baidu.web; import java.io.IOException; 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; import javax.servlet.http.HttpServletResponse; public class MyFilter implements Filter{ @Override public void destroy() { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { //对请求request进行处理 HttpServletResponse resp = (HttpServletResponse)response; HttpServletRequest req = (HttpServletRequest) request; String username = (String) req.getSession().getAttribute("username"); if(req.getRequestURI().contains("Buy") || req.getRequestURI().contains("collect")){ if(username==null || username.equals("")){ //满足过滤要求,进行处理 req.getRequestDispatcher("/login.jsp").forward(req, resp); return; } } chain.doFilter(req, resp); //对相应response进行处理 } @Override public void init(FilterConfig filterConfig) throws ServletException { //filterConfig,通过filterConfig的getServletContext() 方法可以获得 ServletContext } }
Das obige ist der detaillierte Inhalt vonBeispielanalyse von Filter im JavaWeb Servlet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!