La différence entre le Filtre et l'Auditeur dans le Servlet (Java EE)
Il y a des Filtres et des Auditeurs de la fonctionnalité dans la Servlet. Je veux savoir la différence exacte entre le Filtre et l'Auditeur.
Vous devez vous connecter pour publier un commentaire.
Filtre de Servlet est utilisé pour le suivi de la demande et de la réponse du client à la servlet, ou de modifier la demande et de réponse, ou de l'audit et du journal.
Servlet Auditeur est utilisé pour l'écoute des événements dans un des conteneurs web, par exemple lorsque vous créez une session, ou placer un attribut dans une session ou si vous passiver et de l'activer dans un autre récipient, pour vous inscrire à ces événements, vous pouvez configurer l'auditeur dans
web.xml
, par exempleHttpSessionListener
.ServletRequestListener
écouteServletRequestEvent
qui est un événement déclenché pour chaque requête entrante. Si je veux ouvrir une session le user-agent pour chaque demande de mon application web, dois-je utiliser cet écouteur ou un filtre?No WebApplicationContext found: no ContextLoaderListener registered?
si je n'ai pas de définir un programme d'écoute de mon Ressort de l'application.Filtres sont utilisés pour le pré et le post-traitement des demandes. Regardez les
javax.servlet.Filter
dans votretomcat/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 auditeurs, vous pouvez suivre au niveau de l'application, au niveau de la session cycle de vie, les changements, les modifications des attributs etc. La mise en œuvre des interfaces sont
javax.servlet.Listener
interface.Basé sur @fnt 's réponse ci-dessous, laissez-moi essayer de clarifier un peu plus.
Les auditeurs sont ciblées pour les changements de cycle de vie, sans avoir à disposer d'un client demande de venir dans. Ainsi, pour une demande de client, il pourrait y avoir beaucoup plus d'événements de cycle de vie peut se produire avant que la demande est éliminé.
Exemple:
Vous souhaitez vous connecter à toutes les sessions que le délai d'attente. Veuillez noter que SesionTimeout est un événement de cycle de vie, ce qui peut arriver sans avoir à l'utilisateur de faire quoi que ce soit. Pour un tel scénario, l'auditeur va être appropriée.
À la question de l'exploitation lors de l'arrivée des demandes. Il n'y a pas de correspondance directe d'une nouvelle demande pour un équivalent d'écoute (lire événement de cycle de vie) de l'événement. Et donc pour chaque nouvelle demande si vous voulez enregistrer quelque chose, Filtre à mon avis est la bonne chose à utiliser.
Ce matériau à partir d'Oracle devraient être en mesure de clarifier certains plus
Les filtres et les Auditeurs
HTH
ServletRequestListener
ou un filtre?Filtre est juste comme un filtre à eau, où les appels entrants (demande) et sortant (réponse) les valeurs seront filtrés.
Auditeur est comme écouter (trigger) - chaque fois que nécessaire, je vais être effectuée.
Une différence importante est souvent négligé: tandis que les auditeurs se déclencher pour un physique réelle demande, les filtres de travail avec le conteneur de servlet l'ordre du jour. Pour un auditeur invocation, il peut y avoir de multiples filtres/servlet invocations.
La cartographie des filtres répartiteur types. Le lien est un peu daté - il ne comprend pas le Servlet 3.0
Async
répartiteur type.On peut également spécifier répartiteur types avec la
@WebFilter
annotation:Texte de Java EE 6
Filtre
Filtre est un objet de transformation de la demande et de la réponse (en-tête ainsi que de contenu).
Auditeurs
Vous pouvez surveiller et de réagir à des événements dans un servlet cycle de vie par la définition de l'auditeur objets dont les méthodes se invoquée lorsque le cycle de vie des événements se produisent.
Après avoir lu toutes les réponses et les blogs c'est ce que j'ai
Pour plus de détails sur filtre http://array151.com/blog/servlet-filter/
Pour plus de détails : http://array151.com/blog/servlet-listener/
et ici c'est la différence http://array151.com/blog/difference-between-servlet-filter-and-servlet-listener/
Alors que vous pouvez modifier l'objet de l'événement à l'intérieur d'un écouteur, vous
ne peut pas arrêter l'exécution de l'actuel gestionnaire d'événement dans un auditeur.
Vous ne pouvez pas effacer la file d'attente d'événements à partir de l'intérieur d'un auditeur. D'ailleurs
imposé par les différences dans les capacités, elles sont également destinées à la
des fins différentes. Les auditeurs ont tendance à se concentrer sur interacton entre l'
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
De filtre:Filtre est simplement de Filtrage de la Réponse et de la demande en provenance de la les clients de la servlet.
Auditeur:c'est comme un déclencheur quand la détente est-il de l'action.
Vous pouvez facilement avoir une idée approximative avec l'anglais, la signification de ces deux. Le filtre est là pour filtrer le contenu/les ressources qui sont à venir de/de sortir d'un Servlet. En revanche, l'Auditeur est là, à faire des choses lorsque quelque chose se passe à l'application web(à l'écoute).
En bref,
Filtre pour la Servlet, il intercepte les requêtes et les réponses.
Auditeur pour l'Application Web, faire des tâches importantes sur les événements en contexte-niveau, au niveau de la session etc.