Repaso Servlet






  • Qué es la  API de Java Servlet?
    • es una clase de lenguaje de programacion java, utilizada para ampliar las capacidades de un servidor. aunque los servlets pueden responder a  cualquier tipo de solicitudes, estos son utilizados comumnete para extender las aplicaciones alojadas por servidores web, de tal manera que pueden ser vistos como applets de java que se ejecutan en servidores en vez de navegadores web, Este tipo de servlets son la contraparte java de otras tecnologias de contenido dinamico web, como PHP y ASP.NET

      La palabra servlet deriva de otra anterior, applet que se refiere a pequenos programas que se ejecutan en el contexto de un navegador web.

      El uso mas comun de los servlets es generar paginas web de forma dinamica a partir de los parametros de la peticion que envie el navegador web.
  • Principales métodos de Servlet
    • A diferencia de JSP un servlet es un componente escrito en java, en terminos esto equivale a una clase y como cualquiero otra clase Java se encuentra compuesta por diversos metodos funciones || funciones. Los tres metodos que debe implementar un servlet son:
      • Service (obligatorio): Este metodo es la parte medular de todo servlet ya que dentro de el se inluye las tareas principales de ejecucion.
      • init( Opcional ): es un metodo ejecutado antes del metodo service, su labor principal es adquirir/inicializar algun recurso que sera empleado por service,  estos recursos tipicamente son conexiones hacia base de datos.
      • destroy( Opcional ): Ejecutando una vez que ha terminado el metodo service, su labor es liberar los recursos utilizados/adquiridos en el proceso de ejecucion los cuales generalmente son aquellos reservados por init.

  • Historia de Java Servlet
    •  La especificacion original de servlets fue creada por Sun Microsystems ( la version 1.0 fue terminada en junio de 1997). Comenzando con la version 2.3, la especificacion de Servlet fue desarrollada siguiendo el proceso de la comunidad java (java community process).

  • Ciclo de vida de un Servlet
    • inicializar el servlet:
      • cuando un servidor carga un servlet, ejecuta el metodo init del servlet. El proceso de inicializacion debe completarse antes de poder manejar peticiones de los clientes, y antes de que el servlete sea destruido.

        Aunque muchos servlets se ejecutan en servidores multi-thread, los servlets no tienen problemas de concurrencia durante su inicializacion. El servidor llama solo una vez al metodo init al crear la instancia del servlet, y no lo llamara de nuevo a menos que vuelva a recargar el servlet. El servidor no puede recargar el servlet. El servidor no puede recargar un servlet sin primero haber destruido el servlet llamado destroy.
    • Interactuar con los clientes: 
      • Despues de la inicializacion, el servlet puede dar servicio a las peticiones de los clientes. Estas peticiones seran atendidas por la misma instancia del servlet,  por lo que hay que tener cuidado al acceder a variables compartidas ya que podrian darse problemas de sincronizacion entre requerimientos simultaneos.
    • Destruir el servlet:
      • Los servlets se ejecutan hasta que el servidor los destruye, por cierre del servidor o bien a peticion del administrador del sistema. Cuando un servidor destruye un servlet, ejecuta el metodo destroy del propio servlet. Este metodo solo se ejecuta una vez y puede ser llamado cuando aunqueden respuestas en proceso, por lo que hay que tener la atencion de esperarlas. El servidor no ejecutara de nuevo el servlet  hasta haberlo cargado e inicializado de nuevo.

         
  • Métodos:
    • init:
      • Es el metodo invocado por el contenedor de servlets cuando se produce la inicializacion del servlet. Antes de que este reciba la primera peticion.
        • Ejemplo: Codigo Fuente:

          import javax.servlet.*;
          
          public class UnServlet extends HttpServlet {
          
            public void init(ServletConfig config) throws ServletException {
              super.init(config);
            }
          
          }
    • service:
      • Este metodo es la parte modular de todo servlet ya que dentro de el se incluyen las tareas principales de ejecucion.
         
    • doGet:
      • Este metodo envia los parametros de forma explicita junto a la pagina, mostrando en la barra de navegacion los parametros y sus valores. Son esas largas cadenas que aparecen en algunas paginas en nuestra barra de navegacion, del estilo:buscar?id=1806&valor=0987&texto=todo&..

        Las cadenas tan este aspecto parametro1=valor1&parametro2=valor2&....&parametroN=valorN. Es decir es una concatenacion a travez de & de pares parametro-valor.

         
    • doPost:
      • Este metodo solo esta accesible desde los formulario. Se envia los parametros de forma implicita junto a la pagina, es decir, al pasar los parametros, nosotros no vemos reflejado en ningun sitio que parametros son y cual es su valor.

         
    • destroy:
      • el metodo esta proporcionado por la clase HttpServlet destruye el servlet y graba su destruccion. para destruir cualquier recurso especifico de nuestro servlet, debemos sobreescribir el metodo destroy. Este metodo deberia deshacer cualquier trabajo de inicializacion y cualquier estado de persistencia sincronizado con el estado de memoria actual.
        • Ejemplo de codigo

              public class BookDBServlet extends GenericServlet {
          
                  private BookstoreDB books;
          
                  ... // the init method
          
                  public void destroy() {
                      // Allow the database to be garbage collected
                      books = null;
                  }
              }
          
  • Clases y objetos necesarios
    • Interface HttpServletRequest

No hay comentarios:

Publicar un comentario

Desarrollo de aplicaciones WEB

@HarveyHerrera Desarrollador JAVA Conceptos Generales Explicación previa de los siguientes datos: Sitio Web: Un sitio web es ...