Sei sulla pagina 1di 8

POLITECNICO INTERNACIONAL

ELECTIVA DE PROGAMA
PROFUNDIZACION JAVA WEB JSF
DOCENTE: Eduardo Robayo
Bibliografa base: Introduccin a las aplicaciones Web con Java, Macario Polo, Daniel Villafranca

INTRODUCCION
Internet es uno de los medios fundamentales en los que puede residir una aplicacin actual. Java
proporciona la posibilidad crear applets, para incorporar Java a las pginas web; de modo que es la
mquina cliente que visita la pgina la encargada de traducir el Java inmerso en la pgina. Esto
tiene grandes desventajas.
Uno de los problemas de la creacin de aplicaciones TCP/IP del lado del cliente (como las applets
por ejemplo) es que el cliente debe poseer software adaptado a esa tecnologa. Si no, la aplicacin
no carga correctamente.
Esto ocurre con cualquier aplicacin del lado del cliente. As una simple pgina web HTML requiere
por parte del cliente un navegador compatible con los cdigos HTML originales; si se usa
JavaScript, el navegador del cliente debe poseer la capacidad de interpretar cdigo JavaScript
compatible con el original; si se usan Applets el navegador debe tener instalado el plugin de Java.
El cliente puede desactivar todas estas tecnologas o incluso no tenerlas instaladas. La nica
solucin es hacer que el cliente las instale (algo que no suele funcionar muy bien debido a la
desconfianza que tiene el usuario ante esta instalacin).
Por si fuera poco, los usuarios siempre van por detrs de las innovaciones tecnolgicas, por lo que
sus versiones de software distan de ser las ltimas.

Para evitar estos problemas se idearon tcnicas de creacin de aplicaciones para la web del lado
del servidor. En las que la interpretacin se realiza en el propio servidor y no en el cliente.

SOLUCIONES DEL LADO DEL SERVIDOR


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 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 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.
CGI
Common Gateway Interface, o interfaz de pasarela comn (CGI) es la tecnologa de servidor ms
veterana. Apareci debido a las limitaciones de HTML para crear verdaderas aplicaciones de red.
CGI define una serie de caractersticas que permiten comunicar a una pgina con una aplicacin
residente en un servidor. La aplicacin puede estar escrita casi en cualquier lenguaje (aunque el
ms utilizado es el lenguaje Perl) lo nico que tiene conseguir es que su salida y entrada ha de ser
pensada para comunicarse con la web de forma que el usuario no necesite ningn software
adicional (los datos de salida suelen prepararse en formato HTML).
El servidor en el que reside la aplicacin CGI debe tener implementado un compilador compatible
con el lenguaje utilizado para escribir la aplicacin.
ASP y ASP.NET
ASP parte de simplificar la idea de la tecnologa de servidor. Se trata de pginas HTML que poseen
etiquetas especiales (marcadas con los smbolos <% y %>) que marcan instrucciones (en diversos
lenguajes, sobre todo VBScript) que debe ejecutar el servidor.

