JSP

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 12

JAVA SERVER FACES Y EL USO DE PATRONES DE DISEO

Resumen
En esta ponencia se desarrolla una breve introduccin a la implementacin de
la tecnologa Java Server Faces (JSF), se indicarn los requisitos para su
utilizacin, as como las funcionalidades que ofrece.
La tecnologa Java Server Faces es un marco de trabajo de interfaces de
usuario del lado de servidor para aplicaciones Web basadas en tecnologa
Java. til con aplicaciones basadas en la arquitectura MVC (Model-ViewController).

Fig. 1, Modelo Vista Controlador.

Este modelo de programacin bien definido y la librera de etiquetas para


componentes GUI facilita de forma significativa la tarea de la construccin y
mantenimiento de aplicaciones Web con GUIs del lado del servidor.
Las aplicaciones JSF son como cualquier otra aplicacin Java, se ejecutan en
un contenedor Servlet java, y tpicamente contienen JavaBeans (llamados
objetos del modelo en tecnologa JSF) conteniendo datos y funcionalidades
especificas de la aplicacin, paginas como las JSP, clases de utilidad del lado
del servidor, como beans para acceder a las bases de datos.
1. Qu es JSF?
JSF es un marco de trabajo para crear aplicaciones java J2EE basadas en el
patrn MVC de tipo 1. JSF tiene como caractersticas principales:

Utiliza pginas JSP para generar las vistas, aadiendo una biblioteca de
etiquetas propia para crear los elementos de los formularios HTML.
Asocia a cada vista con formularios un conjunto de objetos java
manejados por el controlador (managed beans) que facilitan la
recoleccin, manipulacin y visualizacin de los valores mostrados en
los diferentes elementos de los formularios.
Introduce una serie de etapas en el procesamiento de la peticin, como
por ejemplo la de validacin, reconstruccin de la vista, recuperacin de
los valores de los elementos, etc.
Utiliza un sencillo fichero de configuracin para el controlador en formato
XML.
Es extensible, pudiendo crearse nuevos elementos de la interfaz o
modificar los ya existentes.
Y lo que es ms importante: forma parte del estndar J2EE. En efecto,
hay muchas alternativas para crear la capa de presentacin y control de
una aplicacin web java, como Struts y otros frameworks, pero solo JSP
forma parte del estndar.

1.1. Requisitos de implementacin.


Las libreras propias de JSF: jsf-api.jar y jsf-impl.jar. La primera contiene
el paquete javax.faces.* y la segunda com.sun.faces.*.
Las libreras comunes de Apache-Jacarta.
Adems las libreras adicionales standard.jar y jstl.jar.
Java EE.
2. Implementacin.
Las principales implementaciones de JSF son:

JSF Reference Implementation de Sun Microsystems.


MyFaces proyecto de Apache Software Foundation.
Rich Faces
ICEfaces Contiene diversos componentes para interfaces de usuarios
ms enriquecidas, tales como editores de texto enriquecidos,
reproductores de multimedia, entre otros.

En la investigacin que eh realizado, me encontrado con diferentes editores


para trabajar JSF, entre los cuales cabe destacar:

NetBean.
Eclipse.
MyEclipse.
JDeveloper.

Como se menciona anterior mente JSF, permite utilizar diferentes tecnologas


para la capa de presentacin en mi caso ADF.

Implementando JSF junto con ADF (es un framework comercial de Java para la
creacin de aplicaciones empresariales. Es una herramienta del tipo RAD que
se basa en patrones de diseo listos para usar), encontramos un sin nmero de
componentes listos para trabajar en flujo constante y gil con bases de datos.

2.1. Riesgos.
Antes de comenzar el desarrollo con JSF debemos conocer aquellos puntos
que nos pueden perjudicar y hacer ms largo el desarrollo de lo realmente es
necesario. Con la poca experiencia que tengo en el tema e indagando, se
pueden mencionar los siguientes puntos:

