java en la web - bienvenidos a facitec -...

27
Página | 1 Universidad Nacional de Canindeyu Facultad de Ciencia y Tecnología Java en la Web Aplicaciones Web Por: Víctor Velázquez Profesor guía: Víctor Núñez Curuguaty-Paraguay 2012

Upload: lamhuong

Post on 07-Oct-2018

223 views

Category:

Documents


1 download

TRANSCRIPT

Página | 1

Universidad Nacional de Canindeyu

Facultad de Ciencia y Tecnología

Java en la Web Aplicaciones Web

Por: Víctor Velázquez

Profesor guía: Víctor Núñez

Curuguaty-Paraguay

2012

Página | 2

Agradecimiento

Dios, por darme la oportunidad de vivir y por estar conmigo en cada paso que doy,

por fortalecer mi corazón e iluminar mi mente y por haber puesto en mi camino a

aquellas personas que han sido mi soporte y compañía durante todo el periodo de

estudio.

A mis padres por ser el pilar fundamental en todo lo que soy, en toda mi

educación, tanto académica, como de la vida, por su incondicional apoyo

perfectamente mantenido a través del tiempo.

Todo este trabajo ha sido posible gracias a ellos.

Página | 3

Dedicatoria

A mis padres, porque creyeron en mí y porque me sacaron adelante, dándome

ejemplos dignos de superación y entrega, porque en gran parte gracias a ustedes,

hoy puedo ver alcanzada mi meta, ya que siempre estuvieron impulsándome en

los momentos más difíciles de mi carrera, y porque el orgullo que sienten por mí,

fue lo que me hizo ir hasta el final.

Página | 4

Fundamentación

¿Quién no ha utilizado el Hotmail, Facebook, Twitter?. ¿Quién 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 búsqueda en

Google o ha realizado una transacción bancaria vía 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

páginas web; por el contrario, contienen una lógica compleja que no vemos. Es

por ello que son llamadas aplicaciones web.

Quizás les sobrevenga la duda de cuál es la diferencia entre una página y una

aplicación web, ¿acaso no es lo mismo?, si es así, la respuesta es: NO. Las

páginas web muestran información estática y son creadas empleando lenguajes

de programación como el HTML o el XHTML, que son lenguajes que los

navegadores web interpretan para mostrarnos la información en pantalla; mientras

que las aplicaciones web trabajan de una manera dinámica, pues nos permiten

interactuar con la información, consultar bases de datos, realizar transacciones,

etc., y además del lenguaje HTML base, necesitan de otras tecnologías de

programación como Java, ASP.Net, Php, etc.

En términos prácticos, las aplicaciones web son soluciones informáticas o como su

nombre lo dice “aplicaciones” que nos permiten interactuar con la información y a

las cuales podemos acceder a través de una conexión a internet, desde cualquier

lugar del mundo, sin necesidad de instalarlas previamente en nuestra pc;

solamente necesitamos contar con un navegador web, llámese Mozzilla, Internet

Explorer, Chrome, etc..

Página | 5

Objetivos

Objetivo General

Conocer las herramientas y el proceso de desarrollo de

aplicaciones web estudiando específicamente la tecnología

Java

Objetivos Específicos

Entender la definición de Aplicación Web

Conocer las Clasificaciones de Java para la web

Interpretar los códigos de ejemplos simples a modo de

introducción a la tecnología Java

Página | 6

Índice

Contenido Página

Portada……………………………………………………………………………………..1

Agradecimiento………………………………………………………………………….…2

Dedicatoria………………………………………………………………………………....3

Fundamentación…………………………………………………………………………..4

Objetivos……………………………………………………………………………………5

Objetivo General…………………………………………………………………..5

Objetivos Específicos………………………………………………………….….5

Índice…………………………………………………………………………………….….6

Introducción………………………………………………………………………………..8

1-Aplicación Web………………………………………………………………………….9

1.1-Interfaz……………………………………………………………………...….9

1.2-Estructura de las aplicaciones web…………………………………………9

1.3-Ventajas……………………………………………………………………....10

1.4-Inconvenientes………………………………………………………….……11

1.5-Lenguajes de programación………………………………………………..11

2-Java (lenguaje de programación)………………………………………...….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-Ejecución………………………………………………………………..….15

2.1.5-Etiqueta <applet>………………………………………………………....16

Página | 7

2.1.6-Etiqueta <object>…………………………………………………….……17

2.1.7-Ciclo de vida………………………………………………………….……18

