Está en la página 1de 3

Ventajas y desventajas de Servlets frente a otras tecnologías.

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
arrancada, y cada petición es manejada por un thread Java de peso
ligero, no un pesado proceso del sistema operativo. De forma similar, 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 threads pero sólo una copia de la clase
Servlet. Los Servelt también tienen más alternativas que los programas
normales CGI para optimizaciones como los cachés de cálculos previos,
mantener abiertas las conexiones de bases de datos, etc.

Los Servlets están escritos en Java y siguen un API bien estandarizado.


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

Los Servlets tienen una gran infraestructura para 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

Los Servlets Java nos permiten fácilmente hacer muchas cosas que son
difíciles o imposibles con CGI normal. Por algo, los servlets pueden
hablar 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 cosas útiles como almacenes de
conexiones a bases de datos fáciles de implementar. También pueden
mantener información de solicitud en solicitud, simplicando cosas como
seguimiento de sesión y el caché de cálculos anteriores.
 Es integrable con páginas JSP y se pueden usar filtros.

 Instancia permanentemente cargada en memoria por cada


Servlet. Cada petición se ejecuta en un hilo, no en un proceso.

 Con los Servlets, hay n threads pero sólo una copia de la clase
Servlet. Los Servlet también tienen más alternativas que los
programas CGI para optimizaciones como mantener abiertas las
conexiones de las bases de datos.

 Los Servlets están escritos en Java y siguen un API bien


estandarizado.

 Puede ser utilizados sobre cualquier SO. y en la mayoría de


servidores Web.

 Por ser Java ofrece: máquina virtual, chequeo de tipos, gestión de


memoria, excepciones, seguridad, etc.

 Actúan como capa intermedia entre la petición que proviene del


navegador Web u otro cliente HTTP y Bases de Datos o
Aplicaciones en el servidor HTTP.

JSP no provee ninguna capacidad que no pueda ser, en principio, llevada


a cabo con un servlet. En efecto, los documentos JSP son
automáticamente traducidos en servlets. Pero es más cómodo escribir
(¡y modificar!) HTML normal que tener “millones” de declaraciones
println que generen el HTML. Además, separando la presentación del
contenido, se puede colocar a diferentes personas en diferentes tareas:
los expertos en diseño Web pueden construir el HTML usando sus
herramientas habituales y dejar espacios para que los programadores de
servlets inserten el contenido dinámico.

El problema de utilizar servlets directamente es que, aunque son muy


eficientes, son muy tediosos de programar puesto que hay que generar
la salida en código HTML con gran cantidad de funciones println. Este
problema se resuelve fácilmente utilizando JSP, puesto que aprovecha la
eficiencia del código Java, para generar el contenido dinámico, y la
lógica de presentación se realiza con HTML normal. Sin embargo,
cuando en una página JSP se necesita introducir mucha funcionalidad,
es decir, introducir mucho código Java para generar el contenido
dinámico de nuestra página, ese mismo hecho lleva a que el código de
la página JSP no sea demasiado claro

También podría gustarte