Sie sind auf Seite 1von 27

Universidad Nacional de Canindeyu

Facultad de Ciencia y Tecnologa

Java en la Web
Aplicaciones Web

Por: Vctor Velzquez


Profesor gua: Vctor Nez

Curuguaty-Paraguay 2012

Pgina | 1

Agradecimiento
Dios, por darme la oportunidad de vivir y por estar conmigo en cada paso que doy, por fortalecer mi corazn e iluminar mi mente y por haber puesto en mi camino a aquellas personas que han sido mi soporte y compaa durante todo el periodo de estudio. A mis padres por ser el pilar fundamental en todo lo que soy, en toda mi educacin, tanto acadmica, como de la vida, por su incondicional apoyo perfectamente mantenido a travs del tiempo. Todo este trabajo ha sido posible gracias a ellos.

Pgina | 2

Dedicatoria
A mis padres, porque creyeron en m y porque me sacaron adelante, dndome ejemplos dignos de superacin y entrega, porque en gran parte gracias a ustedes, hoy puedo ver alcanzada mi meta, ya que siempre estuvieron impulsndome en los momentos ms difciles de mi carrera, y porque el orgullo que sienten por m, fue lo que me hizo ir hasta el final.

Pgina | 3

Fundamentacin
Quin no ha utilizado el Hotmail, Facebook, Twitter?. Quin no ha comprado en Amazon, ha vendido un producto en Mercado Libre, ha dejado un comentario en un blog, ha entrado a la intranet de su empresa, ha realizado una bsqueda en Google o ha realizado una transaccin bancaria va internet?. Casi nadie, no?. Bueno, para que tengan una idea, tanto el Hotmail, Facebook, Twitter, Amazon, Mercado Libre, los blogs, las intranets e incluso Google no son pginas web; por el contrario, contienen una lgica compleja que no vemos. Es por ello que son llamadas aplicaciones web. Quizs les sobrevenga la duda de cul es la diferencia entre una pgina y una aplicacin web, acaso no es lo mismo?, si es as, la respuesta es: NO. Las pginas web muestran informacin esttica y son creadas empleando lenguajes de programacin como el HTML o el XHTML, que son lenguajes que los navegadores web interpretan para mostrarnos la informacin en pantalla; mientras que las aplicaciones web trabajan de una manera dinmica, pues nos permiten interactuar con la informacin, consultar bases de datos, realizar transacciones, etc., y adems del lenguaje HTML base, necesitan de otras tecnologas de programacin como Java, ASP.Net, Php, etc. En trminos prcticos, las aplicaciones web son soluciones informticas o como su nombre lo dice aplicaciones que nos permiten interactuar con la informacin y a las cuales podemos acceder a travs de una conexin a internet, desde cualquier lugar del mundo, sin necesidad de instalarlas previamente en nuestra pc; solamente necesitamos contar con un navegador web, llmese Mozzilla, Internet Explorer, Chrome, etc..

Pgina | 4

Objetivos
Objetivo General
Conocer las herramientas y el proceso de desarrollo de aplicaciones web estudiando especficamente la tecnologa Java

Objetivos Especficos
Entender la definicin de Aplicacin Web Conocer las Clasificaciones de Java para la web Interpretar los cdigos de ejemplos simples a modo de introduccin a la tecnologa Java

Pgina | 5

ndice
Contenido Pgina

Portada..1 Agradecimiento.2 Dedicatoria....3 Fundamentacin..4 Objetivos5 Objetivo General..5 Objetivos Especficos..5 ndice..6 Introduccin..8 1-Aplicacin Web.9 1.1-Interfaz....9 1.2-Estructura de las aplicaciones web9 1.3-Ventajas....10 1.4-Inconvenientes.11 1.5-Lenguajes de programacin..11 2-Java (lenguaje de programacin)....12 2.1-Applet Java..12 2.1.1-Ventajas.12 2.1.2-Desventajas..13 2.1.3-Crear un applet.13 2.1.4-Ejecucin...15 2.1.5-Etiqueta <applet>....16
Pgina | 6