2.1.8-Ejemplo Gráfico 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 página JSP……………………………………...……23

2.4.2.1-Directivas…………………………………………………………...……24

2.4.2.2-Declaraciones……………………………………………………………24

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 página JSP………………………………..………25

Conclusión………………………………………………………………………......……26

Bibliografía…………………………………………………………………………..……27

Página | 8

Introducción

Inicialmente la web era simplemente una colección de páginas estáticas,

documentos, etc., que podían consultarse o descargarse.

El siguiente paso en su evolución fue la inclusión de un método para confeccionar

páginas dinámicas que permitiesen que lo mostrado fuese dinámico (generado o

calculado a partir de los datos de la petición). Dicho método fue conocido como

CGI (common Gateway interface) y definía un mecanismo mediante el cual

podíamos pasar información entre el servidor HTTP y programas externos. Los

CGI siguen siendo muy utilizados, puesto que la mayoría de los servidores web los

soportan debido a su sencillez. Además, nos proporcionan total libertad a la hora

de escoger el lenguaje de programación para desarrollarlos.

El esquema de funcionamiento de los CGI tenía un punto débil: cada vez que

recibíamos una petición, el servidor web lanzaba un proceso que ejecutaba el

programa CGI. Como, por otro lado, la mayoría de CGI estaban escritos en algún

lenguaje interpretado (Perl, Python, etc.) o en algún lenguaje que requería run-

time environment (VisualBasic, Java, etc.), esto implicaba una gran carga para la

máquina del servidor. Además, si la web tenía muchos accesos al CGI, esto

suponía 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

vías. Por un lado se diseñan sistemas de ejecución de módulos más integrados

con el servidor, que evitan que éste tenga que instanciar y ejecutar multitud de

programas. La otra vía consiste en dotar al servidor de un intérprete de algún

lenguaje de programación (RXML, PHP, VBScript, etc.) que nos permita incluir las

páginas en el código de manera que el servidor sea quien lo ejecute, reduciendo

así el tiempo de respuesta.

A partir de este momento, se vive una explosión del número de arquitecturas y

lenguajes de programación que nos permiten desarrollar aplicaciones web. Todas

ellas siguen alguna de las dos vías ya mencionadas. De ellas, las más útiles y las

que más se utilizan son aquellas que permiten mezclar los dos sistemas, es decir,

un lenguaje de programación integrado que permita al servidor interpretar

comandos que “incrustemos” en las páginas HTML y un sistema de ejecución de

programas más enlazado con el servidor que no presente los problemas de

rendimiento de los CGI.

Página | 9

Marco Teórico

1-Aplicacio n web

En la ingeniería de software se denomina aplicación web a aquellas herramientas

que los usuarios pueden utilizar accediendo a un servidor web a través de Internet

o de una intranet mediante un navegador. En otras palabras, es una aplicación

software que se codifica en un lenguaje soportado por los navegadores web en la

que se confía la ejecución al navegador.

Las aplicaciones web son populares debido a lo práctico 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 línea que son ejemplos bien conocidos de aplicaciones web.

Es importante mencionar que una página Web puede contener elementos que

permiten una comunicación activa entre el usuario y la información. Esto permite

que el usuario acceda a los datos de modo interactivo, gracias a que la página

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 están soportadas por las

tecnologías web estándar. Los desarrolladores web generalmente utilizan

lenguajes interpretados (scripts) en el lado del cliente para añadir más

funcionalidades, especialmente para ofrecer una experiencia interactiva que no

requiera recargar la página cada vez (lo que suele resultar molesto a los usuarios).

Recientemente se han desarrollado tecnologías para coordinar estos lenguajes

con las tecnologías en el lado del servidor.

1.2-Estructura de las aplicaciones web Aunque existen muchas variaciones posibles, una aplicación web está

normalmente estructurada como una aplicación de tres-capas. En su forma más

común, el navegador web ofrece la primera capa, y un motor capaz de usar alguna

Página | 10

tecnología web dinámica 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

valiéndose 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 ningún 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 versión que haya

lanzado.

- Consumo de recursos bajo: Dado que toda (o gran parte) de la aplicación no se

encuentra en nuestro ordenador, muchas de las tareas que realiza el software no

consumen recursos nuestros porque se realizan desde otro ordenador.

Página | 11

- Multiplataforma: Se pueden usar desde cualquier sistema operativo porque sólo

es necesario tener un navegador.

