Java Servlet

Revisión del 16:24 23 jun 2019 de Javiermartin jc (discusión | contribuciones) (Texto reemplazado: «<div align="justify">» por «»)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Java Servlet
Información sobre la plantilla
DesarrolladorSun Microsystems
Sistemas Operativos compatiblesMultiplataforma
Sitio web
Sitio Web oficial


Java Servlet es la respuesta de la tecnología Java a la programación CGI. Son programas que se ejecutan en un servidor Web y construyen páginas Web. Los servlets son objetos que se ejecutan dentro del contexto de un contenedor de servlets (ej: Tomcat) y extienden su funcionalidad.

La palabra servlet proviene de otra anterior, applet, que se refería a pequeños programas que se ejecutan en el contexto de un navegador Web.

La utilización más común de los servlets es generar páginas Web de forma dinámica a partir de los parámetros de la petición que envíe el navegador Web.

Elementos técnicos

Un servlet es un objeto que se ejecuta en un servidor o contenedor JEE, diseñado especialmente para brindar contenido dinámico desde un servidor Web, generalmente HTML. Forman parte de JEE (Java Enterprise Edition), que es una ampliación de JSE (Java Standard Edition).

Un servlet implementa la interfaz javax.servlet.Servlet o hereda alguna de las clases más convenientes para un protocolo en específico (ej: javax.servlet.HttpServlet). Al implementar esta interfaz el servlet es capaz de interpretar los objetos de tipo HttpServletRequest y HttpServletResponse quienes contienen la información de la página que invocó al servlet.

Ciclo de vida de un servlet

El ciclo de vida de un servlet se divide en los siguientes pasos:

  1. El cliente solicita una petición a un servidor vía URL.
  2. El servidor recibe la petición.
    1. Si es la primera, se utiliza el motor de servlets para cargarlo y se llama al método init().
    2. Si ya está iniciado, cualquier petición se convierte en un nuevo hilo. Un servlet puede manejar múltiples peticiones de clientes.
  3. Se llama al método service() para procesar la petición devolviendo el resultado al cliente.
  4. Cuando se apaga el motor de un servlet se llama al método destroy(), que lo destruye y libera los recursos abiertos.

Clases y objetos necesarios

Se puede crear un servlet haciendo uso del paquete java.servlet que brinda las clases y objetos necesarios para el trabajo con servlets.

Ventajas de los servlets sobre el CGI

Los servlets Java son más eficientes, fáciles de usar, más potentes, más portables y más baratos que el CGI tradicional y otras muchas tecnologías del tipo CGI.

  • Eficiencia. Con CGI tradicional, se arranca un nuevo proceso para cada solicitud HTTP. Si el programa CGI hace una operación relativamente rápida, la sobrecarga del proceso de arrancada puede dominar el tiempo de ejecución. Con los servlets, la máquina Virtual Java permanece activa, y cada petición es manejada por un hilo Java de peso ligero, no un pesado proceso del sistema operativo. En CGI tradicional, si hay n peticiones simultáneas para el mismo programa CGI, el código de este problema se cargará n veces en memoria. Sin embargo, con los servlets, hay n hilos pero sólo una instancia de la clase Servlet. Los servelts también tienen más alternativas que los programas normales CGI para optimizaciones como los cachés de cálculos prévios, mantener abiertas las conexiones de bases de datos, etc.
  • Conveniencia. Los servlets tienen una gran infraestructura para el análisis automático y decodificación de datos de formularios HTML, leer y seleccionar cabeceras HTTP, manejar cookies, seguimiento de sesiones, y muchas otras utilidades.
  • Potencia. Los servlets Java nos permiten hacer muchas cosas que son difíciles o imposibles con CGI normal. Por algo, los servlets pueden intercambiar directamente con el servidor Web. Esto simplifica las operaciones que se necesitan para buscar imágenes y otros datos almacenados en situaciones estándards. Los servlets también pueden compartir los datos entre ellos, haciendo las operaciones útiles como almacenes de conexiones a bases de datos fáciles de implementar. También pueden mantener información de solicitud en solicitud, simplicando operaciones como seguimiento de sesión y el caché de cálculos anteriores.
  • Portable. Los servlets están escritos en Java y siguen un API bien estándarizado. Consecuentemente, los servlets escritos, digamos en el servidor I-Planet Enterprise, se pueden ejecutar sin modificarse en Apache, Microsoft IIS, o WebStar. Los servlets están soportados directamente o mediante plug-in en la mayoría de los servidores Web.
  • Barato. Hay un número de servidores Web gratuitos o muy baratos que son buenos para el uso personal o el uso en sitios Web de bajo nivel. Sin embargo, con la excepción de Apache, que es gratuito, la mayoría de los servidores Web comerciales son relativamente caros. Una vez que tengamos un servidor Web, no importa el coste del servidor, añadirle soporte para servlets (si no viene preconfigurado para soportarlos) es gratuito o muy barato.


Fuente