2.1.6-Etiqueta <object>.17 2.1.7-Ciclo de vida.18 2.1.8-Ejemplo Grfico de una Ventana Applet de Java:..19 2.2-Java Web Start....19 2.3-Java Servlet.20 Que es un Servlet?.......................................................................................20 Que es un contenedor de Servlets?.............................................................20 Como funcionan un contenedor de Servlets?..............................................20 2.3.1-Ciclo de vida.21 2.3.2-Clases y objetos necesarios..21 2.3.3-Ejemplo..21 2.4-JavaServer Pages..22 2.4.1-Arquitectura..23 2.4.2-Estructura de una pgina JSP...23 2.4.2.1-Directivas...24 2.4.2.2-Declaraciones24 2.4.2.3-Scriptlets....24 2.4.2.4-Variables Predefinidas....25 2.4.2.5-Expresiones...25 2.4.3-Procesamiento de la pgina JSP..25 Conclusin......26 Bibliografa..27

Pgina | 7

Introduccin
Inicialmente la web era simplemente una coleccin de pginas estticas, documentos, etc., que podan consultarse o descargarse. El siguiente paso en su evolucin fue la inclusin de un mtodo para confeccionar pginas dinmicas que permitiesen que lo mostrado fuese dinmico (generado o calculado a partir de los datos de la peticin). Dicho mtodo fue conocido como CGI (common Gateway interface) y defina un mecanismo mediante el cual podamos pasar informacin entre el servidor HTTP y programas externos. Los CGI siguen siendo muy utilizados, puesto que la mayora de los servidores web los soportan debido a su sencillez. Adems, nos proporcionan total libertad a la hora de escoger el lenguaje de programacin para desarrollarlos. El esquema de funcionamiento de los CGI tena un punto dbil: cada vez que recibamos una peticin, el servidor web lanzaba un proceso que ejecutaba el programa CGI. Como, por otro lado, la mayora de CGI estaban escritos en algn lenguaje interpretado (Perl, Python, etc.) o en algn lenguaje que requera runtime environment (VisualBasic, Java, etc.), esto implicaba una gran carga para la mquina del servidor. Adems, si la web tena muchos accesos al CGI, esto supona problemas graves. Por ello se empiezan a desarrollar alternativas a los CGI para solucionar este grave problema de rendimiento. Las soluciones vienen principalmente por dos vas. Por un lado se disean sistemas de ejecucin de mdulos ms integrados con el servidor, que evitan que ste tenga que instanciar y ejecutar multitud de programas. La otra va consiste en dotar al servidor de un intrprete de algn lenguaje de programacin (RXML, PHP, VBScript, etc.) que nos permita incluir las pginas en el cdigo de manera que el servidor sea quien lo ejecute, reduciendo as el tiempo de respuesta. A partir de este momento, se vive una explosin del nmero de arquitecturas y lenguajes de programacin que nos permiten desarrollar aplicaciones web. Todas ellas siguen alguna de las dos vas ya mencionadas. De ellas, las ms tiles y las que ms se utilizan son aquellas que permiten mezclar los dos sistemas, es decir, un lenguaje de programacin integrado que permita al servidor interpretar comandos que incrustemos en las pginas HTML y un sistema de ejecucin de programas ms enlazado con el servidor que no presente los problemas de rendimiento de los CGI.

Pgina | 8

Marco Terico

1-Aplicacion web
En la ingeniera de software se denomina aplicacin web a aquellas herramientas que los usuarios pueden utilizar accediendo a un servidor web a travs de Internet o de una intranet mediante un navegador. En otras palabras, es una aplicacin software que se codifica en un lenguaje soportado por los navegadores web en la que se confa la ejecucin al navegador. Las aplicaciones web son populares debido a lo prctico del navegador web como cliente ligero, a la independencia del sistema operativo, as como a la facilidad para actualizar y mantener aplicaciones web sin distribuir e instalar software a miles de usuarios potenciales. Existen aplicaciones como los webmails, wikis, weblogs, tiendas en lnea que son ejemplos bien conocidos de aplicaciones web. Es importante mencionar que una pgina Web puede contener elementos que permiten una comunicacin activa entre el usuario y la informacin. Esto permite que el usuario acceda a los datos de modo interactivo, gracias a que la pgina responder a cada una de sus acciones, como por ejemplo rellenar y enviar formularios, participar en juegos diversos y acceder a gestores de base de datos de todo tipo.

