- 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 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
- 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:
- 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.).Enlaces
API de Java Servlet
API Java Servlet
Java Servlet
Metodos
HttpServletRequest
HttpServletResponse
No hay comentarios:
Publicar un comentario