Servlet
Clientes y Servidores
Cliente:
Por
su versatilidad y potencialidad, en la actualidad la mayoría de los
usuarios de Internet utilizan en sus comunicaciones con los
servidores de datos, los browsers o navegadores. Esto no significa
que nopuedan emplearse otro tipo de programas como clientes
e-mail,news, etc. para aplicaciones más específicas. De hecho, los
browsers más utilizados incorporan lectores de mail y de news.En la
actualidad los browsers más extendidos son Netscape Communicator y
Microsoft Internet Explorer. Ambos acaparan una cuota de mercado que
cubre prácticamente a todos los usuarios.A pesar de que ambos cumplen
con la mayoría de los estándares aceptados en la Internet, cada uno de
ellos proporciona soluciones adicionales a problemas más específicos.
Por este motivo, muchas veces será necesario tener en cuenta qué tipo de
browser se va a comunicar con un servidor, pues el resultado puede ser
distinto dependiendo del browser empleado, lo cual puede dar lugar a
errores.
Servidores :
Los
servidores son programas que se encuentran permanentemente
esperando a que algún otro ordenador realice una solicitud de
conexión. En un mismo ordenador es posible tener simultáneamente
servidores de los distintos servicios anteriormente mencionados
(HTTP,FTP,TELNET, etc.). Cuando a dicho ordenador llega un
requerimiento de servicio enviado por otro ordenador de la red, se
interpreta el tipo de llamada, y se pasa el control de la conexión al
servidor correspondiente a dicho requerimiento. En caso de no tener el
servidor adecuado para responder a la comunicación, está será
rechazada.Como ya se ha apuntado, no todos los servicios actúan de igual
manera. Algunos, como TELNET y FTP, una vez establecida la conexión, la
mantienen hasta que el cliente o el servidor explícitamente la cortan.
Por ejemplo, cuando se establece una conexión con un servidor de FTP ,
los dos ordenadores se mantienen en contacto hasta que el cliente cierre
la conexión mediante el comando correspondiente (quit,exit, ...)o pase
un tiempo establecido en la configuración del servidor FTP o
del propio cliente, sin
ninguna actividad entre ambos.
CGI
Es una importante tecnología de la World Wide Web que permite a un cliente (navegador web) solicitar datos de un programa ejecutado en un servidor web. CGI especifica un estándar
para transferir datos entre el cliente y el programa. Es un mecanismo
de comunicación entre el servidor web y una aplicación externa cuyo
resultado final de la ejecución son objetos MIME. Las aplicaciones que se ejecutan en el servidor reciben el nombre de CGIs.
Las aplicaciones CGI fueron una de las primeras prácticas de crear contenido dinámico para las páginas web. En una aplicación CGI, el servidor web pasa las solicitudes del cliente
a un programa externo. Este programa puede estar escrito en cualquier
lenguaje que soporte el servidor, aunque por razones de portabilidad se
suelen usar lenguajes de script. La salida de dicho programa es enviada al cliente en lugar del archivo estático tradicional.
Java Servlet
El servlet es una clase en el lenguaje de programación Java,
utilizada para ampliar las capacidades de un servidor. Aunque los
servlets pueden responder a cualquier tipo de solicitudes, éstos son
utilizados comúnmente 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 tecnologías de contenido
dinámico Web, como PHP y ASP.NET.La palabra servlet deriva de otra anterior, applet, que se refiere a pequeños programas que se ejecutan en el contexto de un navegador web.
Diferencias entre las tecnologías CGI y Servlet
La tecnología Servlet proporciona las mismas ventajas del lenguaje Java en cuanto a portabilidad (“ write once, run anywhere”) y seguridad, ya que un servlet es una clase de Java igual que cualquier otra, y por tanto tiene en ese sentido todas las características del lenguaje. Esto es algo de lo que carecen los programas CGI, ya que hay que compilarlos para el sistema operativo del servidor y no disponen en muchos casos de técnicas de comprobación dinámica de errores en tiempo de ejecución.Otra de las principales ventajas de los servlets con respecto a los programas CGI , es la del rendimiento, y esto pesar de que Java no es un lenguaje particularmente rápido. Mientras que los es necesario cargar los programas CGI tantas veces como peticiones de servicio existan por parte de los clientes, los servlets , una vez que son llamados por primera vez, quedan activos en la memoria del servidor hasta que el programa que controla el servidor los desactiva. De esta manera se minimiza en gran medida el tiempo de respuesta.
Características de los servlets:
Además de las características indicadas en el apartado anterior, los servlets tienen las siguientes características:
1. Son independientes del servidor utilizado y de su sistema operativo, lo que quiere decir que a pesar de estar escritos en Java, el servidor puede estar escrito en cualquier lenguaje de programación, obteniéndose exactamente el mismo resultado que si lo estuviera en Java.
2. Los servlets pueden llamar a otros servlets , e incluso a métodos concretos de otros servlets. De esta forma se puede distribuir de forma más eficiente el trabajo a realizar. Por ejemplo, se podría tener un servlet encargado de la interacción con los clientes y que llamara a otro servlet para que
a su vez se encargara de la comunicación con una base de datos.
3. Los servlets pueden obtener fácilmente información acerca del cliente (la permitida por el protocolo HTTP), tal como su dirección IP , el puerto que se utiliza en la llamada, el método utilizado (GET,POST,...), etc.
4. Permiten además la utilización de cookies y sesiones , de forma que se puede guardar información específica acerca de un usuario determinado, personalizando de esta forma la interacción cliente- servidor. Una clara aplicación es mantener la sesión con un cliente.
5. Los servlets pueden actuar como enlace entre el cliente y una o varias bases de datos en arquitecturas cliente-servidor de 3 capas (si la base de datos está en un servidor distinto).
6. Asimismo, pueden realizar tareas de proxy para un applet . Debido a las restricciones de seguridad, un applet no puede acceder directamente por ejemplo a un servidor de datos localizado en cualquier máquina remota, pero el servlet sí puede hacerlo de su parte.
7. Al igual que los programas CGI , los servlets permiten la generación dinámica de código HTML dentro de una propia página HTML . Así, pueden emplearse servlets para la creación de contadores, banners, etc.
Ciclo de Vida de un Servlet
- 1. Inicializar el servlet
init
del servlet. El proceso de inicialización debe completarse antes de
poder manejar peticiones de los clientes, y antes de que el servlet sea
destruido.Aunque 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, y 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.- 2. Interactuar con los clientes
- 3. Destruir el servlet
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.
Ejemplo de código básico de un servlet
Un pequeño servlet de ejemplo es el siguiente:

Comentarios
Publicar un comentario