Différence entre le filtre et L'Écouteur Dans Servlet (Java EE)

il y a des filtres et des écouteurs dans Servlet. Je veux connaître la différence exacte entre le filtre et L'auditeur.

65
demandé sur informatik01 2011-01-18 08:59:16

10 réponses

Le filtre de Servlet

est utilisé pour contrôler la requête et la réponse du client au servlet, ou pour modifier la requête et la réponse, ou pour vérifier et enregistrer.

Servlet Listener est utilisé pour écouter des événements dans un conteneur web, comme lorsque vous créez une session, ou placez un attribut dans une session ou si vous passivez et activez dans un autre conteneur, pour vous abonner à ces événements , vous pouvez configurer listener dans web.xml , par exemple HttpSessionListener .

66
répondu Dead Programmer 2011-04-11 12:53:16
Les filtres

sont utilisés pour les requêtes avant et après le processus. Regardez le javax.servlet.Filter dans votre tomcat/jboss/autre récipient javadoc.

Où les auditeurs sont comme des déclencheurs qui peuvent être attachés à des événements dans votre serveur d'application (utilisons le terme conteneur ici). Avec les écouteurs, vous pouvez suivre les changements au niveau de l'application, de la session, du cycle de vie, des attributs, etc. Les interfaces mises en œuvre sont javax.servlet.Listener interface.

D'après @fnt 's Réponses ci-dessous, permettez-moi d'essayer de clarifier un peu plus. Les écouteurs sont ciblés pour les changements de cycle de vie, sans avoir à recevoir une demande du client. Ainsi, pour une demande d'un client, il pourrait y avoir beaucoup plus d'événements du cycle de vie avant que la demande ne soit réglée. Exemple: Vous voulez enregistrer toutes les sessions qui timeout. S'il vous plaît noter que SesionTimeout est un événement du cycle de vie, qui peut se produire sans que l'utilisateur de faire quoi que ce soit. Pour un tel scénario, un auditeur sera approprié.

à la question de la journalisation quand une demande arrive. Il n'y a pas de mappage direct d'une nouvelle requête vers un événement d'écoute équivalent (lire l'Événement du cycle de vie). Et donc pour chaque requête entrante si vous voulez enregistrer quelque chose, Filtrer est à mon avis la bonne chose à utiliser.

ce matériel D'Oracle devrait être en mesure de clarifier un peu plus filtres et écouteurs

HTH

31
répondu Ayusman 2016-12-07 13:35:25

filtre est comme un filtre à eau, où les valeurs entrantes (requête) et sortantes (réponse) seront filtrées.

Listener est comme écouter (trigger) - chaque fois que nécessaire, je vais être effectuée.

20
répondu muhammed Younus attari 2014-04-09 10:34:10

une différence importante est souvent négligée: alors que les écouteurs sont déclenchés pour une requête physique réelle, les filtres fonctionnent avec des dispatches de conteneur servlet. Pour une invocation d'un auditeur, il peut y avoir plusieurs invocations de filtres/servlets.

Listeners vs Filters

Cartographie des filtres répartiteur types . Le lien est un peu désuet - il n'inclut pas le type de répartiteur Servlet 3.0 Async . On peut aussi préciser les types de répartiteur avec l'annotation @WebFilter :

import javax.servlet.DispatcherType;
import javax.servlet.annotation.WebFilter;

@WebFilter(servletNames = { "My Servlet" },
    dispatcherTypes = { DispatcherType.REQUEST, DispatcherType.FORWARD })
18
répondu Vsevolod Golovanov 2014-11-25 12:47:53

texte de Java EE 6

filtre

Filter est un objet qui transforme la requête et la réponse (en-tête ainsi que le contenu).

Auditeurs

vous pouvez surveiller et réagir aux événements du cycle de vie d'un servlet en définissant les objets écouteurs dont les méthodes sont invoquées lorsque des événements du cycle de vie se produisent.

10
répondu adatapost 2017-05-23 12:18:25

alors que vous pouvez modifier l'objet current event au sein d'un écouteur, vous ne peut pas arrêter l'exécution du gestionnaire d'événements courant dans un écouteur. Vous ne pouvez pas non plus effacer la file d'attente des événements à partir d'un écouteur. Outre les différences imposées dans les capacités, ils sont également destinés à des fins différentes. Les auditeurs ont tendance à se concentrer sur l'interacton entre le le gestionnaire d'événements et le modèle, tandis que les filtres ont tendance à se concentrer sur l'interaction entre le gestionnaire d'événement et le contrôleur.

Source: web

4
répondu Clyde Lobo 2011-01-18 06:10:22

après avoir lu toutes les réponses et les blogs c'est ce que j'ai eu""

filtre

un filtre est un objet qui intercepte dynamiquement des requêtes et réponses pour transformer ou utiliser l'information contenue dans des demandes ou des réponses.

Les filtres

ne créent généralement pas eux-mêmes des réponses mais au contraire fournir des fonctions universelles qui peuvent être "attaché" à n'importe quel type de page servlet ou JSP.

le filtre est exécuté avant le rendu de la vue mais après le rendu du contrôleur réponse.

Un Filtre est utilisé dans la couche web tel qu'il est défini dans le web.XML.

Les filtres

sont plus appropriés lorsque vous traitez votre demande/réponse comme un la boîte noire du système. Ils fonctionneront quelle que soit la façon dont le servlet est mettre.

Les filtres

sont utilisés pour effectuer des tâches de filtrage telles que: connexion authentification ,vérification des demandes reçues des pages web, conversion, journalisation, compression, chiffrement et déchiffrement, entrée validation etc.

un filtre Servlet est utilisé dans la couche web seulement, vous ne pouvez pas l'utiliser en dehors d'un contexte web.

pour plus de détails sur le filtre http://array151.com/blog/servlet-filter /

Listener

Servlet Listener est utilisé pour l'écoute d'événements dans un conteneur web, comme lorsque vous créez une session ou placez un attribut dans une session ou si vous passivate et activer dans un autre conteneur, de s'abonner à ces événements, vous pouvez configurer l'auditeur dans le web.xml, par exemple, HttpSessionListener.

écouteurs sont déclenchés pour une requête physique réelle qui peut être attaché aux événements de votre serveur app.Avec les auditeurs, vous pouvez piste niveau de l'application, Niveau de la session, changements du cycle de vie, attributs les changements etc.

vous pouvez surveiller et réagir aux événements dans le cycle de vie d'un servlet par définition des objets d'écoute dont les méthodes sont invoquées lors du cycle de vie les événements se produisent.

pour plus de détails: http://array151.com/blog/servlet-listener /

et voici la différence http://array151.com/blog/difference-between-servlet-filter-and-servlet-listener /

4
répondu Sunil Garg 2018-02-05 04:50:55

filtre: Filter Filtre simplement la réponse et la requête venant des clients vers le servlet.

écouteur:est comme un déclencheur quand un déclencheur se produit, il prend l'action.

2
répondu geet 2012-09-15 10:22:53

vous pouvez facilement avoir une idée approximative avec le sens anglais de ces deux. Filter est là pour filtrer le contenu/la ressource qui arrive/sort d'un Servlet. D'un autre côté, L'auditeur est là, pour faire des choses liées quand quelque chose arrive à l'application web(écoute).

2
répondu Abimaran Kugathasan 2018-08-02 19:00:21

en bref,

Le filtre

est pour le Servlet, interceptant les requêtes et les réponses.

L'auditeur est pour l'Application Web, en faisant des tâches importantes sur les événements au niveau du contexte, au niveau de la session, etc.

1
répondu Mawia 2013-10-29 08:25:50