Maison  >  Article  >  Java  >  Que signifie filtre ?

Que signifie filtre ?

(*-*)浩
(*-*)浩original
2019-05-14 15:46:2946205parcourir

Filtre signifie "filtre". Il s'agit d'un filtre entre le client et le fichier de ressources du serveur. Avant d'accéder au fichier de ressources, la demande est modifiée et jugée à travers une série de filtres qui n'interceptent pas ou ne modifient pas. respectez les règles du milieu ; vous pouvez également filtrer, intercepter ou modifier les réponses.

Que signifie filtre ?

Le filtre, comme son nom l'indique, est le processus de filtrage et de prétraitement des données. Pourquoi introduire des filtres ? Lors de la visite d'un site Web, certaines informations sensibles sont parfois envoyées. Après l'envoi, les informations sensibles seront remplacées par * et d'autres caractères lorsqu'elles sont affichées. Il s'agit d'utiliser des filtres pour traiter les informations.

Cours recommandé : Tutoriel Java.

Ceci n'est qu'un exemple simple. Bien sûr, le filtre est si puissant et sa fonction ne peut pas se limiter à cela. Il peut non seulement prétraiter les données, mais également prétraiter toutes les requêtes envoyées en même temps. , il peut également prétraiter la réponse renvoyée par le serveur, réduisant ainsi considérablement la pression sur le serveur. Par exemple, il implémente certaines fonctions avancées telles que le contrôle d'accès aux autorisations au niveau de l'URL, le filtrage des mots sensibles et la compression des informations de réponse. Examinons de plus près les filtres.

La technologie de filtrage est une fonctionnalité nouvellement ajoutée du servlet 2.3. Servlet2.3 a été publié par Sun en octobre 2000. Ses développeurs comprennent de nombreux individus et groupes d'entreprises, ce qui reflète pleinement le principe d'ouverture du code prôné par Sun. Grâce aux efforts conjoints de nombreux participants, servlet2.3 est devenu beaucoup plus puissant qu'auparavant et ses performances ont également été considérablement améliorées.

1. Concept

Fonction de filtrage, filtrant les requêtes envoyées du client au serveur, et traitant également la réponse renvoyée par le serveur. Il permet aux utilisateurs de modifier une demande et de modifier une réponse. Filter n'est pas un servlet, il ne peut pas générer de réponse, mais il peut prétraiter une requête avant qu'elle n'atteigne le servlet, et il peut également traiter la réponse lorsque la réponse quitte le servlet. En d’autres termes, le filtre est en fait un émetteur entre le client et le servlet, et il peut modifier ce qui doit être transmis.

Remarque : les filtres sont utilisés pour intercepter les demandes et les réponses et ne peuvent pas générer de réponses, tandis que les servlets sont utilisés pour traiter les demandes et générer des réponses.

2. Occasions applicables

Implémentez le contrôle d'accès aux autorisations au niveau de l'URL, filtrez les mots sensibles, compressez les informations de réponse, etc.

3. Comment le filtre implémente l'interception

Lorsque le client fait une requête, le filtre intercepte le HttpServletRequest du client avant que le HttpServletRequest n'atteigne le servlet. Vérifiez HttpServletRequest si nécessaire et vous pouvez également modifier l'en-tête et les données HttpServletRequest. Appelez la méthode doFilter dans le filtre pour autoriser la demande. Une fois que la requête atteint le servlet, la requête est traitée et une réponse HttpServletResponse est générée et envoyée au client. Le filtre intercepte la HttpServletResponse avant qu'elle n'atteigne le client. Vérifiez HttpServletResponse si nécessaire et modifiez l'en-tête et les données HttpServletResponse. Enfin, la HttpServletResponse atteint le client.

4.Interface de filtre

L'API Servlet fournit une interface de filtre, et le filtre écrit doit implémenter cette interface.

5.Cycle de vie du filtre

(1) Il existe trois méthodes importantes dans l'interface du filtre.

Méthode init() : paramètres d'initialisation, appelés automatiquement lors de la création d'un Filtre. Lorsque nous devons définir des paramètres d'initialisation, nous pouvons les écrire dans cette méthode. Méthode doFilter() : doFilter sera exécuté lorsqu'une requête à exécuter est interceptée. Ici, nous écrivons notre prétraitement des demandes et des réponses. Méthode destroy() : appelée automatiquement lors de la destruction du filtre.

(2) Cycle de vie du filtre

La création et la destruction du filtre sont contrôlées par le serveur web.

Lorsque le serveur démarre, le serveur Web crée un objet instance de Filter et appelle sa méthode init pour terminer la fonction d'initialisation de l'objet. L'objet filtre ne sera créé qu'une seule fois et la méthode init ne sera exécutée qu'une seule fois. Lorsqu'une requête est interceptée, la méthode doFilter est exécutée. Peut être exécuté plusieurs fois. Lorsque le serveur s'arrête, le serveur Web détruit l'objet instance de filtre.

6.Objet Filtre - FilterConfig

Lors de la configuration du filtre, l'utilisateur peut utiliser Objet Filter de l'instance de conteneur Web, lors de l'appel de sa méthode init, l'objet filterConfig encapsulant les paramètres d'initialisation du filtre sera transmis. Par conséquent, lorsque les développeurs écrivent des filtres, ils peuvent obtenir la méthode objet filterConfig :

String getFilterName() : Obtenez le nom du filtre. String getInitParameter(String name) : renvoie la valeur du paramètre d'initialisation avec le nom spécifié dans la description du déploiement. S'il n'existe pas, retournez null.Enumeration getInitParameterNames() : renvoie une collection d'énumération des noms de tous les paramètres d'initialisation du filtre. public ServletContext getServletContext() : renvoie une référence à l'objet contextuel Servlet.

7. Chaîne de filtres——FilterChain

Un groupe de filtres intercepte certaines ressources Web, alors ce groupe de filtres est appelé une chaîne de filtres. L'ordre d'exécution des filtres est lié au (celui qui exécute le filtre en premier).


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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:qu'est-ce que le javabeanArticle suivant:qu'est-ce que le javabean