Java-Filter-Implementierungsschritte: 1. Schreiben Sie eine Filterklasse, um die Filter-Schnittstelle zu implementieren. 2. Implementieren Sie die Methoden, die noch nicht in der Schnittstelle implementiert wurden (konzentrieren Sie sich auf die Implementierung der doFilter-Methode). web.xml (Die Hauptsache besteht darin, zu konfigurieren, welche Ressourcen gefiltert werden sollen).
Filter wird auch als Filter bezeichnet. Es ist eine der aufregendsten Technologien in der Servlet-Technologie, die die Filtertechnologie zur Verwaltung aller Webressourcen verwendet. B. JSP, Servlet, statische Bilddateien oder statische HTML-Dateien usw. werden abgefangen, um einige spezielle Funktionen zu erreichen. Beispielsweise können einige erweiterte Funktionen wie die Berechtigungszugriffskontrolle auf URL-Ebene, die Filterung vertraulicher Vokabeln und die Komprimierung von Antwortinformationen implementiert werden.
Wie wird es also erreicht?
Schreiben Sie eine Filterklasse, um die Filterschnittstelle zu implementieren
Implementieren Sie die Methoden, die noch nicht in der Schnittstelle implementiert wurden (konzentrieren Sie sich auf die Implementierung der doFilter-Methode)
In web.xml konfigurieren (hauptsächlich konfigurieren, welche Ressourcen gefiltert werden sollen)
Wie funktioniert es?
Es gibt eine doFilter-Methode in der Filterschnittstelle. Nachdem wir den Filter geschrieben und konfiguriert haben, welche Webressource abgefangen werden soll, ruft der WEB-Server diese jedes Mal auf, bevor er die Servicemethode der Webressource aufruft. Filters doFilter-Methode, daher
Das Schreiben von Code innerhalb dieser Methode kann die folgenden Zwecke erreichen:
Einen Code ausführen lassen, bevor die Zielressource aufgerufen wird.
Ob die Zielressource aufgerufen werden soll (d. h. ob dem Benutzer der Zugriff auf Webressourcen gestattet werden soll).
Lassen Sie nach dem Aufruf der Zielressource einen Codeabschnitt ausführen.
Wenn der Webserver die doFilter-Methode aufruft, übergibt er ein filterChain-Objekt. Es stellt auch eine doFilter-Methode bereit Wenn diese Methode aufgerufen wird, ruft der Webserver je nach Bedarf die Dienstmethode der Webressource auf, dh auf die Webressource wird zugegriffen, andernfalls wird nicht auf die Webressource zugegriffen.
Filterbeispiel:
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; /** * @author yangcq * @description 过滤器Filter的工作原理 */ public class FilterTest implements Filter{ public void destroy() { System.out.println("----Filter销毁----"); } public void doFilter(ServletRequest request, ServletResponse response,FilterChain filterChain) throws IOException, ServletException { // 对request、response进行一些预处理 request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); System.out.println("----调用service之前执行一段代码----"); filterChain.doFilter(request, response); // 执行目标资源,放行 System.out.println("----调用service之后执行一段代码----"); } public void init(FilterConfig arg0) throws ServletException { System.out.println("----Filter初始化----"); } }
Konfigurieren Sie den Filter in web.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name></display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!--配置过滤器--> <filter> <filter-name>FilterTest</filter-name> <filter-class>com.yangcq.filter.FilterTest</filter-class> </filter> <!--映射过滤器--> <filter-mapping> <filter-name>FilterTest</filter-name> <!--“/*”表示拦截所有的请求 --> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
Das obige ist der detaillierte Inhalt vonSo implementieren Sie einen Java-Filter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!