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.
10 réponses
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
.
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
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.
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.
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 })
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.
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
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 filtresne 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 filtressont 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 filtressont 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 /
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.
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).
en bref,
Le filtreest 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.