Étapes d'implémentation du filtre Java : 1. Écrivez une classe de filtre pour implémenter l'interface Filter ; 2. Implémentez les méthodes qui n'ont pas encore été implémentées dans l'interface (concentrez-vous sur l'implémentation de la méthode doFilter) ; web.xml (L'essentiel est de configurer quelles ressources doivent être filtrées).
Le filtre est également appelé filtre. C'est l'une des technologies les plus intéressantes de la technologie Servlet. Les développeurs WEB utilisent la technologie Filter pour gérer toutes les ressources Web : tels que Jsp, Servlet, fichiers image statiques ou fichiers HTML statiques, etc. sont interceptés pour réaliser certaines fonctions spéciales. Par exemple, certaines fonctions avancées telles que le contrôle d'accès aux autorisations au niveau des URL, le filtrage du vocabulaire sensible et la compression des informations de réponse peuvent être implémentées.
Alors, comment y parvient-on ?
Écrire une classe de filtre pour implémenter l'interface Filter
Implémenter les méthodes qui n'ont pas encore été implémentées dans l'interface (concentrez-vous sur l'implémentation de la méthode doFilter)
Configurer dans web.xml (Configurer principalement les ressources à filtrer)
Comment ça marche ?
Il existe une méthode doFilter dans l'interface Filter. Après avoir écrit le filtre et configuré la ressource Web à intercepter, le serveur WEB l'appellera à chaque fois avant d'appeler la méthode de service de la ressource Web. Par conséquent, la méthode doFilter de filter,
L'écriture de code dans cette méthode peut atteindre les objectifs suivants :
Laisser un morceau de code s'exécuter avant d'appeler la ressource cible.
S'il faut appeler la ressource cible (c'est-à-dire s'il faut autoriser les utilisateurs à accéder aux ressources Web).
Après avoir appelé la ressource cible, laissez un morceau de code s'exécuter.
Lorsque le serveur Web appelle la méthode doFilter, il transmettra un objet filterChain. L'objet filterChain est l'objet le plus important de l'interface de filtre. Il fournit également une méthode
doFilter. en fonction de leurs besoins. Méthode, lorsque cette méthode est appelée, le serveur Web appellera la méthode de service de la ressource Web, c'est-à-dire que la ressource Web sera accessible, sinon la ressource Web ne sera pas accessible.
Exemple de filtre :
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初始化----"); } }
Configurer le filtre dans 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>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!