Un filtre est un programme qui s'exécute sur le serveur avant le servlet ou la page JSP auquel il est associé. Les filtres peuvent être attachés à un ou plusieurs servlets ou pages JSP et peuvent inspecter les informations de demande entrant dans ces ressources.
Après cela, le filtre peut faire les choix suivants :
① Appeler la ressource de la manière conventionnelle (c'est-à-dire appeler une servlet ou une page JSP).
②Utilisez les informations de demande modifiées pour appeler les ressources.
③ Appelez la ressource, mais modifiez-la avant d'envoyer la réponse au client.
④Bloquez l'appel de ressource, accédez plutôt à une autre ressource, renvoyez un code d'état spécifique ou générez une sortie de remplacement.
Fonctionnement du filtre
Lorsqu'un Servlet est utilisé comme filtre, il peut traiter les demandes des clients. Une fois le traitement terminé, il sera transmis au filtre suivant pour traitement, de sorte que les demandes du client soient traitées une par une dans la chaîne de filtrage jusqu'à ce que la demande soit envoyée à la cible. Par exemple, il existe une page Web pour soumettre des « informations d'enregistrement modifiées » sur un site Web. Une fois que l'utilisateur a rempli les informations modifiées et les a soumises, le serveur doit effectuer deux tâches pendant le traitement : déterminer si la session du client est valide ; unifier le codage des données soumises. Les deux tâches peuvent être traitées dans une chaîne de filtres composée de deux filtres. Lorsque le traitement du filtre réussit, les données soumises sont envoyées à la cible finale ; si le traitement du filtre échoue, la vue sera envoyée à la page d'erreur spécifiée.
Cycle de vie du Filtre
public void init(FilterConfig filterConfig) throws ServletException;//初始化
Comme le programme Servlet que nous avons écrit, la création et la destruction du Filtre sont de la responsabilité du serveur WEB. Lorsque l'application Web démarre, le serveur Web crée un objet d'instance de Filter, appelle sa méthode init, lit la configuration web.xml et complète la fonction d'initialisation de l'objet, préparant ainsi l'interception des requêtes utilisateur ultérieures (l'objet filtre ne sera créée qu'une seule fois et la méthode init ne sera exécutée qu'une seule fois). Les développeurs peuvent obtenir l'objet FilterConfig représentant les informations de configuration actuelle du filtre via les paramètres de la méthode init.
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException;//拦截请求
Cette méthode termine l'opération de filtrage proprement dite. Lorsque le client demande l'accès à l'URL associée au filtre, le filtre Servlet exécutera d'abord la méthode doFilter. Le paramètre FilterChain est utilisé pour accéder aux filtres suivants.
public void destroy();//销毁
L'objet Filter résidera en mémoire après sa création et sera détruit lorsque l'application Web sera supprimée ou que le serveur sera arrêté. Appelé avant que le conteneur Web ne décharge l'objet Filter. Cette méthode n'est exécutée qu'une seule fois dans le cycle de vie du filtre. Dans cette méthode, les ressources utilisées par le filtre peuvent être libérées.
Tutoriel recommandé : "Tutoriel Java"
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!