- Portables: Es independiente del ordenador donde se utilice (un PC de

sobremesa, un portátil...) porque se accede a través de una página web (sólo es

necesario disponer de acceso a Internet). La reciente tendencia al acceso a las

aplicaciones web a través de teléfonos móviles requiere sin embargo un diseño

específico de los ficheros CSS para no dificultar el acceso de estos usuarios.

- La disponibilidad suele ser alta porque el servicio se ofrece desde múltiples

localizaciones para asegurar la continuidad del mismo.

- Los virus no dañan los datos porque éstos están guardados en el servidor de la

aplicación.

- Colaboración: Gracias a que el acceso al servicio se realiza desde una única

ubicación es sencillo el acceso y compartición de datos por parte de varios

usuarios. Tiene mucho sentido, por ejemplo, en aplicaciones online de calendarios

u oficina.

- Los navegadores ofrecen cada vez más y mejores funcionalidades para crear

aplicaciones web ricas (RIAs).

1.4-Inconvenientes - La disponibilidad depende de un tercero, el proveedor de la conexión a internet o

el que provee el enlace entre el servidor de la aplicación y el cliente. Así que la

disponibilidad del servicio está supeditada al proveedor.

1.5-Lenguajes de programación Existen numerosos lenguajes de programación empleados para el desarrollo de

aplicaciones web en el servidor, entre los que destacan:

PHP

Java, con sus tecnologías Java Servlets y JavaServer Pages (JSP)

Javascript

Perl

Ruby

Python

Página | 12

2-Java (lenguaje de programacio n)

Java es un lenguaje de programación 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 más

simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores,

como la manipulación 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 programación 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 página web. Cuando un navegador carga una página 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 página 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).

Página | 13

El mismo applet puede trabajar en "todas" las versiones de Java, y no sólo

la última versión del plugin. Sin embargo, si un applet requiere una versión

posterior del Java Runtime Environment (JRE), el cliente se verá obligado a

esperar durante la descarga de la nueva JRE.

Es compatible con la mayoría de los navegadores web.

Puede ser almacenado en la memoria caché de la mayoría de los

navegadores web, de modo que se cargará rápidamente cuando se vuelva

a cargar la página web, aunque puede quedar atascado en la caché,

causando problemas cuando se publican nuevas versiones.

Puede tener acceso completo a la máquina 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 solución web

más escalable tomando en cuenta el número 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 ejecución 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 sólo permiten la instalación 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 podría exigir una versión específica del JRE.

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

java.applet.*;

Página | 14

import java.applet.*;

public class MiApplet extends Applet

{

//Cuerpo del ''applet''.

}

El código 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 código y

después lo compilamos, obteniendo el fichero MiApplet.class. Para poder crear el

applet se necesita compilar el código Java en un intérprete.

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();

Página | 15

DateFormat df = DateFormat.getTimeInstance();

horaActual = df.format(hora);

repaint();

try

{

Thread.sleep(1000);

}

catch (InterruptedException e){}

}

}

public void paint(Graphics g)

