2011-09-22 13 views
7

? Estoy confundido acerca de lo que hacen las clases de oyente. Por ejemplo, en este proyecto hay una clase de escucha de referencia como modo:¿Cuál es el propósito de una clase de oyente en un proyecto grande

<listener> 
     <listener-class>com.sun.javaee.blueprints.petstore.model.CatalogFacade</listener-class> 
</listener> 

Es como su nombre indica, sólo escuchar a las acciones que hacer?

Respuesta

4

Sugiero que revise el capítulo sobre "Eventos del ciclo de vida de la aplicación" de la especificación de Servlet.

Dependiendo de la versión que está utilizando, aquí están los capítulos y enlaces correspondientes a los docs:

Los oyentes se utilizan para recibir notificaciones de eventos a las aplicaciones web, incluidos los cambios de estado en el ServletContext , HttpSession y ServletRequest objetos. Al implementar interfaces de escucha predefinidas (javax.servlet.ServletContextListener, javax.servlet.http.HttpSessionListener, javax.servlet.ServletRequestListener, etc.), el contenedor de servlets le notificará de ciertos eventos que están ocurriendo en su aplicación. Tienen muchos usos potenciales, como la realización de tareas de instalación y cierre de aplicaciones por única vez, la interceptación de solicitudes para realizar el registro, el seguimiento del uso de sesiones HTTP, etc.

6

Las clases del oyente reciben notificaciones sobre eventos seleccionados, como iniciar la aplicación o crear una nueva sesión.

clases Oyente:

Estos son clases Java simples que ponen en práctica uno de los dos interfaces siguientes:

  • javax.servlet.ServletContextListener
  • javax.servlet.http.HttpSessionListener

Si desea que su clase para escuchar el inicio de la aplicación y shutdown eventos luego implementar la interfaz ServletContextListener. Si desea su clase para escuchar eventos de invalidación y creación de sesión, entonces implementa la interfaz HttpSessionListener.

Source

+1

'ServletContextListener' generalmente reaccionan al inicio y al apagado de la aplicación web y desencadenan la inicialización necesaria de los objetos necesarios. 'HttpSessionListener' generalmente reacciona cuando los usuarios inician sesión en la aplicación y realizan la inicialización por usuario. –

+0

Muchas gracias - ¡esto aclara mucho para mí! – Coffee

2

Sí es exactamente lo que están escuchando por algún TODO acción, por ejemplo, si su contextloaderlistener entonces se escuchan caso del contexto de carga y hay muchas cosas que podemos hacer en tal caso, por lo que estos se hacen para eso

+0

Muchas gracias, por lo que el nombre del oyente es muy apto. – Coffee

2

Más en general, un oyente es el lado del observador/suscriptor en el observer pattern. El lado servidor/marco le proporciona un medio para recibir notificaciones de algún evento y, por lo tanto, le da la oportunidad de realizar sus acciones.

Y no necesariamente debe ser "un gran proyecto". Los oyentes son útiles incluso en los más pequeños :).

+0

@VineetReynolds Gracias, "cliente" fue incómodo aquí. Por cierto, ¿cómo puedo ver lo que se editó exactamente, suponiendo que no me hayas notificado? ¿Hay un botón de "historial" que no puedo ver debido a mi baja reputación? – MaDa

Cuestiones relacionadas