Menú Curso Java Web (JSP's/Servlets) : Código Fuente ActivacionServidor.java empleando eventos de Contexto.

(Anterior) Estructura (Framework) "MVC" ("Model - View - Controller")

    Código Fuente ActivacionServidor.java

    
    package com.osmosislatina.eventos;
    
    import java.util.*;
    import javax.servlet.ServletContextListener;
    import javax.servlet.ServletContextEvent;
    
    
    
    
    public class ActivacionServidor implements ServletContextListener {
        
        private static int usuariosDeInicio;
        private static int usuariosConSesionActiva;
        private static Date fechaDeArranque;
        
        
    
    public void contextInitialized(ServletContextEvent event) { // Definir instancia de fecha // Asignar valor actual del sistema fechaDeArranque = new Date(); // Inicializar variables de usuarios usuariosDeInicio = 0; usuariosConSesionActiva = 0; } public void contextDestroyed(ServletContextEvent event) { fechaDeArranque = null; usuariosDeInicio = 0; usuariosConSesionActiva = 0; }
        public static int getUsuariosDeInicio() {
    	return usuariosDeInicio;
        }
    
        public static int getUsuariosConSesionActiva() {
    	return usuariosConSesionActiva;
        }
    
        public static Date getFechaDeArranque() {
    	return fechaDeArranque;
        }
    
        public static void usuarioAdquirioSesion() {
    	// Incrementar variable para Usuarios con Sesion Activa 
    	usuariosConSesionActiva++;
    	// Incrementar variable de Usuarios de Inicio
    	usuariosDeInicio++;
        }
        
        
        public static void usuarioExpiroSesion() { 
    	// Reducir variable para Usuarios con Sesion Activa 
    	usuariosConSesionActiva--;
    	
        }
        
    
    }

    • El primer paso de esta Clase es definir la librería ("package") a la cual pertenecerá e importar todas aquellas librerías/clases que son necesarias para generar el evento ("Listener").
    • Posteriormente se inicia la declaración de la Clase la cual hereda("inherit") en este caso de la Clase Base ServletContextListener; esto permite acceso a los métodos base para ejecutar tareas cuando ocurran eventos de Contexto : contextInitialized() y contextDestroyed().
    • Seguido se definen tres campos para se utilizados dentro de la clase, nótese que estos campos son definidos como private y static, lo anterior permite que los campos sean manipulables únicamente dentro de la clase (private) y que solo se genere una instancia de ellos (static).
    • El método contextInitalized() es invocado al momento que el contexto es montado, en otras palabras, cuando es inicializado el "Servlet Engine". La única tarea que realiza el método en este caso es inicializar los campos antes declarados, sin embargo, tome en cuenta que no existe restricción alguna para realizar tareas dentro de este método.
    • El método contextDestroyed() es invocado al momento que el contexto es destruido, en otras palabras, cuando se termina el proceso del "Servlet Engine".La única tarea que realiza el método es asignar los campos de la clase a un valor de inicialización , al igual que el método contextInitialized() no existe restricción alguna para realizar tareas dentro de este método.
    • Posteriormente se definen tres métodos get (sintaxis tipo "Java Bean") para extraer los valores de los campos de la Clase, lo anterior es necesario ya que los campos son declarados como privados.
    • Finalmente se definen los métodos usuarioAdquirioSesion() y usuarioExpiroSesion empleados para manipular los campos de la clase.
    • Utilidad de Campos private y métodos get

      El uso de campos privados en clases así como el uso de métodos get con sintaxis tipo "Java Bean", además de cumplir con el propósito de encapsular información tienen otro propósito muy especifico.

      Al designar un campo como publico éste puede ser manipulado libremente de cualquier otra Clase sin restricción alguna, al emplear un campo como privado éste solo puede ser manipulado en la misma clase, por ende, dentro de métodos locales.

      Lo anterior permite que la lógica ejecutada sobre cada campo sea estrictamente controlada por el creador de la Clase, esto obliga a todo que quiera modificar y/o obtener los valores de campos a realizarlo através de métodos, en efecto, prohibiendo que manipulen los campos con lógica arbitraria.

Terminos Legales de Contenido ©2000-2011 Osmosis Latina

Diseñado bajo estándares : XHTML   CSS  

webmaster@osmosislatina.com