{

//Dibujar un rectángulo 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 gráfica 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-Ejecución Para insertar el applet en una página web, se usa la siguiente estructura:

<etiqueta parametro = "valor"></etiqueta>

Página | 16

2.1.5-Etiqueta <applet> Siguiendo la estructura anterior, un ejemplo de código para ejecutar el applet

sería:

<applet code="MiApplet.class" width="370" height="270"></applet>

Pudiéndose usar los siguientes atributos:

Atributo Descripción Ejemplo

Codebase

Dirección desde donde se puede descargar la clase de Java que va a cargar el applet, el URL de la clase. Si no se especifica, será la ubicación actual de la página HTML.

codebase="http://www.p

agina.com/applet/"

Code

Nombre de la clase que se quiere cargar en el applet. La dirección donde se encuentra es relativa al codebase. Si no se ha especificado codebase, es la misma carpeta donde está la página HTML que carga el applet.

code="NombreClase.clas

s"

Width Tamaño en píxels de la anchura. width=100

Height Tamaño en píxels de la altura. height=100

Alt

Texto que se muestra donde debería cargarse el applet si el navegador no permite su carga.

alt="Su navegador no

permite cargar este

Applet"

Name Establece un nombré único para el applet.

name="MiApplet"

Página | 17

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 márgenes laterales en píxels.

hspace=25

Vspace Establece el margen superior e inferior en píxels.

vspace=25

Align

Alineación respecto a otros elementos. Valores: left, center, rigth, top, middle y botton

align="center"

Mayscript

Permite especificar si el applet puede tener acceso al código 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 leídos por el programa Java, tantas veces como se

quiera.

2.1.6-Etiqueta <object> A partir de la versión 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:

Página | 18

Atributo Descripción Ejemplo

Classid Identificador del tipo de objeto.

Para Java es: classid="clsid:CAFEEFAC-0014-0001-0000-

ABCDEFFEDCBA"

Codebase

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

codebase="Dirección_del_i

nstalador_de_la_Máquina_V

irtual_Java"

Type Tipo de archivo que va a reproducirse mediante el objeto.

<param name="type"

value="application/x-

java-applet;jpi-

version=1.5.0">

2.1.7-Ciclo de vida Cuando un applet se inicia, se llaman en este orden a los siguientes métodos:

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 método también 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 ejecución se llama a los siguientes métodos:

stop: suspende la ejecución del programa. Se llama cuando el applet se

vuelve temporalmente invisible.

destroy: cuando no se va a necesitar más el applet. Se usa para liberar

recursos.

Página | 19

2.1.8-Ejemplo Gráfico de una Ventana Applet de Java:

2.2-Java Web Start

Java Web Start es la implementación de referencia de la especificación Java

Networking Launching Protocol (JNLP) y está desarrollada por Sun Microsystems,

mediante la cual permite arrancar aplicaciones Java que están en un servidor web

de aplicaciones comprobando previamente si el cliente tiene la versión actualizada

de dicha aplicación. Si no es así descargará la última versión y se ejecutará en

local. El arranque de dichas aplicaciones puede ser efectuado mediante enlaces

en una página web o bien a través de enlaces en el escritorio cliente. Mediante

esta tecnología se asegura que una aplicación es distribuida siempre en su última

versión.

Los ficheros que contienen la información sobre donde se encuentra la aplicación,

versión, etc. tienen la extensión .jnlp.

Un ejemplo de esta tecnología es la de un servidor web donde se encuentra una

página web con enlaces a aplicaciones Java. Cada uno de estos enlaces apuntará

Página | 20

a ficheros .jnlp que indicarán la ruta de la aplicación en este u otro servidor. En

ese momento arrancará automáticamente Java Web Start y comprobará la

seguridad y si el usuario tiene la última versión 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 refería a pequeños

programas que se ejecutan en el contexto de un navegador web. Por

contraposición.

El uso más común de los servlets es generar todas páginas web de forma

dinámica a partir de los parámetros de la petición que envíe 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 más usado.

Que es un contenedor de Servlets? Un contenedor de Servlet es un programa capaz de recibir peticiones de páginas

web y redireccionar estas peticiones a un objeto Servlet.

Como funcionan un contenedor de Servlets? 1. El Browser pide una página al servidor HTTP que es un contenedor de

Servlets

2. El contenedor de Servlets delega la petición a un Servlet en particular

elegido de entre los Servlets que contiene.

Página | 21

3. El Servlet, que es un objeto java, se encarga de generar el texto de la

página web que se entrega al contenedor.

4. El contenedor devuelve la página 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 petición a un servidor vía URL.

2. El servidor recibe la petición.

3. Si es la primera, se utiliza el motor de Servlets para cargarlo y se llama al

método init().

4. Si ya está iniciado, cualquier petición se convierte en un nuevo hilo. Un

Servlet puede manejar múltiples peticiones de clientes.

5. Se llama al método service() para procesar la petición devolviendo el

resultado al cliente.

6. Cuando se apaga el motor de un Servlet se llama al método 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 Código de ejemplo de un Servlet que procesa una petición GET y devuelve una

página web HTML sencilla:

package org.pruebas;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class HolaMundoServlet extends HttpServlet {

/**

* Servlet de ejemplo que procesa una petición GET

* @param request

Página | 22

* @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 dinámica se ha desarrollado desde un sistema de información distribuido

hipermedia (HTML) basado en red que ofrecía información estática hasta un

conjunto de portales y aplicaciones en Internet que ofrecen un conjunto variado de

servicios.

Las soluciones de primera generación 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 petición.

Las soluciones de segunda generación incluyeron vendedores de servidores

Web que proporcionaban plug-ins y APIs para sus servidores. El problema es que

sus soluciones eran específicas a sus productos servidores. Microsoft proporcionó

las páginas activas del servidor (ASP) que hicieron más fácil crear el contenido

dinámico. Sin embargo, su solución sólo trabajaba con Microsoft IIS o Personal

Web Server. Otra tecnología de segunda generación son los Servlets. Los Servlets

hacen más fácil escribir aplicaciones del lado del servidor usando la tecnología

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 páginas JSP son una solución de tercera generación que se pueden combinar

fácilmente con algunas soluciones de la segunda generación, creando el

contenido dinámico, y haciendo más fácil y más rápido construir las aplicaciones

Página | 23

basadas en Web que trabajan con una variedad de otras tecnologías: servidores

Web, navegadores Web, servidores de aplicación y otras herramientas de

desarrollo.

La tecnología Java Server Pages™ (JSP) nos permite poner segmentos de código

servlet directamente dentro de una página HTML estática. Cuando el navegador

carga una página JSP, se ejecuta el código del servlet y el servidor de

aplicaciones crea, compila, carga y ejecuta un servlet en segundo plano para

ejecutar los segmentos de código servlet y devolver una página 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 página JSP puede hacer todo lo que un servlet puede

hacer, y viceversa. Cada versión de la especificación de JSP está fuertemente

vinculada a una versión en particular de la especificación de servlets.

El funcionamiento general de la tecnología JSP es que el Servidor de Aplicaciones

interpreta el código contenido en la página JSP para construir el código Java del

servlet a generar. Este servlet será el que genere el documento (típicamente

HTML) que se presentará en la pantalla del Navegador del usuario.

2.4.2-Estructura de una página JSP Una página JSP es básicamente una página Web con HTML tradicional y código

Java. La extensión de fichero de una página JSP es ".jsp" en vez de ".html"

o".htm", y eso le dice al servidor que esta página requiere un manejo especial que

se conseguirá con una extensión 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>

Página | 24

2.4.2.1-Directivas Las directivas JSP son instrucciones procesadas por el motor JSP cuando la

página 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 están

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. También podemos declarar variables dentro de

expresiones o scriptlets en el momento de usarlas. El ámbito es toda la página

JSP, no hay concepto de variables de ejemplar. Es decir, no tenemos que declarar

variables de ejemplar para usar en más de una expresión o scriptlet. Las

declaraciones van encerradas entre etiquetas de declaración <%! 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 código java dentro de una

página JSP. El código embebido se inserta directamente en el servlet generado

que se ejecuta cuando se pide la página. 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;

%>

Página | 25

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 dinámicamente o calcular valores a

insertar directamente en la página JSP. En este ejemplo, una expresión recupera

el número de la seguridad social desde el bean de entidad Bonus y lo pone en la

página JSP.

<H1>Bonus Calculation</H1>

Social security number retrieved:

<%= record.getSocSec() %>

<P>

Bonus Amount retrieved: <%= record.getBonus() %>

<P>

2.4.3-Procesamiento de la página JSP Cuando se llame a ésta página (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 dinámico 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.

Página | 26

Conclusión

Las tecnologías modernas y el avance en la programación orientada a objetos,

aspectos y a servicios, o sea llámese, 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 más 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 aplicación y otras.

Dentro de este mundo, las tecnologías de desarrollo y programación de software

han evolucionado a paso rápido y Java, una herramienta de gran expansión

mundial y que cuenta con una inmensa comunidad de desarrolladores no está

exenta de proponer muchas variantes y alternativas válidas para realizar

aplicaciones de este tipo. La curva de aprendizaje y sobre todo el ensamblaje de

todas estas tecnologías 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

programación con Java orientado a aplicaciones web resulta ser algo

relativamente sencillo y práctico y se convierte en una herramienta de trabajo muy

útil para el desarrollo de aplicaciones.

Página | 27

Bibliografía

http://es.wikipedia.org/wiki/Aplicación_web

Sergio Luján Mora (2001) (en español, libro completo gratuito en pdf).

Programación en Internet: Clientes Web (1ª edición). Editorial Club Universitario.

Sergio Luján Mora (2002) (en español, libro completo gratuito en pdf).

Programación de aplicaciones web: historia, principios básicos y clientes web (1ª

edición). Editorial Club Universitario.

http://es.wikipedia.org/wiki/Lenguaje_de_programación_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 edición. Addison-Wesley, 2005. ISBN 0-321-24678-0.

Tim Lindholm y Frank Yellin. The Java Virtual Machine specification, segunda

edición. Addison-Wesley, 1999. ISBN 0-201-43294-3.

http://es.wikipedia.org/wiki/Applet_Java

Deitel, Harvey, Paul & Asociados (2004). Como Programar en Java. México:

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/