1.1-Interfaz
Las interfaces web tienen ciertas limitaciones en las funcionalidades que se ofrecen al usuario. Hay funcionalidades comunes en las aplicaciones de escritorio como dibujar en la pantalla o arrastrar-y-soltar que no estn soportadas por las tecnologas web estndar. Los desarrolladores web generalmente utilizan lenguajes interpretados (scripts) en el lado del cliente para aadir ms funcionalidades, especialmente para ofrecer una experiencia interactiva que no requiera recargar la pgina cada vez (lo que suele resultar molesto a los usuarios). Recientemente se han desarrollado tecnologas para coordinar estos lenguajes con las tecnologas en el lado del servidor.

1.2-Estructura de las aplicaciones web


Aunque existen muchas variaciones posibles, una aplicacin web est normalmente estructurada como una aplicacin de tres-capas. En su forma ms comn, el navegador web ofrece la primera capa, y un motor capaz de usar alguna
Pgina | 9

tecnologa web dinmica que constituye la capa intermedia. Por ltimo, una base de datos constituye la tercera y ltima capa.

El navegador web manda peticiones a la capa intermedia que ofrece servicios valindose de consultas y actualizaciones a la base de datos y a su vez proporciona una interfaz de usuario.

1.3-Ventajas
- Ahorra tiempo: Se pueden realizar tareas sencillas sin necesidad de descargar ni instalar ningn programa. - No hay problemas de compatibilidad: Basta tener un navegador actualizado para poder utilizarlas. - No ocupan espacio en nuestro disco duro. - Actualizaciones inmediatas: Como el software lo gestiona el propio desarrollador, cuando nos conectamos estamos usando siempre la ltima versin que haya lanzado. - Consumo de recursos bajo: Dado que toda (o gran parte) de la aplicacin no se encuentra en nuestro ordenador, muchas de las tareas que realiza el software no consumen recursos nuestros porque se realizan desde otro ordenador.
Pgina | 10

- Multiplataforma: Se pueden usar desde cualquier sistema operativo porque slo es necesario tener un navegador. - Portables: Es independiente del ordenador donde se utilice (un PC de sobremesa, un porttil...) porque se accede a travs de una pgina web (slo es necesario disponer de acceso a Internet). La reciente tendencia al acceso a las aplicaciones web a travs de telfonos mviles requiere sin embargo un diseo especfico de los ficheros CSS para no dificultar el acceso de estos usuarios. - La disponibilidad suele ser alta porque el servicio se ofrece desde mltiples localizaciones para asegurar la continuidad del mismo. - Los virus no daan los datos porque stos estn guardados en el servidor de la aplicacin. - Colaboracin: Gracias a que el acceso al servicio se realiza desde una nica ubicacin es sencillo el acceso y comparticin de datos por parte de varios usuarios. Tiene mucho sentido, por ejemplo, en aplicaciones online de calendarios u oficina. - Los navegadores ofrecen cada vez ms y mejores funcionalidades para crear aplicaciones web ricas (RIAs).

1.4-Inconvenientes
- La disponibilidad depende de un tercero, el proveedor de la conexin a internet o el que provee el enlace entre el servidor de la aplicacin y el cliente. As que la disponibilidad del servicio est supeditada al proveedor.

1.5-Lenguajes de programacin
Existen numerosos lenguajes de programacin empleados para el desarrollo de aplicaciones web en el servidor, entre los que destacan: PHP Java, con sus tecnologas Java Servlets y JavaServer Pages (JSP) Javascript Perl Ruby Python

Pgina | 11

2-Java (lenguaje de programacion)

Java es un lenguaje de programacin de alto nivel orientado a objetos, desarrollado por James Gosling en 1995. El lenguaje en s mismo toma mucha de su sintaxis de C, Cobol y Visual Basic, pero tiene un modelo de objetos ms simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulacin directa de punteros o memoria. La memoria es gestionada mediante un recolector de basura.

2.1-Applet Java
Un applet Java es un applet escrito en el lenguaje de programacin Java. Los applets de Java pueden ejecutarse en un navegador web utilizando la Java Virtual Machine (JVM), o en el AppletViewer de Sun. En Java, un applet es un programa que puede incrustarse en un documento HTML, es decir en una pgina web. Cuando un navegador carga una pgina web que contiene un applet, este se descarga en el navegador web y comienza a ejecutarse. Esto permite crear programas que cualquier usuario puede ejecutar con tan solo cargar la pgina web en su navegador.