Utilizar el alicate para clavar. JSF es una herramienta y como tal tiene
una forma de uso. Si nos empeamos en seguir desarrollando las
pginas como siempre, intentando adaptar JSF al modo al que
habitualmente desarrollamos en vez de adaptarnos a JSF
complicaremos el desarrollo
Abuso del javascript. JSF permite utilizar javascript para hacer ms
rpida una pgina HTML, evitando peticiones al servidor. Sin embargo la
introduccin de javascript en la pgina complica y alarga los desarrollos
con JSF, y en general con jsp. La capa javascript aade etapas
adicionales a la aplicacin, que hace ms difcil su depurado. Un
consejo: la pgina debera poderse ejecutar sin prdida de funcionalidad
(slo de rendimiento si se desactiva el javascript).
La maquetacin compleja tambin complica el desarrollo ya que obliga a
utilizar muchas etiquetas y atributos, especialmente en los datatables. Si
la maquetacin de nuestras pginas es compleja deberamos pensar en
crear componentes JSF a medida que simplifiquen dicho trabajo.

2.2. Cmo funciona?


Normalmente las aplicaciones web se construyen como un conjunto de
pantallas con las que va interactuando el usuario. Estas pantallas contienen
textos, botones, imgenes, tablas y elementos de seleccin que el usuario
modifica.

Todos estos elementos estarn agrupados en formularios HTML, que es la


manera en que las pginas web envan la informacin introducida por el
usuario al servidor.
La principal funcin del controlador JSF es asociar a las pantallas, clases java
que recogen la informacin introducida y que disponen de mtodos que
responden a las acciones del usuario. JSF nos resuelve de manera muy
sencilla y automtica muchas tareas:

Mostrar datos al usuario en cajas de texto y tablas.


Recoger los datos introducidos por el usuario en los campos del
formulario.
Controlar el estado de los controles del formulario segn el estado de la
aplicacin, activando, ocultando o aadiendo y eliminando controles y
dems elementos
Realizando validaciones y conversiones de los datos introducidos por el
usuario
Rellenando campos, listas, combos y otros elementos a medida que el
usuario va interactuando con la pantalla
Controlando los eventos que ocurren en los controles (pulsaciones de
teclas, botones y movimientos del ratn).

Las aplicaciones JSF estn formadas por los siguientes elementos principales:

Pginas JSP que incluyen los formularios JSF. Estas pginas generarn
las vistas de la aplicacin
Beans java que se conectan con los formularios JSF
Clases java para la lgica de negocio y utilidades.
Ficheros de configuracin, componentes a medida y otros elementos del
framework.
Resto de recursos de la aplicacin web: recursos estticos, java script y
otros elementos.

3. Estructura de JSF.
3.1. Los Backbeans.
A las clases java que se asocian a los formularios JSF se les denomina
backend beans ya que son los beans (clases java) que estn detrs del
formulario. Estos beans se referencian en el fichero de configuracin de JSF en
el apartado de managed beans, ya que son beans gestionados por el
controlador JSF. Este se encarga de su construccin y destruccin automticas
cuando es necesario.

3.2. Estructura de las pginas.


En su versin ms sencilla, cada pgina JSF est formada por una pgina JSP
que contiene un formulario (HTML FORM) y un backbeans.

El controlador JSF registra en el servidor de aplicaciones un tipo especial de


peticin, tpicamente *.jsf, que estar asociado a estas pginas.
El primer caso comienza cuando el usuario realiza en su navegador una
peticin de navegacin a una url de tipo *.jsf. Cuando al servidor web llega una
peticin del tipo pagina JSF, el controlador JSF entra en funcionamiento.

Primero comprueba si es la primera vez que se accede a dicha pgina. Si es


as, carga la pgina jsp asociada pagina.jsp y la procesa construyendo en
memoria la representacin de los controles de la pgina. Tras esta etapa JSF
sabe cmo construir el cdigo HTML de salida y la lista de controles de usuario
que la cumplen, es decir, sabe lo que contiene y cmo pintarla.

El siguiente paso es asociarle los backbeans. Para ello, del procesamiento de


la pgina jsp, el controlador ha obtenido la lista de backbeans asociados, por lo
que procede a buscarlos en sus correspondientes mbitos de la aplicacin
como la request y la session. Los beans que no existan se crean llamando a los
constructores de sus clases, definidos en la session de managed beans del
fichero de configuracin de JSF.

El tercer paso es dar valores a las propiedades de los elementos JSF de la


pgina. Aqu juega un papel fundamental el lenguaje de expresiones de JSF,
que es parecido al lenguaje de expresiones que se permite en las pginas jsp
normales.

En su versin ms sencilla
#{mibackbean.propiedad}.

una

expresin

JSF

sera

del

tipo

Finalmente el servidor devuelve al usuario una pgina creada a partir de una


pgina JSP que incluye normalmente etiquetas JSF, cuyos valores se
extraern del backbean asociado.

3.3. Navegacin.
Cuando se ejecuta una peticin que incluye una accin, se ejecuta el
mecanismo de navegacin de JSF. Tras la ejecucin de la accin, el
controlador determina cmo se debe mostrar al usuario el resultado de la
peticin. Hay varias posibilidades:

Finalizar la peticin mostrando la pgina jsp que origin la peticin, que


es la opcin por defecto.
Mostrando otra pgina jsp diferente.
Enviar al usuario una peticin de redireccin, por lo que el navegador del
usuario se dirigir automticamente a otra pgina cuando reciba la
respuesta a su peticin.

Este mecanismo de navegacin se implementa de manera sencilla en la pgina


JSF. Cuando el controlador JSF llama al mtodo asociado a la accin, este
devuelve un valor de tipo String. Este valor es utilizado junto con las reglas de
navegacin creadas en el fichero de configuracin de JSF para determinar la
pgina que se debe enviar como respuesta al usuario.

La pgina de origen. Indica el jsp que origin la peticin.


La etiqueta de destino. Es la cadena que identifica el destino. Esta
cadena es devuelta por el mtodo del backbean que procesa la accin.
La pgina de destino para cada etiqueta. Normalmente es el jsp el que
procesar la peticin de salida, utilizando los datos que hay en la
request y en la sesin.
Si es un envo directo interno o una redireccin externa. En el primer
caso la respuesta se generar en la misma peticin mediante una
redireccin interna a otro jsp o servlet. En el segundo caso se enviar
como respuesta al navegador una instruccin de redireccin para que el
navegador realice una nueva peticin de otra pgina.

Adems las direcciones de origen admiten el * para que una misma regla sirva
para mltiples pginas. Tambin se pueden poner reglas por defecto que se
aplican a todas las peticiones.

4. Gestin de beans.
JSF gestiona automticamente la creacin y el acceso a los beans que utilizan
las pginas jsp. Para ello el controlador determina qu beans utiliza la pgina y

dnde debe almacenarlos. El fichero de configuracin JSF mapea los nombres


cortos de los beans utilizados en las pginas con las clases java que los
definen.

Cuando se crean los beans? JSF busca el bean cada vez que se menciona
en la pgina, en el orden en que aparecen en la pgina. Si el bean no existe en
el mbito, lo crea. Por tanto el orden de las expresiones lo determina el orden
de la creacin de los beans, si usamos ms de un bean en la pgina.
Cmo se hace esto internamente? Al procesar la pgina JSP, las etiquetas
JSF aaden cdigo que busca el bean mencionado en cada expresin. Si el
bean no existe en el mbito elegido (request, session o application) se crea uno
nuevo, llamando a su constructor por defecto, y se asocia al mbito requerido.
Este mecanismo es fundamental para la comprensin del procesamiento de la
pgina, sobre todo si trabajamos con beans de mbito request.
4. Resultados Preliminares.
Personalmente me incline, por JDeveloper en su ltima versin (11g), los
motivos de esta eleccin se debe a que es una herramienta gratuita y la gente
Oracle tiene una comunidad muy grande que trabaja con JSF los cuales
brindan una serie de ejemplos, demos y tutoriales del uso de esta tecnologa,
para el desarrollo de aplicaciones Web.

Profundicemos un poco ms en los resultados que hasta el momento eh


logrado.

Por ejemplo: La duracin para desarrollar una aplicacin Web que permita el
registro de informacin a una Base de Datos, tiene un tiempo alto de desarrollo
considerando todos los procesos que conlleva elaborarla, ahora como seria
esto utilizando JSF con ADF.

Los tiempos de elaboracin se puede reducir aproximadamente en un 20%,


teniendo un nivel muy bsico como el que mi persona a podido alcanzar, esto
sin duda beneficia satisfactoriamente a cualquier entidad o organizacin que se
dedique a este campo.
La creacin de un proyecto de esta ndole, en el editor seleccionado es muy
simple solo basta con seleccionar el tipo de proyecto y las libreras que
queramos implementar en l. Adems permite la creacin de una conexin con
la base de datos de una forma muy sencilla, esto para facilitar el uso de los
componentes de ADF.

En este punto sera muy til, realizar la creacin de un caso de desarrollo pero
nos extenderamos mucho en el tamao del documento, la idea fundamental en
este momento es conocer en s que es JSF y para qu sirve y como trabaja.

Para no dejar la parte prctica de lado en este artculo tratare de ilustrar la


creacin de un proyecto en JSF implementado ADF en JDeveloper 11g.

Primero que todo iniciaremos nuestro editor:

Fig. 2, Pgina de inicio de JDeveloper.

Luego crearamos una aplicacin nueva la cual debe contener en la capa de


vista los componentes de ADF, estos componentes tienen la versatilidad de
manipular las estructuras de la base de datos, pero primero para esto se realiza
una conexin previa con la misma.

Fig. 3, Creacin de conexin con base de datos.

Fig. 4, creacin de un proyecto con JSF-ADF.

En este momento se ha creado una nueva aplicacin de JSF implementado la


tecnologa de ADF, estos permitir la creacin de pginas en las cuales
podemos implementar de una forma muy gil y rpida estos componentes que
nos harn el trabajo ms rpido en el momento de desarrollar.
Para utilizar las estructuras de la base de datos (tablas, vistas, etc.),
necesitamos crear un control de datos, esto tiene como funcin realizar una
especie de persistencia con la base de datos seleccionada, crear una entidad
de cada tabla o vista y un objeto vista de la misma. Aqu es donde se
implementan los componentes de ADF, los cuales realizaran la tarea
anteriormente mencionada.

Fig. 5, utilizacin de componentes de ADF.

Hasta el momento eh tratado de ilustrar los pasos a seguir para la creacin de


una conexin con la base de datos desde el editor, la creacin de un nuevo
proyecto con la agregacin de la tecnologa ADF, la utilizacin de componentes
ADF para utilizar las estructuras existente en la base de datos. Recalcando que
nos hemos brincado pasados para no extender nuestro articulo.
Con todo esto podemos en este punto plantearnos algunos puntos importantes:

La creacin y agregacin de tecnologas tcnicamente fcil.


La creacin de un proyecto Web con JSF, se realiza de una forma
sencilla y no presenta ninguna configuracin complicada hasta el
momento.
La creacin de entidades para utilizar en las pginas se efecta
siguiendo un par de siguientes y teniendo una BS bien depurada y lista.

AL mencionar estos puntos llegamos a la conclusin que el trabajo realizado a


sido sencillo y entendible, lo que sigue es entender que nos permite esto en el
desarrollo de aplicaciones y cmo podemos implementar lo hecho hasta el
momento. Para esto continuaremos mostrando ejemplos sobre opciones
sencillas pero muy tiles.
Podemos crear una pgina la cual tiene una extensin .jsp, en la misma
podremos agregar la funcionalidad deseada.

Fig. 6, creacin de pgina JSF.

Al crear una pgina y tener nuestro objetos con solo arrastrar algn
componente en cuestin de segundos podemos crear formularios de bsqueda,
mantenimientos, tablas de lectura, lista de valores para opciones de bsqueda
y un sin nmero de opciones que puede agilizar nuestro desarrollo de una
forma increble.

Algunos ejemplos

Fig. 7, formulario con in listado de valores.

Fig. 8, formulario de bsqueda.

Fig. 9, Mantenimientos.

6. Conclusion.
El framework JSF forma parte importante del estndar java J2EE. De hecho se
est preparando una nueva versin que traer numerosas novedades, sobre
todo en lo que se refiere a su integracin con AJAX. Tambin se est
comenzando a utilizar en numerosas aplicaciones empresariales, ya que
permite crear pantallas de usuario bastante complejas con una cierta facilidad,
aunque desde luego no es sencillo la primera vez que te enfrentas a este
framework. En la nueva versin se espera una mejora sobre el control de las
fases del ciclo de vida de la peticin que faciliten la creacin de componentes
JSF complejos que se usan de manera simple.

Este documento es una pequea introduccin al framework JSF. El cual no


abarca completamente todo lo que ofrece la creacin de aplicaciones JSF. Se
espera que con este se entienda y se aclaren algunas dudas sobre esta
tecnologa para que se sienta el inters de echar un vistazo a JSF y se pueda
hacer una idea de su potencia.
7. Bibliografa.
www.eclipse.org
www.oracle.com
www.java.sun.com

También podría gustarte