java - quartz - servletcontextlistener contextinitialized not called
Diferencia entre filtro y oyente en Servlet(Java EE) (10)
A menudo se pasa por alto una diferencia importante: mientras los oyentes se activan para una solicitud física real, los filtros funcionan con despachos de contenedores de servlets. Para una invocación de escucha, puede haber múltiples filtros / invocaciones de servlet.
Asignación de filtros a los tipos de asignador . El enlace está un poco anticuado: no incluye el tipo de distribuidor Async
Servlet 3.0. También se pueden especificar tipos de despachadores con la anotación @WebFilter
:
import javax.servlet.DispatcherType;
import javax.servlet.annotation.WebFilter;
@WebFilter(servletNames = { "My Servlet" },
dispatcherTypes = { DispatcherType.REQUEST, DispatcherType.FORWARD })
Hay funcionalidad Filters y Listeners en Servlet. Quiero saber la diferencia exacta entre el filtro y el oyente.
Después de leer todas las respuestas y blogs esto es lo que obtuve
Filtrar
Un filtro es un objeto que intercepta dinámicamente solicitudes y respuestas para transformar o utilizar la información contenida en las solicitudes o respuestas.
Por lo general, los filtros no crean respuestas, sino que proporcionan funciones universales que se pueden "adjuntar" a cualquier tipo de servlet o página JSP.
El filtro se ejecuta antes de la vista de representación, pero después de la respuesta procesada por el controlador.
Un filtro se usa en la capa web solo como está definido en web.xml.
Los filtros son más adecuados al tratar su solicitud / respuesta como un sistema de caja negra. Funcionarán independientemente de cómo se implemente el servlet.
Los filtros se utilizan para realizar tareas de filtrado, como autenticación de inicio de sesión, auditoría de solicitudes entrantes de páginas web, conversión, registro, compresión, cifrado y descifrado, validación de entrada, etc.
Un filtro de servlet se usa solo en la capa web, no puede usarlo fuera de un contexto web.
Para más detalles sobre el filtro http://array151.com/blog/servlet-filter/
Oyente
Servlet Listener se utiliza para escuchar eventos en un contenedor web, como cuando crea una sesión o coloca un atributo en una sesión o si lo pasiva y lo activa en otro contenedor, para suscribirse a estos eventos puede configurar listener en web.xml , por ejemplo, HttpSessionListener.
Los oyentes se activan para una solicitud física real que se puede adjuntar a los eventos en su servidor de aplicaciones. Con los oyentes, puede realizar un seguimiento de nivel de la aplicación, a nivel de sesión, cambios en el ciclo de vida, cambios de atributos, etc.
Puede supervisar y reaccionar a eventos en el ciclo de vida de un servlet definiendo objetos de escucha cuyos métodos se invocan cuando ocurren eventos del ciclo de vida.
Para más detalles: http://array151.com/blog/servlet-listener/
y aquí está la diferencia http://array151.com/blog/difference-between-servlet-filter-and-servlet-listener/
El filtro de servlet se usa para supervisar la solicitud y respuesta del cliente al servlet, o para modificar la solicitud y respuesta, o para auditar y registrar.
Servlet Listener se usa para escuchar eventos en contenedores web, como cuando crea una sesión, o coloca un atributo en una sesión o si lo pasiva y lo activa en otro contenedor, para suscribirse a estos eventos puede configurar listener en la web.xml
, por ejemplo HttpSessionListener
.
En breve,
El filtro es para el Servlet, interceptando las solicitudes y respuestas.
El oyente es para la aplicación web, realizando tareas importantes en eventos en el contexto, a nivel de sesión, etc.
Fácilmente puede tener una idea aproximada con el significado en inglés de esos dos. Filer está ahí para filtrar el contenido / recurso que entra / sale de un servlet. Por otro lado, Listener está allí, para hacer algunas cosas relacionadas cuando sucede algo en la aplicación web (escuchar).
Filtro: el filtro simplemente filtra la respuesta y solicita desde los clientes al servlet.
Oyente: es como un disparador cuando se produce cualquier desencadenador, toma la acción.
Los filtros se usan para solicitudes de proceso previas y posteriores. Mira el javax.servlet.Filter
en tu tomcat / jboss / otro contenedor javadoc.
Donde los oyentes son como disparadores que se pueden unir a los eventos en su servidor de aplicaciones (usemos el término contenedor aquí). Con los oyentes puede hacer un seguimiento de nivel de aplicación, nivel de sesión, cambios de ciclo de vida, cambios de atributos, etc. Las interfaces implementadas son javax.servlet.Listener
interface.
En base a las respuestas de @fnt a continuación, permítanme aclarar un poco más. Los oyentes son el objetivo de los cambios en el ciclo de vida, sin tener que recibir una solicitud del cliente. Por lo tanto, para una solicitud del cliente, puede haber muchos más eventos del ciclo de vida antes de que la solicitud sea eliminada. Ejemplo: Desea registrar todas las sesiones que exceden el tiempo de espera. Tenga en cuenta que SesionTimeout es un evento de ciclo de vida, que puede suceder sin que el usuario tenga que hacer nada. Para tal escenario, un oyente será apropiado.
A la cuestión del registro cuando llega una solicitud. No hay una asignación directa de una nueva solicitud a un evento detector equivalente (leer el evento del ciclo de vida). Y, por lo tanto, para cada solicitud entrante si desea registrar algo, Filter es, en mi opinión, lo correcto.
Este material de Oracle debería ser capaz de aclarar algunos más Filtros y Oyentes
HTH
Si bien puede modificar el objeto de evento actual dentro de un oyente, no puede detener la ejecución del controlador de eventos actual en un oyente. Tampoco puede borrar la cola de eventos desde un oyente. Además de las diferencias impuestas en las capacidades, también están destinadas a diferentes propósitos. Los oyentes tienden a centrarse en la interacción entre el controlador de eventos y el modelo, mientras que los filtros tienden a centrarse en la interacción entre el controlador de eventos y el controlador.
Fuente: web
Texto de Java EE 6
Filtrar
El filtro es un objeto que transforma la solicitud y la respuesta (encabezado y contenido).
Oyentes
Puede supervisar y reaccionar ante eventos en el ciclo de vida de un servlet definiendo objetos de escucha cuyos métodos se invocan cuando ocurren eventos del ciclo de vida.
El filtro es como un filtro de agua, donde los valores entrantes (solicitud) y saliente (respuesta) serán filtrados.
El oyente es como escuchar (desencadenar): cuando sea necesario, me realizaré.