2.1.1-Ventajas
Los applets de Java suelen tener las siguientes ventajas: Son multiplataforma (funcionan en Linux, Windows, Mac OS, y en cualquier sistema operativo para el cual exista una Java Virtual Machine).
Pgina | 12

El mismo applet puede trabajar en "todas" las versiones de Java, y no slo la ltima versin del plugin. Sin embargo, si un applet requiere una versin posterior del Java Runtime Environment (JRE), el cliente se ver obligado a esperar durante la descarga de la nueva JRE. Es compatible con la mayora de los navegadores web. Puede ser almacenado en la memoria cach de la mayora de los navegadores web, de modo que se cargar rpidamente cuando se vuelva a cargar la pgina web, aunque puede quedar atascado en la cach, causando problemas cuando se publican nuevas versiones. Puede tener acceso completo a la mquina en la que se est ejecutando, si el usuario lo permite. Puede ejecutarse a velocidades comparables a la de otros lenguajes compilados, como C++ (dependiendo de la version de la JVM). Puede trasladar el trabajo del servidor al cliente, haciendo una solucin web ms escalable tomando en cuenta el nmero de usuarios o clientes.

2.1.2-Desventajas
Los applets de Java suelen tener las siguientes desventajas: Requiere el plugin de Java, que no est disponible por defecto en todos los navegadores web. No puede iniciar la ejecucin hasta que la JVM est en funcionamiento, y esto puede tomar tiempo la primera vez que se ejecuta un applet. Si no est firmado como confiable, tiene un acceso limitado al sistema del usuario - en particular no tiene acceso directo al disco duro del cliente o al portapapeles. Algunas organizaciones slo permiten la instalacin de software a los administradores. Como resultado, muchos usuarios (sin privilegios para instalar el plugin en su navegador) no pueden ver los applets. Un applet podra exigir una versin especfica del JRE.

2.1.3-Crear un applet
Para crear un applet necesitamos escribir una clave de la clase Applet del paquete
java.applet.*;

Pgina | 13

