Servlets y JSP

Los Servlets son las 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. Construir p�ginas Web al vuelo es �til (y comunmente usado) por un n�mero de razones:

  • La p�gina Web est� basada en datos env�ados por el usuario. Por ejemplo, las p�ginas de resultados de los motores de b�squeda se generan de esta forma, y los programas que procesan pedidos desde sites de comercio electr�nico tambi�n.
  • Los datos cambian frecuentemente. Por ejemplo, un informe sobre el tiempo o p�ginas de cabeceras de noticias podr�an construir la p�gina din�micamente, quiz�s devolviendo una p�gina previamente construida y luego actualizandola.
  • Las p�ginas Web que usan informaci�n desde bases de datos corporativas u otras fuentes. Por ejemplo, usar�amos esto para hacer una p�gina Web en una tienda on-line que liste los precios actuales y el n�mero de art�culos en stock.

.��Cu�les son las Ventajas de los Servlets sobre el CGI "Tradicional"?

Los Servlets Java son m�s eficientes, f�ciles de usar, m�s poderosos, m�s portables, y m�s baratos que el CGI tradicional y otras muchas tecnolog�as del tipo CGI. (y lo que es m�s importante, los desarrolladores de servlets cobran m�s que los programadores de Perl :-).

  • 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 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 pr�vios, mantener abiertas las conexiones de bases de datos, etc.
  • Conveniencia. Hey, tu ya sabes Java. �Por qu� aprender Perl? Junto con la conveniencia de poder utilizar un lenguaje familiar, 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.
  • Potencia. 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.
  • 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 sites 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.

.��Qu� es JSP?

Java Server Pages (JSP) es una tecnolog�a que nos permite mezclar HTML est�tico con HTML generado din�micamente. Muchas p�ginas Web que est�n construidas con programas CGI son casi est�ticas, con la parte din�mica limitada a muy pocas localizaciones. Pero muchas variaciones CGI, incluyendo los servlets, hacen que generemos la p�gina completa mediante nuestro programa, incluso aunque la mayor�a de ella sea siempre lo mismo. JSP nos permite crear dos partes de forma separada. Aqu� tenemos un ejemplo:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD><TITLE>Welcome to Our Store</TITLE></HEAD>
<BODY>
<H1>Welcome to Our Store</H1>
<SMALL>Welcome,
<!-- User name is "New User" for first-time visitors --> 
<% out.println(Utils.getUserNameFromCookie(request)); %>
To access your account settings, click
<A HREF="Account-Settings.html">here.</A></SMALL>
<P>
Regular HTML for all the rest of the on-line store's Web page.
</BODY></HTML>

.��Cu�les son las Ventajas de JSP?

  • Contra Active Server Pages (ASP). ASP es una tecnolog�a similar de Microsoft. Las ventajas de JSP estan duplicadas. Primero, la parte din�mica est� escrita en Java, no en Visual Basic, otro lenguaje espec�fico de MS, por eso es mucho m�s poderosa y f�cil de usar. Segundo, es portable a otros sistemas operativos y servidores Web.
  • Contra los Servlets. JSP no nos da nada que no pudier�mos en principio hacer con un servlet. Pero es mucho m�s conveniente escribir (y modificar!) HTML normal que tener que hacer un bill�n de sentencias println que generen HTML. Adem�s, separando el formato del contenido podemos poner diferentes personas en diferentes tareas: nuestros expertos en dise�o de p�ginas Web pueden construir el HTML, dejando espacio para que nuestros programadores de servlets inserten el contenido din�mico.
  • Contra Server-Side Includes (SSI). SSI es una tecnolog�a �mpliamente soportada que incluye piezas definidas externamente dentro de una p�gina Web est�tica. JSP es mejor porque nos permite usar servlets en vez de un programa separado para generar las partes din�micas. Adem�s, SSI, realmente est� dise�ado para inclusiones sencillas, no para programas "reales" que usen formularios de datos, hagan conexiones a bases de datos, etc.
  • Contra JavaScript. JavaScript puede general HTML din�micamente en el cliente. Este una capacidad �til, pero s�lo maneja situaciones donde la informaci�n din�mica est� basada en el entorno del cliente. Con la excepci�n de las cookies, el HTTP y el envi� de formularios no est�n disponibles con JavaScript. Y, como se ejecuta en el cliente, JavaScript no puede acceder a los recursos en el lado del servidor, como bases de datos, cat�logos, informaci�n de precios, etc.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR