API SERVLET

  • Qué es la  API de Java Servlet?
Los Servlets son módulos escritos en Java que se utilizan en un servidor, que puede ser o no ser servidor web, para extender sus capacidades de respuesta a los clientes al utilizar las potencialidades de Java. Los Servlets son para los servidores lo que los applets para los navegadores, aunque los servlets no tienen una interfaz gráfica. 

Los servelts pueden ser incluidos en servidores que soporten la API de Servlet (ver servidores). La API no realiza suposiciones sobre el entorno que se utiliza, como tipo de servidor o plataforma, ni del protocolo a utilizar, aunque existe una API especial para HTTP.
 
Los servlets usan clases e interfaces de dos paquetes: javax.servlet Y javax.servlet.http . El paquete javax.servlet contiene clases para admitir servlets genéricos independientes del protocolo. Estas clases son extendidas por las clases en el paquete javax.servlet.http para agregar funcionalidad específica de HTTP. El nombre del paquete de nivel superior es javax en lugar del familiar java , para indicar que la API de Servlet es una extensión estándar. 
  • Principales métodos de Servlet
 void destroy ()
Llamada por el contenedor de servlets para indicar a un servlet que el servlet está siendo retirado de servicio.
ServletConfig getServletConfig ()
Devuelve un objeto ServletConfig , que contiene parámetros de inicialización y arranque para este servlet.
java.lang.String getServletInfo ()
Devuelve información sobre el servlet, como autor, versión y copyright.
void init ( ServletConfig config)
Llamado por el contenedor de servlets para indicar a un servlet que el servlet está siendo puesto en servicio.
void service ( ServletRequest req, ServletResponse res)
Llamada por el contenedor servlet para permitir que el servlet responda a una petición.
  • Historia de Java Servlet
La especificación original de Servlets fue creada por Sun Microsystems (la versión 1.0 fue terminada en junio de 1997). Comenzando con la versión 2.3, la especificación de Servlet fue desarrollada siguiendo el Proceso de la Comunidad Java (Java Community Process).
 
Los Servlets son un reemplazo efectivo para los CGI en los servidores que los soporten ya que proporcionan una forma de generar documentos dinámicos utilizando las ventajas de la programación en Java como conexión a alguna base de datos, manejo de peticiones concurrentes, programación distribuida, etc. Por ejemplo, un servlet podría ser responsable de procesar los datos desde un formulario en HTML como registrar la transacción, actualizar una base de datos, contactar algún sistema remoto y retornar un documento dinámico o redirigir a otro servlet u alguna otra cosa.
  • Ciclo de vida de un Servlet
 Los servlets tienen el mismos ciclo de vida:

  • Un servidor carga e inicializa el servlet.
  • El servlet maneja cero o más peticiones de cliente.
  • El servidor elimina el servlet.

Inicializar un Servlet

Se ejecuta el método init del servlet. La inicialización se completa antes de manejar peticiones de clientes y antes de que el servlet sea destruido.
Muchos servlets se ejecutan en servidores multi-thread, los servlets no tienen problemas de concurrencia durante su inicialización. El servidor llama sólo una vez al método init al crear la instancia del servlet, no lo llamará de nuevo a menos que vuelva a recargar el servlet. El servidor no puede recargar un servlet sin primero haber destruido el servlet llamando al método destroy.

Interactuar con Clientes

Después de la inicialización, el servlet puede manejar peticiones de clientes. Estas respuestas son manejadas por la misma instancia del servlet por lo que hay que tener cuidado con acceso a variables compartidas por posibles problemas de sincronización entre requerimientos concurrentes.

Destruir un Servlet

Los servlets se ejecutan hasta que el servidor los destruye, por cierre el servidor o bien a petición del administrador del sistema. Cuando un servidor destruye un servlet, ejecuta el método destroy del propio servlet. Este método sólo se ejecuta una vez y puede ser llamado cuando aún queden respuestas en proceso por lo que hay que tener la atención de esperarlas.. El servidor no ejecutará de nuevo el servlet, hasta haberlo cargado e inicializado de nuevo.
 
  • Métodos:
    • init:
Es el método utilizado para crear una nueva instancia del servlet (análogo al constructor). Este método puede ser sobreescrito para realizar tareas como crear una conexión a una BD que se mantendrá mientras el servlet se mantenga cargado y puede ser utilizada por cada petición. ServletConfig contiene los parámetros de inicialización que entrega el servidor al servlet.
    • service:
Este método es el que se llama cuando se recibe una petición de un cliente y en su implementación normal para HTTP verifica el tipo de solicitud GET, POST, etc. y la redirige a los métodos respectivos. En general no es necesario reimplementar este método.
    • doGet:
Es el método llamado para procesar información que haya sido enviado con el método GET. Este método es llamado concurrentemente para cada cliente por lo que hay que estar atento por posibles variables compartidas que causen problemas.
    • doPost:
Ídem al anterior pero para el método POST, en general se implementa sólo un método y el otro lo referencia.
    • destroy:
 Este método es llamado por el servidor para indicar que el servlet será destruido. Es llamado sólo una vez y uno debe encargarse de esperar por posibles peticiones en curso. Ver el ciclo de vida.
  • Clases y objetos necesarios
 
    • Interface HttpServletRequest:

Amplía la interfaz ServletRequest para proporcionar información de solicitud de servlets HTTP.
El contenedor servlet crea un objeto HttpServletRequest y lo pasa como argumento a los métodos de servicio del servlet ( doGet , doPost , etc.).
    • Interface HttpServletResponse:
Permite enviar al cliente respuestas específicas del protocolo HTTP. Amplía la interfaz ServletResponse para proporcionar funcionalidad específica de HTTP al enviar una respuesta. Por ejemplo, tiene métodos para acceder a encabezados y cookies HTTP.
  
El contenedor servlet crea un objeto HttpServletResponse y lo pasa como argumento a los métodos de servicio del servlet ( doGet , doPost , etc.).
 
Como crear un servlet:

 
 Enlaces
API de Java Servlet
API Java Servlet
Java Servlet
Metodos
HttpServletRequest 
HttpServletResponse

No hay comentarios:

Publicar un comentario

HTML

HTML Sigla en inglés de  HyperText Markup Language  (lenguaje de marcas de hipertexto), hace referencia al  lenguaje de marcado  para l...