Cuando se inicia Tomcat, ¿cómo ejecuta el servlet una clase específica?
ServletContext: Cada aplicación web tiene un ServletContext asociado. El objeto ServletContext se crea cuando se inicia la aplicación y se destruye cuando se cierra la aplicación. ServletContext tiene alcance global, similar a las variables globales en una aplicación. ServletContextListener: utilizando la interfaz de escucha, los desarrolladores pueden agregar objetos arbitrarios a ServletContext antes de atender las solicitudes de los clientes. Este objeto se inicializa cuando se inicia ServletContext y luego es visible durante todo el tiempo de ejecución de ServletContext. Esta interfaz tiene los dos métodos siguientes:
¿Código Servletcontextlistener?
void?contextDestoryd(ServletContextEvent?sce);?
void?contextInitialized(ServletContextEvent?sce); y proporcionar la implementación de los dos métodos anteriores.
Ejemplo: la interfaz ServletContextListener es útil cuando necesita crear una conexión de base de datos antes de procesar cualquier solicitud de cliente y desea que esa conexión esté disponible en toda la aplicación.
¿Código Java? paquete?com.database;?
importar?javax.servlet.ServletContext;?
importar?javax.servlet.ServletContextAttributeEvent;?
importar?javax. servlet.ServletContextAttributesListener;?
importar?javax.servlet.ServletContextEvent;?
importar?javax.servlet.ServletContextListener;?
importar?com.database. DbConnection;?
public? private?public?{ }? // Este método se llama después de que ServletContext esté iniciado y listo para manejar las solicitudes de los clientes. public?void?contextInitialized(ServletContextEvent?event)?{
this.context?=?event.getServletContext();?
conn?=?DbConnection.getConnection;? p>
//?DbConnection aquí es una clase personalizada que se utiliza para crear una conexión de base de datos.
context?=?setAttribute("dbConn",conn);? }? // Este método se llamará cuando ServletContext esté a punto de cerrarse.
this.context =?
this.conn?=?null; }?
}
Luego implemente la clase.
Servlet2.x: ¿Agregar
código XML?
com.database.DatabaseContextListener en el archivo web.xml?
Servlet3.x: En lo anterior
public?class?DatabaseContextListener?Connection?(Connection)?getServletContext().getAttribute( " dbConn");