Domanda

Ci sono i filtri e gli ascoltatori funzionalità in Servlet. Voglio sapere differenza esatta tra filtro e chi ascolta.

È stato utile?

Soluzione

Servlet filtro viene utilizzato per il monitoraggio di richiesta e risposta dal client al servlet, o modificare la richiesta e la risposta, o per audit e log.

Servlet Listener viene utilizzato per l'ascolto di eventi in un contenitore web, come ad esempio quando si crea una sessione, o effettuare un attributo in una sessione o se la passivazione e si attiva in un altro contenitore, per iscriversi a questi eventi è possibile configurare ascoltatore in web.xml, per esempio HttpSessionListener.

Altri suggerimenti

I filtri vengono utilizzati per le richieste di processo pre e post. Guardate la javax.servlet.Filter nella vostra Tomcat / JBoss / contenitore di altro javadoc.

Dove, come gli ascoltatori sono come trigger che possono essere collegati a eventi in il server app (usiamo il contenitore termine qui). Con gli ascoltatori è possibile tenere traccia a livello di applicazione, a livello di sessione, i cambiamenti del ciclo di vita, attributo cambia ecc Le interfacce implementate sono interfaccia javax.servlet.Listener.

In base a @fnt 's risposte di seguito, mi permetta di provare a chiarire un po'. Gli ascoltatori sono mirati per le modifiche del ciclo di vita, senza la necessità di avere una richiesta del client in arrivo. Così, per una richiesta del cliente, ci potrebbero essere molti altri eventi del ciclo di vita può accadere prima che la richiesta viene smaltito. Esempio: Si desidera registrare tutte le sessioni che timeout. Si prega di notare che SesionTimeout è un evento del ciclo di vita, che può avvenire senza che l'utente di fare qualsiasi cosa. Per un tale scenario, un ascoltatore sarà opportuno.

Per la domanda di registrazione, quando arriva una richiesta. Non v'è alcuna mappatura diretta di una nuova richiesta a un evento ascoltatore equivalente (lettura evento del ciclo di vita). E quindi per ogni richiesta in arrivo se si desidera registrare qualcosa, Filtro a mio parere è la cosa giusta da usare.

Questo materiale da Oracle dovrebbe essere in grado di chiarire un po 'di più e ascoltatori

HTH

Filtro è come un filtro dell'acqua, dove vengono filtrati valori in ingresso (richiesta) e in uscita (risposta).

Listener è come ascoltare (trigger) -. Quando richiesto, mi verrà eseguita

Una differenza importante è spesso trascurato: mentre gli ascoltatori vengono attivati ??per una richiesta fisico reale, filtri funzionano con dispacci servlet container. Per un'invocazione ascoltatore ci possono essere più filtri / invocazioni servlet.

Gli ascoltatori vs Filtri

Mapping filtri tipi dispatcher . Il collegamento è un po 'datato - non include la Servlet 3.0 Async tipo dispatcher. Si può anche specificare i tipi di dispatcher con l'annotazione @WebFilter:

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

@WebFilter(servletNames = { "My Servlet" },
    dispatcherTypes = { DispatcherType.REQUEST, DispatcherType.FORWARD })

Testo da Java EE 6

Filtro

Filter è un oggetto che trasformano la richiesta e risposta (intestazione come pure il contenuto).

Gli ascoltatori

È possibile monitorare e reagire a eventi del ciclo di vita di una servlet definendo oggetti listener cui metodi get invocato quando si verificano eventi del ciclo di vita.

Dopo aver letto tutte le risposte e blog questo è quello che ho ottenuto

Filtro

Un filtro è un oggetto che intercetta le richieste in modo dinamico e risposte a trasformare o utilizzare le informazioni contenute nel richieste o risposte.

Filtri in genere non si creano le risposte, ma invece fornire funzioni universali che possono essere "attaccati" a qualsiasi tipo di Pagina servlet o JSP.

Il filtro viene eseguito prima vista il rendering, ma dopo controller di resa risposta.

Un filtro è utilizzato nello strato web solo se è stato definito in web.xml.

I filtri sono più adatti nel trattare il suo richiesta / risposta come sistema di scatola nera. Lavoreranno a prescindere da come il servlet è implementato.

I filtri vengono utilizzati per eseguire operazioni di filtraggio quali login l'autenticazione, auditing delle richieste in arrivo da pagine web, conversione, registrazione, la compressione, la crittografia e la decrittografia, ingresso validazione etc.

Un Servlet filtro viene utilizzato nel solo lo strato web, non è possibile utilizzarlo al di fuori di un contesto web.

Per maggiori dettagli sul filtro http://array151.com/blog/servlet-filter/

Listener

Servlet Listener viene utilizzato per l'ascolto di eventi in un contenitore web, come ad esempio quando si crea una sessione o di inserire un attributo in una sessione o se la passivazione e si attiva in un altro contenitore, di sottoscrivere questi eventi è possibile configurare ascoltatore in web.xml, per esempio, HttpSessionListener.

Gli ascoltatori vengono attivati ??per una richiesta fisico che può essere allegata agli eventi nel vostro application server .Con ascoltatori, è possibile tenere traccia A livello di applicazione, sessione di livello, cambiamenti del ciclo di vita, l'attributo cambia ecc

È possibile monitorare e reagire agli eventi del ciclo di vita di una servlet da la definizione di oggetti listener cui metodi get invocato quando il ciclo di vita eventi si verificano.

Per maggiori dettagli: http://array151.com/blog/servlet-listener/

e qui è la differenza http: // array151. com / blog / differenza-tra-servlet-filtro-e-servlet-ascoltatore /

Mentre è possibile modificare l'oggetto evento corrente all'interno di un ascoltatore, è non può fermare l'esecuzione del gestore di eventi corrente in un ascoltatore. Non è inoltre possibile cancellare la coda di eventi all'interno di un ascoltatore. Oltretutto le differenze imposti in termini di capacità, ma sono anche destinati scopi diversi. Gli ascoltatori tendono a concentrarsi sul interacton tra la gestore di eventi e il modello, mentre i filtri tendono a concentrarsi su l'interazione tra il gestore di eventi e il controller.

Fonte: web

Si può facilmente avere un'idea di massima con il significato inglese di questi due. Filter è lì per filtrare i contenuti / risorsa che viene a / uscire da un Servlet. In altra parte, Listener è lì, a fare alcune cose relative quando qualcosa accade all'applicazione web (ascolto).

Filtro:. Filtro è semplicemente filtrando il Response e la richiesta proveniente dai clienti al servlet

Listener: è come un trigger quando un trigger è verifica ci vuole l'azione.

In breve,

Filtro è per Servlet, intercettando le richieste e le risposte.

Listener è per l'applicazione Web, fare i compiti importanti sugli eventi in contesto di livello, session-level ecc.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top