Différence entre le filtre et Listener dans Servlet (Java EE)
-
12-10-2019 - |
Question
Il existe des filtres et la fonctionnalité dans Servlet Listeners. Je veux savoir la différence exacte entre le filtre et Listener.
La solution
Filtre Servlet est utilisé pour la surveillance de la demande et de la réponse du client au servlet, ou de modifier la demande et la réponse, ou d'une vérification et le journal.
Servlet Listener est utilisé pour écouter les événements dans un conteneurs Web, par exemple lorsque vous créez une session, ou placez un attribut dans une session ou si vous passiver et activer dans un autre récipient, pour vous abonner à ces événements, vous pouvez configurer l'auditeur en web.xml
, par exemple HttpSessionListener
.
Autres conseils
Les filtres sont utilisés pour traiter les demandes de pré et post. Regardez le javax.servlet.Filter
dans votre
tomcat / jboss / javadoc autre récipient.
Où que les auditeurs sont comme déclencheurs qui peuvent être associés aux événements dans
votre serveur d'applications (Utilisons ici le récipient à long terme). Avec les auditeurs, vous pouvez suivre au niveau de l'application, au niveau de la session, les changements du cycle de vie, attribut change etc. Les interfaces mises en œuvre sont interface javax.servlet.Listener
.
D'après les réponses « @fnt ci-dessous, je vais essayer de clarifier un peu plus. Les auditeurs sont ciblés pour les changements du cycle de vie, sans avoir à une demande client à venir. Donc, pour une demande de client, il pourrait y avoir beaucoup plus d'événements du cycle de vie peuvent se produire avant que la demande soit éliminée. Exemple: Vous voulez enregistrer toutes les sessions délai d'attente. S'il vous plaît noter que SesionTimeout est un événement du cycle de vie, qui peut se produire sans avoir à l'utilisateur de faire quoi que ce soit. Pour un tel scénario, un auditeur sera approprié.
A la question de l'exploitation forestière lorsqu'une demande arrive. Il n'y a pas de correspondance directe d'une nouvelle demande à un événement d'écoute équivalent (lecture événement du cycle de vie). Et par conséquent, pour chaque requête entrante si vous voulez vous connecter quelque chose, filtre à mon avis, est la bonne chose à utiliser.
Ce matériel d'Oracle devrait être en mesure de préciser un peu plus Filtres et Listeners
HTH
Filtre est comme un filtre à eau, où entrants (demande) et sortants (valeurs de réponse) seront filtrés.
Listener est comme l'écoute (déclenchement) -. Chaque fois que nécessaire, je vais exécuté
Une différence importante est souvent négligé: alors que les auditeurs se déclenchent pour une demande physique, filtres fonctionnent avec des dépêches de conteneur de servlet. Pour un appel d'auditeur il peut y avoir plusieurs filtres / invocations de servlet.
Mapping filtres types dispatcher . Le lien est un peu daté - il ne comprend pas le type de répartiteur de Async
Servlet 3.0.
On peut également spécifier le type 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 transforment la demande et la réponse (en-tête ainsi que le contenu).
Listeners
Vous pouvez surveiller et réagir aux événements du cycle de vie d'une servlet en définissant des objets d'écoute dont les méthodes s'invoqué lorsque des événements du cycle de vie se produisent.
Après avoir lu toutes les réponses et les blogs ce que je suis
Filtre
Un filtre est un objet qui intercepte les requêtes dynamiquement et Réponses à transformer ou utiliser les informations contenues dans le requêtes ou des réponses.
Filtres en général ne créent eux-mêmes réponses, mais fournir des fonctions universelles qui peuvent être « attachés » à tout type de Page servlet ou JSP.
Le filtre est exécuté avant vue de rendu, mais après le contrôleur rendu réponse.
Un filtre est utilisé dans la couche de voile uniquement comme il est défini dans web.xml.
Les filtres sont plus appropriés lors du traitement de votre demande / réponse en Système de boîte noire. Ils travailleront indépendamment de la façon dont le servlet est mis en œuvre.
Les filtres sont utilisés pour effectuer des tâches telles que le filtrage connexion l'authentification, la vérification des demandes entrantes des pages Web, conversion, l'enregistrement, la compression, le chiffrement et le déchiffrement, l'entrée validation etc.
Un filtre Servlet est utilisé dans la couche Web uniquement, 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 écouter des événements dans un conteneur Web, par exemple lorsque vous créez une session ou placez un attribut dans une session ou si vous activez passiver et dans un autre récipient, de souscrire ces événements, vous pouvez configurer l'auditeur dans web.xml, par exemple, HttpSessionListener.
Les auditeurs se déclenche pour une demande physique qui peut être attaché à des événements dans votre serveur d'applications .Avec auditeurs, vous pouvez suivre Niveau de l'application, au niveau de la session, les changements du cycle de vie, attribut changements, etc.
Vous pouvez surveiller et réagir aux événements dans le cycle de vie d'une servlet par la définition des objets d'écoute dont les méthodes s'invoquées lors du cycle de vie les événements se produisent.
Pour plus de détails: http://array151.com/blog/servlet-listener/
et est ici la différence http: // array151. com / blog / différence entre servlet-filtre et servlet-auditeur /
Alors que vous pouvez modifier l'objet de l'événement en cours dans un écouteur, vous ne peut pas stopper l'exécution du gestionnaire d'événement en cours à un auditeur. Vous ne pouvez pas non effacer la file d'attente à partir d'un auditeur. outre les différences imposées aux capacités, elles sont également destinées à fins différentes. Les auditeurs ont tendance à se concentrer sur interacton entre la gestionnaire d'événements et le modèle, tandis que les filtres ont tendance à se concentrer sur l'interaction entre le gestionnaire d'événements et le contrôleur.
Source: web
Vous pouvez facilement avoir une idée approximative avec le sens anglo-saxon de ces deux. Le filtre est là pour filtrer le contenu / ressource venant / sortir d'un Servlet. En revanche, Listener est là, de faire des choses connexes quand quelque chose arrive à l'application Web (écoute).
Filtre. Filtre simplement Filtrage de la réponse et demande provenant des clients au servlet
Listener: est comme un déclencheur lorsqu'un déclencheur est-il produit l'action.
En bref,
Le filtre est pour le Servlet, interceptant les demandes et les réponses.
Listener est pour l'application Web, faire des tâches importantes sur les événements dans le contexte de niveau, au niveau des sessions etc.