import java.applet.*; public class MiApplet extends Applet { //Cuerpo del ''applet''. }

El cdigo anterior declara una nueva clase MiApplet que hereda todas las capacidades de la clase Applet de Java. El resultado es un fichero MiApplet.java. Una vez creada la clase que compone el applet, escribimos el resto del cdigo y despus lo compilamos, obteniendo el fichero MiApplet.class. Para poder crear el applet se necesita compilar el cdigo Java en un intrprete.
import java.applet.*; import java.awt.*; import java.util.*; import java.text.DateFormat; public class MiApplet extends Applet implements Runnable { private Thread hilo = null; private Font fuente; private String horaActual = "00:00:00"; public void init() { fuente = new Font("Verdana", Font.BOLD, 24); } public void start() { if (hilo == null) { hilo = new Thread(this, "Reloj"); hilo.start(); } } public void run() { Thread hiloActual = Thread.currentThread(); while (hilo == hiloActual) { //obtener la hora actual Calendar cal = Calendar.getInstance(); Date hora = cal.getTime();

Pgina | 14

DateFormat df = DateFormat.getTimeInstance(); horaActual = df.format(hora); repaint(); try { Thread.sleep(1000); } catch (InterruptedException e){} } } public void paint(Graphics g) { //Dibujar un rectngulo alrededor del contenedor g.draw3DRect(1, 1, getSize().width-3, getSize().height-3, false); //Establecer la Fuente g.setFont(fuente); //mostrar la Hora g.drawString(horaActual,14,40); } public void stop() { hilo = null; } }

Si se utiliza la biblioteca grfica Swing, se puede utilizar la clase JApplet de javax.swing en vez de Applet:
import javax.swing.*; public class MiApplet extends JApplet { //Cuerpo del ''applet''. }

2.1.4-Ejecucin
Para insertar el applet en una pgina web, se usa la siguiente estructura:
<etiqueta parametro = "valor"></etiqueta>

Pgina | 15

2.1.5-Etiqueta <applet>
Siguiendo la estructura anterior, un ejemplo de cdigo para ejecutar el applet sera:
<applet code="MiApplet.class" width="370" height="270"></applet>

Pudindose usar los siguientes atributos: Atributo Descripcin Ejemplo

Codebase

Direccin desde donde se puede descargar la clase de Java que va a codebase="http://www.p cargar el applet, el URL de la clase. Si agina.com/applet/" no se especifica, ser la ubicacin actual de la pgina HTML.

Code

Nombre de la clase que se quiere cargar en el applet. La direccin donde se encuentra es relativa code="NombreClase.clas al codebase. Si no se ha s" especificado codebase, es la misma carpeta donde est la pgina HTML que carga el applet.

Width

Tamao en pxels de la anchura.

width=100

Height

Tamao en pxels de la altura.

height=100

Alt

Texto que se muestra donde debera alt="Su navegador no cargarse el applet si el navegador no permite cargar este Applet" permite su carga.

Name

Establece un nombr nico para el applet.

name="MiApplet"

Pgina | 16

Archive

Es un listado de clases separados por comas que deben ser cargados en la cach del usuario local antes de poder ejecutarse.

archive="Clase1.class, Clase2.class, Clase3.class"

Hspace

Establece los mrgenes laterales en hspace=25 pxels.

Vspace

Establece el margen superior e inferior en pxels.

vspace=25

Align

Alineacin respecto a otros elementos. align="center" Valores: left, center, rigth, top, midd le y botton

Mayscript

Permite especificar si el applet puede tener acceso al cdigo JavaScript

No tiene valor asociado. Si aparece se aplica.

Dentro de la etiqueta <applet> puede aparecer la etiqueta <param> que contiene pares clave/valor, que son ledos por el programa Java, tantas veces como se quiera.

2.1.6-Etiqueta <object>
A partir de la versin 4.0 de HTML se consider obsoleto el uso de la etiqueta <applet>, siendo sustituida por <object>. Esta etiqueta es compatible con los navegadores Microsoft Internet Explorer, Netscape 6 (y versiones superiores) y Mozilla Firefox. Comparte muchos de los atributos con <applet>, siendo los nicos para esta etiqueta:

Pgina | 17

Atributo

Descripcin

Ejemplo

Classid

Identificador del tipo de objeto.

Para Java es: classid="clsid:CAFEEFAC


-0014-0001-0000ABCDEFFEDCBA"

URL que apunta a un fichero .cab en la red Codebase del plugin necesario para poder ejecutar el contenido.

codebase="Direccin_del_i nstalador_de_la_Mquina_V irtual_Java"

Type

Tipo de archivo que va a reproducirse mediante el objeto.

<param name="type" value="application/xjava-applet;jpiversion=1.5.0">

2.1.7-Ciclo de vida
Cuando un applet se inicia, se llaman en este orden a los siguientes mtodos: 1. init: suele contener instrucciones para inicializar el applet. 2. start: como init, se suele usar para inicializar, pero con la diferencia de que este mtodo tambin se llama cuando se reinicia un applet. 3. paint: se encarga de mostrar el contenido del applet. Se ejecuta cada vez que se tenga que redibujar. Para terminar o pausar la ejecucin se llama a los siguientes mtodos: stop: suspende la ejecucin del programa. Se llama cuando el applet se vuelve temporalmente invisible. destroy: cuando no se va a necesitar ms el applet. Se usa para liberar recursos.

Pgina | 18

2.1.8-Ejemplo Grfico de una Ventana Applet de Java:

2.2-Java Web Start


Java Web Start es la implementacin de referencia de la especificacin Java Networking Launching Protocol (JNLP) y est desarrollada por Sun Microsystems, mediante la cual permite arrancar aplicaciones Java que estn en un servidor web de aplicaciones comprobando previamente si el cliente tiene la versin actualizada de dicha aplicacin. Si no es as descargar la ltima versin y se ejecutar en local. El arranque de dichas aplicaciones puede ser efectuado mediante enlaces en una pgina web o bien a travs de enlaces en el escritorio cliente. Mediante esta tecnologa se asegura que una aplicacin es distribuida siempre en su ltima versin. Los ficheros que contienen la informacin sobre donde se encuentra la aplicacin, versin, etc. tienen la extensin .jnlp. Un ejemplo de esta tecnologa es la de un servidor web donde se encuentra una pgina web con enlaces a aplicaciones Java. Cada uno de estos enlaces apuntar
Pgina | 19

a ficheros .jnlp que indicarn la ruta de la aplicacin en este u otro servidor. En ese momento arrancar automticamente Java Web Start y comprobar la seguridad y si el usuario tiene la ltima versin instalada en su equipo; si no es as, la descargar y ejecutar. Actualmente Java Web Start viene incluido en el Java Runtime Environment (JRE). Sun Microsystems y Java Web Start son marcas registradas de Sun Microsystems, Inc.

2.3-Java Servlet
Los servlets son objetos que corren dentro y fuera del contexto de un contenedor de servlets (ej: Tomcat) y extienden su funcionalidad. La palabra servlet deriva de otra anterior, applet, que se refera a pequeos programas que se ejecutan en el contexto de un navegador web. Por contraposicin. El uso ms comn de los servlets es generar todas pginas web de forma dinmica a partir de los parmetros de la peticin que enve el navegador web.

Que es un Servlet?
Un Servlet es un objeto java que pertenece a una clase que extiende javax.servlet.http.HttpServlet. Esto no es del todo exacto ya que existen diferentes tipos de Servlets pero con diferencia HttpServlet es el ms usado.

Que es un contenedor de Servlets?


Un contenedor de Servlet es un programa capaz de recibir peticiones de pginas web y redireccionar estas peticiones a un objeto Servlet.

Como funcionan un contenedor de Servlets?


1. El Browser pide una pgina al servidor HTTP que es un contenedor de Servlets 2. El contenedor de Servlets delega la peticin a un Servlet en particular elegido de entre los Servlets que contiene.

Pgina | 20

3. El Servlet, que es un objeto java, se encarga de generar el texto de la pgina web que se entrega al contenedor. 4. El contenedor devuelve la pgina web al Browser que la solicit.

2.3.1-Ciclo de vida
El ciclo de vida de un Servlet se divide en los siguientes puntos: 1. El cliente solicita una peticin a un servidor va URL. 2. El servidor recibe la peticin. 3. Si es la primera, se utiliza el motor de Servlets para cargarlo y se llama al mtodo init(). 4. Si ya est iniciado, cualquier peticin se convierte en un nuevo hilo. Un Servlet puede manejar mltiples peticiones de clientes. 5. Se llama al mtodo service() para procesar la peticin devolviendo el resultado al cliente. 6. Cuando se apaga el motor de un Servlet se llama al mtodo destroy(), que lo destruye y libera los recursos abiertos.

2.3.2-Clases y objetos necesarios


Podemos crear un Servlet haciendo uso del paquete javax.servlet.

2.3.3-Ejemplo
Cdigo de ejemplo de un Servlet que procesa una peticin GET y devuelve una pgina web HTML sencilla:
package org.pruebas; import import import import import import java.io.IOException; java.io.PrintWriter; javax.servlet.ServletException; javax.servlet.http.HttpServlet; javax.servlet.http.HttpServletRequest; javax.servlet.http.HttpServletResponse;

public class HolaMundoServlet extends HttpServlet { /** * Servlet de ejemplo que procesa una peticin GET * @param request

Pgina | 21

* @param response * @throws ServletException * @throws IOException */ @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">"); out.println("<html>"); out.println("<head><title>Ejemplo Hola Mundo</title></head>"); out.println("<body>"); out.println("<h1>Hola Mundo!</h1>"); out.println("</body></html>"); } }

2.4-JavaServer Pages
La Web dinmica se ha desarrollado desde un sistema de informacin distribuido hipermedia (HTML) basado en red que ofreca informacin esttica hasta un conjunto de portales y aplicaciones en Internet que ofrecen un conjunto variado de servicios. Las soluciones de primera generacin incluyeron CGI, que es un mecanismo para ejecutar programas externos en un servidor web. El problema con los scripts CGI es la escalabilidad; se crea un nuevo proceso para cada peticin. Las soluciones de segunda generacin incluyeron vendedores de servidores Web que proporcionaban plug-ins y APIs para sus servidores. El problema es que sus soluciones eran especficas a sus productos servidores. Microsoft proporcion las pginas activas del servidor (ASP) que hicieron ms fcil crear el contenido dinmico. Sin embargo, su solucin slo trabajaba con Microsoft IIS o Personal Web Server. Otra tecnologa de segunda generacin son los Servlets. Los Servlets hacen ms fcil escribir aplicaciones del lado del servidor usando la tecnologa Java. El problema con los CGI o los Servlets, sin embargo, es que tenemos que seguir el ciclo de vida de escribir, compilar y desplegar. Las pginas JSP son una solucin de tercera generacin que se pueden combinar fcilmente con algunas soluciones de la segunda generacin, creando el contenido dinmico, y haciendo ms fcil y ms rpido construir las aplicaciones
Pgina | 22

basadas en Web que trabajan con una variedad de otras tecnologas: servidores Web, navegadores Web, servidores de aplicacin y otras herramientas de desarrollo. La tecnologa Java Server Pages (JSP) nos permite poner segmentos de cdigo servlet directamente dentro de una pgina HTML esttica. Cuando el navegador carga una pgina JSP, se ejecuta el cdigo del servlet y el servidor de aplicaciones crea, compila, carga y ejecuta un servlet en segundo plano para ejecutar los segmentos de cdigo servlet y devolver una pgina HTML o imprimir un informe XML.

2.4.1-Arquitectura
JSP puede considerarse como una manera alternativa, y simplificada, de construir servlets. Es por ello que una pgina JSP puede hacer todo lo que un servlet puede hacer, y viceversa. Cada versin de la especificacin de JSP est fuertemente vinculada a una versin en particular de la especificacin de servlets. El funcionamiento general de la tecnologa JSP es que el Servidor de Aplicaciones interpreta el cdigo contenido en la pgina JSP para construir el cdigo Java del servlet a generar. Este servlet ser el que genere el documento (tpicamente HTML) que se presentar en la pantalla del Navegador del usuario.

2.4.2-Estructura de una pgina JSP


Una pgina JSP es bsicamente una pgina Web con HTML tradicional y cdigo Java. La extensin de fichero de una pgina JSP es ".jsp" en vez de ".html" o".htm", y eso le dice al servidor que esta pgina requiere un manejo especial que se conseguir con una extensin del servidor o un plug-in. Un ejemplo sencillo:
<%@ page language="java" contentType="text/html" %> <html> <head> <title>Hola, mundo!!</title> </head> <body> <h1>Hola, mundo!</h1> Hoy es <%= new java.util.Date() %>. </body> </html>

Pgina | 23

2.4.2.1-Directivas
Las directivas JSP son instrucciones procesadas por el motor JSP cuando la pgina JSP se traduce a un servlet. Las directivas usadas en este ejemplo le dicen al motor JSP que incluya ciertos paquetes y clases. Las directivas estn encerradas entre etiquetas de directiva <%@ y %>.
<%@ page import="javax.naming.*" %> <%@ page import="javax.rmi.PortableRemoteObject" %> <%@ page import="Beans.*" %>

2.4.2.2-Declaraciones
Las declaraciones JSP nos permiten configurar variables para su uso posterior en expresiones o scriptlets. Tambin podemos declarar variables dentro de expresiones o scriptlets en el momento de usarlas. El mbito es toda la pgina JSP, no hay concepto de variables de ejemplar. Es decir, no tenemos que declarar variables de ejemplar para usar en ms de una expresin o scriptlet. Las declaraciones van encerradas entre etiquetas de declaracin <%! Y %>. Podemos tener varias declaraciones. Por ejemplo,
<%! <%! <%! <%! <%! double bonus; String text; %> String strMult, socsec; %> Integer integerMult; %> int multiplier; %> double bonus; %>

2.4.2.3-Scriptlets
Los scriptlets JSP nos permiten embeber segmentos de cdigo java dentro de una pgina JSP. El cdigo embebido se inserta directamente en el servlet generado que se ejecuta cuando se pide la pgina. Este scriptlet usa las variables declaradas en las directivas descritas arriba. Los Scriptlets van encerradas entre etiquetas <% y %>.
<% strMult = request.getParameter("MULTIPLIER"); socsec = request.getParameter("SOCSEC"); integerMult = new Integer(strMult); multiplier = integerMult.intValue(); bonus = 100.00; %>

Pgina | 24

2.4.2.4-Variables Predefinidas
Un scriptlet puede usar las siguientes variables predefinidas: session, request, response, out, e in. Este ejemplo usa la variable predefinida request, que es un objeto HttpServletRequest. De igual forma, response es un objeto HttpServletResponse, out es un objeto PrintWriter, e in es un objeto BufferedReader. Las variables predefinidas se usan en los scriptlets de la misma forma que se usan en los servelts, excepto que no las declaramos.
<% strMult = request.getParameter("MULTIPLIER"); socsec = request.getParameter("SOCSEC"); integerMult = new Integer(strMult); multiplier = integerMult.intValue(); bonus = 100.00; %>

2.4.2.5-Expresiones
Las expresiones JSP nos permiten recuperar dinmicamente o calcular valores a insertar directamente en la pgina JSP. En este ejemplo, una expresin recupera el nmero de la seguridad social desde el bean de entidad Bonus y lo pone en la pgina JSP.
<H1>Bonus Calculation</H1> Social security number retrieved: <%= record.getSocSec() %> <P> Bonus Amount retrieved: <%= record.getBonus() %> <P>

2.4.3-Procesamiento de la pgina JSP


Cuando se llame a sta pgina (date.jsp), ser compilada (por el motor JSP) en un Servlet Java. En este momento el Servlet es manejado por el motor Servlet como cualquier otro Servlet. El motor Servlet carga la clase Servlet (usando un cargador de clases) y lo ejecuta para crear HTML dinmico para enviarlo al navegador, como se ve en la Figura 2. Para este ejemplo, el Servelt crea un objeto Date y lo escribe como un String en el objeto out, que es el stream de salida hacia el navegador.

Pgina | 25

Conclusin
Las tecnologas modernas y el avance en la programacin orientada a objetos, aspectos y a servicios, o sea llmese, diferentes perspectivas de abordar el tema unido al creciente auge de Internet hace que las aplicaciones del presente y del futuro se orienten cada vez ms a la web y al mundo de Internet, por varias razones: facilidad de uso, necesidad de pocas prestaciones de hardware y software para manipular tal aplicacin y otras.

Dentro de este mundo, las tecnologas de desarrollo y programacin de software han evolucionado a paso rpido y Java, una herramienta de gran expansin mundial y que cuenta con una inmensa comunidad de desarrolladores no est exenta de proponer muchas variantes y alternativas vlidas para realizar aplicaciones de este tipo. La curva de aprendizaje y sobre todo el ensamblaje de todas estas tecnologas resulta ser algo que requiere de manos expertas y conocedoras del tema pero una vez que se logran establecer los marcos de trabajo y las herramientas se configuran para su buen uso y trabajo, la programacin con Java orientado a aplicaciones web resulta ser algo relativamente sencillo y prctico y se convierte en una herramienta de trabajo muy til para el desarrollo de aplicaciones.

Pgina | 26

Bibliografa
http://es.wikipedia.org/wiki/Aplicacin_web

Sergio Lujn Mora (2001) (en espaol, libro completo gratuito en pdf). Programacin en Internet: Clientes Web (1 edicin). Editorial Club Universitario. Sergio Lujn Mora (2002) (en espaol, libro completo gratuito en pdf). Programacin de aplicaciones web: historia, principios bsicos y clientes web (1 edicin). Editorial Club Universitario. http://es.wikipedia.org/wiki/Lenguaje_de_programacin_Java Jon Byous, Java technology: The early years. Sun Developer Network, sin fecha[ca. 1998]. Recuperado 21 de abril de 2005. James Gosling, A brief history of the Green project. Java.net, sin fecha [ca. Q1/1998]. Recuperado 22 abril de 2005. James Gosling, Bill Joy, Guy Steele, y Gilad Bracha, The Java language specification, tercera edicin. Addison-Wesley, 2005. ISBN 0-321-24678-0. Tim Lindholm y Frank Yellin. The Java Virtual Machine specification, segunda edicin. Addison-Wesley, 1999. ISBN 0-201-43294-3. http://es.wikipedia.org/wiki/Applet_Java Deitel, Harvey, Paul & Asociados (2004). Como Programar en Java. Mxico: PEARSON EDUCACION. 970-26-0518-0. http://www.java.com/es/download/faq/java_webstart.xml http://javaweb.osmosislatina.com/curso/servlets.htm#comp http://www.edu4java.com/servlet.html http://www.ligaturesoft.com/spanish/web-design/pagina-de-servidor-Java.html http://www.desarrolloweb.com/directorio/programacion/java/jsp/

Pgina | 27