El servidor interpreta esas instrucciones y obtiene una pgina HTML (que es la que llega al cliente)
resultado del cdigo ASP. Es una tecnologa muy exitosa gracias a la cantidad de programadores
Visual Basic.
El problema es que est pensada nicamente para servidores web IIS (Internet Information Server
los servidores web de Microsoft).
.NET es la nueva implementacin de la tecnologa de servidores de Microsoft que incorpora
diversos lenguajes bajo una interfaz comn para crear aplicaciones web en los servidores IIS. Se
pueden utilizar varios tipos de lenguajes (especialmente C# y VBScript) combinados en pginas
ASP.NET con directrices de servidor y posibilidad de conexin a bases de datos utilizando ADO
(plataforma de conexin abierta de Microsoft para acceder a bases de datos, sucesora de ODBC).
ColdFussion
Tecnologa soportada por la empresa Macromedia que parte de la misma idea que ASP, pero en
lugar de usar etiquetas <%, utiliza etiquetas especiales que son traducidas por el servidor. No
posee lenguaje de script lo que hace ms fcil su aprendizaje, ya que slo aade a las etiquetas
normales de HTML una serie de etiquetas entendibles por los servidores de aplicaciones
ColdFussion.
La interpretacin de los cdigos ColdFussion proporciona de nuevo una pgina HTML. Su
desventaja es que no es muy estndar y que es difcil la creacin de aplicaciones muy complejas.
PHP
Es una tecnologa similar a ASP. Se trata de una pgina HTML que posee etiquetas especiales; en
este caso son las etiquetas <?, que encierran comandos para el servidor escritos en un lenguaje
script especial (es un lenguaje con muchas similitudes con Perl).
La diferencia con ASP es que es una plataforma de cdigo abierto, compatible con Apache y que
posee soporte para muchos de los gestores de base de datos ms populares (Oracle, MySQL, etc.).
Servlets y JSP
Son las tecnologas planteadas por Java para crear aplicaciones cuyas tecnologas residan en el
lado del servidor. JSP es similar a ASP y PHP. Los servlets son equivalentes a las applets, pero en el
lado del servidor. Ambas tecnologas se estudian en este captulo. Las dos forman parte de lo que
hoy en da se conoce como J2EE (Java 2 Enterprise Edition). Una aplicacin JSP o Servlet se conoce
como aplicacin web

MODELO CLIENTE SERVIDOR


Cuando se utiliza un servicio en Internet, como consultar una base de datos, transferir un fichero o
participar en un foro de discusin, se establece un proceso en el que entran en juego dos partes.
Por un lado, el usuario, quien ejecuta una aplicacin en el ordenador local: el denominado
programa cliente. Este programa cliente se encarga de ponerse en contacto con el ordenador
remoto para solicitar el servicio deseado. El ordenador remoto por su parte responder a lo
solicitado mediante un programa que esta ejecutando. Este ltimo se denomina programa
servidor. Los trminos cliente y servidor se utilizan tanto para referirse a los programas que
cumplen estas funciones, como a los ordenadores donde son ejecutados esos programas.

El programa o los programas cliente que el usuario utiliza para acceder a los servicios de Internet
realizan dos funciones distintas. Por una parte, se encargan de gestionar la comunicacin con el
ordenador servidor, de solicitar un servicio concreto y de recibir los datos enviados por ste; y por
otra, es la herramienta que presenta al usuario los datos en pantalla y que le ofrece los comandos
necesarios para utilizar las prestaciones que ofrece el servidor.
El navegador es una especie de aplicacin capaz de interpretar las rdenes recibidas en forma de
cdigo HTML fundamentalmente y convertirlas en las pginas que son el resultado de dicha orden.
Cuando pinchamos sobre un enlace hipertexto, en realidad lo que pasa es que establecemos una
peticin de un archivo HTML residente en el servidor (un ordenador que se encuentra
continuamente conectado a la red) el cual es enviado e interpretado por nuestro navegador (el
cliente).
Sin embargo, si la pgina que pedimos no es un archivo HTML, el navegador es incapaz de
interpretarla y lo nico que es capaz de hacer es salvarla en forma de archivo. Es por ello que, si
queremos emplear lenguajes accesorios para realizar un sitio web, es absolutamente necesario
que sea el propio servidor quien los ejecute e interprete para luego enviarlos al cliente
(navegador) en forma de archivo HTML totalmente legible por l.
De modo que, cuando pinchamos sobre un enlace a una pagina que contiene un script en un
lenguaje comprensible nicamente por el servidor, lo que ocurre en realidad es que dicho script es
ejecutado por el servidor y el resultado de esa ejecucin da lugar a la generacin de un archivo
HTML que es enviado al cliente.
As pues, podemos hablar de lenguajes de lado servidor que son aquellos lenguajes que son
reconocidos, ejecutados e interpretados por el propio servidor y que se envan al cliente en un
formato comprensible para l. Por otro lado, los lenguajes de lado cliente (entre los cuales no slo
se encuentra el HTML sino tambin el Java y el JavaScript los cuales son simplemente incluidos en
el cdigo HTML) son aquellos que pueden ser directamente "digeridos" por el navegador y no
necesitan un pretratamiento.
En resumen, los programadores de aplicaciones JAVA mediante la especificacin J2EE escriben
componentes de aplicacin J2EE. Un componente J2EE es una unidad de software funcional autocontenida que se ensambla dentro de una aplicacin J2EE y que se comunica con otros
componentes de aplicacin.
ACCESO A DATOS
Una de las tareas ms importantes y ms frecuentemente realizadas por los servlets es la conexin
a bases de datos mediante JDBC. Esto es debido a que los servlets son un componente ideal para
hacer las funciones de capa media en un sistema con una arquitectura de tres capas
JDBC (Java DataBase Connectivity) es una parte del API de Java que proporciona clases para
conectarse con bases de datos. Dichas clases forman parte del package java.sql, disponible en el

jdk 1.1.7 y en jdk 1.2. El nombre JDBC es fonticamente similar a ODBC (Open DataBase
Connectivity), que es el estndar ms extendido para conectar PCs con bases de datos.
SEGUIR LA TRAYECTORIA DEL USUARIO O CLIENTE
Los servlets permiten seguir la trayectoria de un cliente, es decir, obtener y mantener una
determinada informacin acerca del cliente. De esta forma se puede tener identificado a un
cliente (usuario que est utilizando un browser) durante un determinado tiempo. Esto es muy
importante si se quiere disponer de aplicaciones que impliquen la ejecucin de varios servlets o la
ejecucin repetida de un mismo servlet. Un claro ejemplo de aplicacin de esta tcnica es el de los
comercios va Internet que permiten llevar un carrito de la compra en el que se van guardando
aquellos productos solicitados por el cliente. El cliente puede ir navegando por las distintas
secciones del comercio virtual, es decir realizando distintas conexiones HTTP y ejecutando
diversos servlets, y a pesar de ello no se pierde la informacin contenida en el carrito de la compra
y se sabe en todo momento que es un mismo cliente quien est haciendo esas conexiones
diferentes.
El mantener informacin sobre un cliente a lo largo de un proceso que implica mltiples
conexiones se puede realizar de tres formas distintas:
1. Mediante cookies
2. Mediante seguimiento de sesiones (Session Tracking)
3. Mediante la reescritura de URLs y paso de parmetros en formulario (Request)
INTRODUCCION A JSP
La tecnologa JSP (Java Server Pages) es una especificacin abierta desarrollada por Sun
Microsystems como un alternativa a Active Server Pages (ASP) de Microsoft, y son un componente
dominante de la especificacin de Java 2 Enterprise Edition (J2EE). Muchos de los servidores de
aplicaciones comercialmente disponibles (como BEA WebLogic, IBM WebSphere, Live JRun, Orion,
etctera) ya utilizan tecnologa JSP.
Esta tecnologa permite desarrollar pginas web con contenido dinmico y supone una evolucin
frente a la tecnologa CGI, y los Servlets. Un fichero JSP puede contener etiquetas HTML normales,
y elementos especiales para generar el contenido dinmico.
ESTRUCTURA DE UNA PAGINA 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>

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.*" %>
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; %>

SCRIPLETS
Los scriptlets JSP nos permiten embeber segmentos de cdigo java dentro de una pgina JSP.
El codigo 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;
%>
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;
%>
EXPRESIONES
La 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>
PROCESAMIENTO DE UNA PAGINA 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.

EJEMPLO 1
fecha.jsp

<%@page import="java.util.*" %>


<HTML>
<HEAD>
<TITLE>JSP Example</TITLE>
</HEAD>
<BODY BGCOLOR="ffffcc">
<CENTER>
<H2>Date and Time</H2>
<%
java.util.Date today = new java.util.Date();
out.println("Today's date is: "+today);
%>
</CENTER>
</BODY>
</HTML>

Todava hay otra forma de hacer lo mismo usando la etiqueta <%= escribiendo: Today's date
is: <%= new Date() %>
Como podemos ver, se puede conseguir el mismo resultado usando diferentes etiquetas y
tcnicas. Hay varios elementos de script JSP. Hay algunas reglas convencionales que nos ayudarn
a usar ms efectivamente los elementos de Script JSP.
Usamos <% ... %> para manejar declaraciones, expresiones, o cualquier otro tipo de cdigo
vlido.
Usamos la directiva page como en <%@page ... %> para definir el lenguaje de script. Tambin
puede usarse para especificar sentencias import. Aqu hay un ejemplo:
<%@page language="java" import="java.util.*" %>
Usamos <%! .... %> para declarar variables o mtodos. Por ejemplo: <%! int x = 10; double y =
2.0; %>
Usamos <%= ... %> para definir una expresin y forzar el resultado a un String.
Por ejemplo: <%= a+b %> o <%= new java.util.Date() %>.
Usamos la directiva include como en <%@ include ... %> para insertar el contenido de otro
fichero en el fichero JSP principal. Por ejemplo: <%@include file="copyright.html" %>

PROXIMA CLASE: FORMULARIOS EN PAGINAS JSP

Potrebbero piacerti anche