Está en la página 1de 88

Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.

x 1
Manual de Desarrollo Basico de Aplicaciones
En La Plataforma J2EE
En Ubuntu 7.x
Miuel Abarca !.
Prof. "usta#o Donoso M.
Dise$o de %oft&are
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 2
'ntroduccion
Este manual de desarrollo basico de aplicaciones utilizando la
arquitectura J2EE en UBUNTU 7.x, tiene como principales objetivo orientar al
alumno tanto en lo teorico como practico de de esta arquitectura, en el uso de
!erramientas de so"t#are libre que se !ace cada vez mas necesario en el
desarrollo el dise$o de aplicaciones empresariales, para esto es preciso tener
conocimientos previos de al%unos temas como son J&B', U(), *T(), Envio de
datos entre pa%inas #eb manejo de UBUNTU, sino se tienen se recomienda
investi%ar.
+e detallaran cada uno de los componentes de este tipo de
aplicaciones ademas de la introduccion de ,atrones de &ise$o que nos serviran
para dar solucion a al%unos problemas que ocurren cuando desarrollamos
aplicaciones #eb, como es el manejo de %randes cantidades de arc!ivos J+, en
la comunicaci-n de la capa #eb de ne%ocio.
.eremos, ademas, el uso de las !erramientas que trae NetBeans /
para &ise$o de +o"t#are, que nos audaran a crear &ia%ramas de 'lase con
0n%enieria 1eversa &irecta, (odelos de 'asos de Uso, &ia%ramas de +ecuencia
manejo de base de datos.
'omo consejo de experiencia personal, recomiendo no ir
directamente a el desarrollo de las aplicaciones ejemplo para tratar de
adelantarse, sino ir de los mas basico a los mas complejo de "orma lenta pero
se%ura, a que de lo contrario puede costar aun mas el entendimiento del
desarrollo de aplicaciones en esta arquitectura.
,ara la instalacion de la estacion de la estacion para trabajo en la
plata"orma J2EE, leer el manual (!onfiuraci)n de un ser#idor para
desarrollo con J2EE en Ubuntu 7.*+,, que se encuentra disponible en el sitio
del curso, en el se encuentra el detalle de cada una de las partes que se
utilizaran para el dise$o desarrollo de sus aplicaciones.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x -
'.D'!E
Capitulo I: (Elementos de la Plataforma,
,lata"orma Java 2
Ediciones /
,lata"orma J2EE 7
Capitulo II: (Ar/uitectura J2EE,
,ro%ramacion por Niveles 3
(odelo de 'apas 3
(odelo de 4 Niveles 56
(odelo de 7 Niveles 56
8rquitectura 8plicaciones J2EE 55
(odulo EJB 55
El 'ontenedor o 'ontainer 54
(odulo 981 57
Capitulo III: (Elementos Aplicaciones J2EE,
,artes de un Beans 57
JN&0, re"erencia rapida 5:
J&B', re"erencia rapida 5:
,aquetes de 8plicaciones 53
0nte%racion Beans de +esion;Entidad 53
Capitulo IV: (Patrones de Dise$o,
<=ue son> 25
<,ara que se usan> 25
,atrones J2EE 22
Beans de ?ac!ada @+ession ?aAadeB 22
*T() dinamico 8plicaciones 27
8plicaci-n Beans de ?ac!ada en comunicaci-n 'apa 9eb Ne%ocio 2/
Capitulo V: (.etBeans 01 2erramientas para Dise$o de %oft&are,
Entorno de Trabajo 2:
'reacion aplicaci-n E81 @981;EJBB 23
8%re%ar &river de 'oneccion a una Base de &atos ,ost%re+=) 45
*erramienta para manejo de base de datos 47
8%re%ar (odulo U() 75
'reacion (odelo 'asos de uso 74
'reacion &ia%ramas de 'lase 72
'reacion (odelo de 8nalisis 73
'reacion (odelo de +ecuencia 25
Exportar a 0ma%en cada (odelo 22
Ceneracion de 'odi%o a partir de los (odelos 22
0n%enieria 0nversa 27
!apitulo 3'4 (Aplicaciones de E5emplo,
'onocimientos Necesarios /4
8plicaci-n *ola (undo /4
'alculadora /3
8%enda Tele"onica :6
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x +
CAPITULO I
(Plataforma Ja#a,
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 6
Plataforma Ja#a
En el desarrollo de nuestra carrera se nos !a capacitado en la
maoria de los cursos de desarrollo de so"t#are en el uso de esta
plata"orma pero muc!as veces no nos detenemos a buscar con que
elementos contamos ni cuales son los elementos que entran en
jue%o. Es por esto que antes de comenzar con el desarrollo de
aplicaciones J2EE es preciso conocer al%unos elementos basicos
como por ejemplo <=ue es una plata"orma> <En que consiste la
plata"orma Java><'uales son sus partes>.
78ue es una Plataforma9
+e entiende por plata"orma al entorno de !ard#are so"t#are en el cual se ejecutan
pro%ramas.
Plataforma JA3A
8si tenemos que J8.8 esta basado solo en so"t#are que se ejecuta sobre otras
plata"ormas su so"t#are puede ser usado sobre varios sistemas operativos !ard#are.
Esta plata"orma esta constituida de tres componentesD
1. El Lenua5e4 es un len%uaje de proposito %eneral, de alto nivel que utiliza el
paradi%ma de orientacion a ojetos.
2. La Ma/uina 3irtual4 )os pro%ramas escritos en Java son compilados como
arc!ivos ejecutables de una maquina virtual llamada Java Virtual Machine @J.(B,
esto nos permite que los pro%ramas ejecutables puedan ejecutarse en distintas
arquitecturas.
3. Las Bibliotecas4 el conjunto de bibliotecas del len%uaje es conocido como la Java
Aplication Programming Interface (Java API) es un conjunto de componentes que
proporcionan di"erentes !erramientas para el desarrollo.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 0
8si como existen versiones di"erentes de pro%ramas, para la plata"orma Java tambien
existen di"erentes ediciones, estas son 4D
1. Ja#a 2 Plataform1 Micro Edition :J2ME;4 &esarrollo para articulos moviles
peque$os como ,&8s.
2. Ja#a 2 Plataform1 %tandard Edition :J2%E;4 &esarrollo para computadores
personales aplicaciones en %eneral.
3. Ja#a 2 Platafomr Enterprise Edition :J2EE;4 &esarrollo Erientado a
aplicaciones corporativas o empresariales.
8 modo de re"erencia rapida podemos decir que J2+E, esta compuesto de dos partes uno
que es el +&F @+o"t#are &evelopment FitB que tiene todo el so"t#are necesario para el
desarrollo de aplicaciones J8.8.
G el J1E @Java 1untime EnvironmentB que contiene solo el ambiente las bibliotecas
principales para ejecutar el so"t#are escrito en J8.8.
)a plata"orma J2EE es una plata"orma para crear aplicaciones empresariales utilizando un
modelo de multicapas, &ividiendo a la aplicaci-n en di"erentes niveles, cada uno
basHndose en una tarea particular.
EstH basado en J2+E un conjunto de sus 8,0s a la cual J2EE aporta a la especi"icaci-n de
componentes.
'omo resultado basicamente, tenemos un paquete en el que podemos desarrollar
aplicaciones utilizando tecnolo%ias #eb, por medio de aplicaciones J8.8.
J2ME J2ME
J2SE J2SE
J2EE J2EE
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 7
Plataforma J2EE
8!ora, observemos los componentes que comprenden esta plata"ormaD
)a parte externa de la plata"orma como vemos se encuentra "ormada por J8.8 BE8N+, 8,,)ET+,
+=), etc.
Un nivel mas interno tenemos el 'ENT80NE1 o contenedor, que es el encar%ado de manejar los
EJB, J+,, +ervlets.
G un nivel muc!o mas pro"undo en el que tenemos las transacciones, mensajeria mail.
&e todos estos nos centraremos basicamente en el estudio deD
EJBs
J%P
%er#lets
%8L
&e "orma rapida podemos decir queD
EJBs4 +on modulos encar%ados de manejar toda la lo%ica de pro%ramacion dentras de
nuestra aplicaci-n.
J%P4 =uienes manejan inter"aces de comunicaci-n con el usuario o cliente.
%er#lets4 pro%ramas en java que permiten la comunicaci-n la ejecucion de pro%ramas
Java a travez de una aplicaci-n #eb.
%8L4 contiene toda la lo%ica de pro%ramacion que comunica nuestra aplicaci-n con el
sistema %estor de base de datos.
Todos estos elementos nos permitiran desarrollar aplicaciones basicas utilizando J2EE como
!erramienta de trabajo.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x <
CAPITULO II
(Ar/uitectura J2EE,
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x =
Proramacion por .i#eles
'omo se dijo anteriormente J2EE utiliza una lo%ica de pro%ramacion desarrollada en niveles o
capas.
)o que nos permitira encapsular o separar elementos de nuestras aplicaciones en partes
claramente de"inidas. =ue quiere decir basicamente estoD que podremos dejar procesos en un
lu%ar, datos en otros, mostrar inter"aces en otro.
Modelo de !apas
En la pro%ramacion por capas basicamente la idea es buscar la "orma de separar lo que ve el
usuario con los procesos creados por el desarrollador. 8si tenemos di"erentes len%uajes que nos
permiten desarrollar aplicaciones por capa por ejemplo J+,, 8+,, ,*,. ,or lo tanto debemos
primero, ver de "orma %lobal donde se encuentra el usuario donde se encuentra el desarrolladorD
U%UA>'? DE%A>>?LLAD?>
%er#idor @eb
J%P1 A%P1 P2P
!L'E.AE
Aransacciones

Bases de Datos
'omo observamos entonces a tenemos una capa claramente de"inida que es la del 'liente en el
cual se realizaran todas las peticiones a las capas superiores estas a su vez enviaran las
respuestas a esas solicitudes.
,ero de"iniendo aun mas tenemos queD
El servidor #eb es el encar%ado de realizar todos los procesos lo%icos como crear consultas crear
"ormularios, ejecutar procesos, etc, un servidor #eb comunmente utilizado es 8pac!e.
El +ervidor de Bases de &atos es en el que, como su nombre lo dice, tenemos todas las tablas,
vistas consultas que necesitamos para nuestro sistema, un servidor comun es ,ost%re+=).
G la se%uridad junto con las transacciones que contienen toda la lo%ica de ne%ocio entre la
aplicaci-n la base de datos.
'nternet 'nternet
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 1*
Modelo de - capas
8!ora que sucede en la arquitectura de tres capas, tenemos las transacciones con el
servidor #eb realizandose en un mismo lu%ar, o en este caso una misma capa, los datos
se mantienen a su vez tambien en una capa aun mas superior alejada del cliente, para
dar un nivel mas de se%uridad. Ebservemos el si%uiente dibujo, en el cual a se de"inen
las 4 capas basicas del desarrollo de aplicaciones #ebD

!L'E.AE @EB DAA?%
%er#idor @eb
J%P1 P2P1 A%P
%er#idor
Base de Datos
Aransacciones
Modelo de + capas
En esta arquitectura lo principal es que, separamos la se%unda capa en dosD 'apa 9eb
que queda solamente con el +ervidor 9EB las Transacciones se realizan en la capa de
Ne%ocioD

!L'E.AE @EB .E"?!'? DAA?%
%er#idor @eb
J%P1 P2P1 A%P Aransacciones
%er#idor
Base de Datos
Esto nos permitira un mejor control de todos los elementos que entran en jue%o a la !ora
de desarrollar aplicaciones 9eb.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 11
Ar/uitectura Aplicaciones J2EE
)as aplicaciones J2EE se basan completamente en el modelo de aplicaciones de 7 niveles.
Todas las aplicaciones constan de 4 partes basicas, que son
Modulos EJB4 encar%ado de tener la lo%ica del ne%ocio transacciones. En otras
palabras podemos decir que es el encar%ado de ejecutar pro%ramas, consultas a la
base de dato principalmente. @capa Ne%ocioB
Modulo @A>4 que es la encar%ada de tener todos los elementos de inter"az como
pa%inas #eb, servlets, applets. @capa 9EBB.
Aplicaci)n EA>4 contiene en su interior toda la con"i%uracion de la aplicaci-n
J2EE, eso inclue el modulo 981 EJB.
Modulo EJB
En este modulo entran en jue%o varias cosas, a que es el encar%ado de administrar la
maor parte de la lo%ica de nuestra aplicaci-n.
78ue es un EJB9
?acil, EJB es el acronimo de Enterprise Java Beans, basicamente un conjunto de paquetes
con varias aplicaciones java.
Beans Beans
Beans
Beans

Beans Modulo EJB Beans
78ue es un Beans9
Un porotoI, se les dice asi porque si se dan cuenta !acen la analo%ia con una bolsa de
porotos, esta contiene muc!o, al i%ual que cada EJB contiene muc!as aplicaciones,
entonces a cada uno de esos peque$os paquetes se les asocia con un poroto, pero mas
"ormalmente un beans es una parte del EJB que contiene toda una lo%ica de pro%ramacion
para realizar al%una actividad en particular. Existen tres tipos de Beans que sonD
Beans de Entidad Beans de Mensa5es Beans de %esion
:Aablas; :Acciones; :Aareas;
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 12
Entonces mas detalladamente tenemosD
Beans de %esion4 representan sesiones interactivas con uno o mas clientes,
pueden mantener un estado, pero solo durante el tiempo que el cliente interactua
con el bean. Esto si%ni"ica que los beans de sesi-n no almacenan sus datos en una
B& despues que el cliente termine el proceso. +e dividen en dos
Beans de sesion !on Estado4 almacenan datos especi"icos obtenidos durante la
conexi-n con el cliente, cada bean de sesi-n con estado por lo tanto almacena el
estado conversacional de un cliente con el que interactua. Este estado
conversacional se modi"ica con"orme el cliente va realizando llamadas a los
mJtodos de ne%ocio del bean. El estado conversacional no se %uarda cuando el
cliente termina la sesi-n.
Esea este beans usado va cambiando con"orme el cliente lo necesite, al%unos
metodos que contienen estos son los set los %et, un ejemplo claro es el carrito de
compras que a medida que vamos avanando se le van a%re%ando mas cosas, o en
un inicio de sesi-n cuando necesitamos tener en al%una parte los datos de la
persona que !a !ec!o lo%in.
Beans de sesion %in Estado4 no se modi"ican con las llamadas de los clientes
solo reciben datos devuelven resultados pero no modi"ican internamente el
estado del bean. Estos beans por lo %eneral son usados para encapsular procesos
de ne%ocio, mas que datos de ne%ocio @tarea de los beans de entidadB, tambiJn
puede usarse como puente de acceso a una B& o a un bean de entidad. 'uando
trabajamos con clienteKservidor estos beans podrian proporcionar al inter"ace de
usuario los datos necesarios, estos beans de sesi-n sin estado son de uso mu
"recuente.
Beans de Mensa5es4 pueden escuc!ar mensajes de un servicio de mensajes J(+,
estos nunca se comunican directamente con el cliente no necesitan objetos
EJBEbject, un ejemplo podrLa ser )istenerNuevo'liente que se activa cada vez que
se envLa un mensaje que se !a in%resado un nuevo cliente.
Beans de Entidad4 modelan conceptos o datos de ne%ocio, que pueden
expresarse como nombres. 1epresentan McosasN, objetos del mundo real como
*oteles, !abitaciones, expedientes, estudiantes demases. Un bean de entidad
puede representar incluso cosas abstractas como una reserva, describen tanto el
estado como la conducta de objetos del mundo real permite a los desarrolladores
encapsular re%las de datos ne%ocio asociadas con un concepto especi"ico. ,or
ejemplo un bean de entidad Estudiante encapsula los datos re%las de ne%ocio
asociadas a un estudiante. esto !ace posible manejar de "orma consistente
se%ura los datos asociados a un concepto.
)os beans puden contener in"ormaci-n por ejemplo de un estudiante sin
necesariamente estar conectados con una B&. El contenedor se encar%a de
sincronicar las variables de instancia del bean con la B&. &ebido a que los
beans de entidad se %uardan en un mecanismo de almacenamiento se dice
que es persistente, ,ersistente si%ni"ica que el estado del bean existe mas tiempo
que la duracion de la aplicaci-n.
Estos beans se dividen en dosD
Persistencia estionada por el Bean :BMP;4 contienen el c-di%o que accede
a la B&..
Persistencia "estionada por el !ontenedor :!MP;4 la relaci-n entre las
columnas de la B& el bean se describe en el "ic!ero de propiedades del bean,
el contenedor EJB se ocupa de la implementaci-n.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 1-
El !ontenedor o !ontainer
)os containers son un servicio que proporciona la in"raestructura necesaria a una
componente para ser ejecutado, para proveer sus servicios a un cliente dar
comunicaci-n con otras componentes. Un producto tLpico proveerH un container para
cada tipo de componente de la aplicaci-nD container de la aplicaci-n cliente, para 8pplets
para componentes de EJB.
7De /ue cosas se preocupa el contenedor9
<Tiene permisos el cliente para llamar al mJtodo>
*a que abrir la transacci-n al comienzo de la llamada cerarla al terminar.
<es necesario re"rescar el bean con los datos de la B&>
EJEMPL?4 ima%inemos que tenemos una aplicaci-n de ventas con un beans llamado
,ersonas la cual tiene varios metodos entre ellos compra. +upon%amos que desde el
objeto cliente queremos llamar al mJtodo compra, esto va a provocar que se realizen los
si%uientes pasosD
5. !liente4 MNecesito !acer una peticion de compra al bean M,ersonasN
2. EJB?b5ect4 MEspera un momento, ten%o que comprobar que tienes permisosN
4. !ontenedor EJB4 M+i, tienes permisos para !acer la llamada al mJtodo compraN
7. !ontenedor EJB4 MNecesito un bean ,ersonas para realizar la operaci-n de compra,
no se olviden de comenzar la transacci-nN.
5. (Reserva) Pool de Beans4 M8 quien le toca esta vezN .
/. !ontenedor EJB4 MGa ten%o un bean ,ersonas, pasale la petici-n al clienteN
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 1+
Modulo @A>
Este modulo como dijimos anteriormente es el encar%ado de la comunicaci-n 'lienteK
+ervidor 9EB, en el realizan las peticiones a las capas superiores, en el tenemos tres
elementos basicos que son losD
J%P4 Java +erver ,a%es @pa%ina #eb javaB
%er#lets4 'omponente #eb desarrollada con el objetivo de procesar
requerimientos de un cliente o requests %enera respuestas con contenido #eb
dinHmico. ,ara ser ejecutados es necesaria la utilizaci-n de un servidor que
soporte +ervlets su container.
Aplicaciones Ja#a4 codi%os Java en su "orma pura, que tienen metodos
atributos que pueden ser utilizados en aplicaciones J+, +ervlets.
(uc!as veces se tiende a utilizar los J+, de la misma "orma que pa%inas ,*,, lo cual no
es recomendable debido a la %ran cantidad de codi%o que se %enera lo cual produce
muc!o desorden por esto se !ara %ran en"asis a respetar la arquitectura J2EE, en donde
debemos tener cada parte donde corresponde, vale decir, 0nter"aces en la capa #eb,
peticiones respuestas en la capa de ne%ocio las conecciones de la base de datos en la
capa de datos.
!omunicaci)n !apa @ebB!apa .eocio
'uando recien se comienza el desarrollo de estas aplicaciones, cuesta un poco saber
donde realizar la comunicaci-n de cada una de las capas, como dijimos anteriormente
uno tiene a escribir todo ese codi%o en las aplicaciones J+,, lo que no era recomendable,
por lo que debemos !acerlo de la si%uiente "ormaD
+e deben utilizar los +ervlets como ente comunicador de ambas capas, para poder
mantener la arquitectura de la aplicaci-n el orden.
(as adelante veremos que esta comunicaci-n se realiza de una "orma mu sencilla en la
que la !erramienta de desarrollo, en este caso NetBeans, la realiza en 2 sencillos pasos.
'abe se$alar que es preciso tener conocimientos previos de *T() de trans"erencia de
in"ormacion entre pa%inas #eb, para poder llevar a cabo el desarrollo de la aplicaci-n en
la capa #eb.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 16
Entonces a modo de resumen, 'omo conocimiento bHsico, se conoce el modelo de 4
capas, en el cual tenemos, el cliente o nave%ador, servidor #eb la capa de datosD
Tenemos, un nave%ador, que es el lu%ar donde se encuentra el cliente Un servidor #eb,
que es donde se ejecutan las operaciones de ne%ocio comunicaciones con la B&, se
%enera el *T() dinHmico que posteriormente serH mostrado en los nave%adores. +ervidor
de Bases de &atos, donde se encuentra toda la in"ormaci-n de donde se retornan las
consultas.
,ara el modelo de 7 capas tenemos que las operaciones de ne%ocio %eneraci-n de
*T() dinHmico que se envLan al nave%ador se encuentran separadas.
G en donde entran en jue%o elementos como los +ervlets EJB que a "ueron detallados.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 10
CAPITULO III
(Elementos Aplicaciones J2EE,
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 17
Partes de un Beans
Un beans esta compuesto de tres partes o de tres clases mejor dic!o, de ellas tenemosD
'lase Beans :Beans;
'lase 1emota del Beans :>emote;
'lase 1emota que crea el beans :>emote2ome;
&e ellas podemos decir rapidamente queD
!lase Beans4 contiene toda la lo%ica de pro%ramacion de los metodos del beans.
!lase >emota del Beans4 es una especie de mascara, en la cual tenemos todos
los metodos sin su de"inicion lo%ica, mas bien una especie de MresumenN de todos
los metodos, cuando se accede desde otros beans o de otros niveles a este beans,
es a esta clase a la cual se llama no a la clase beans en si.
!lase >emota /ue crea el beans4 esta clase es la encar%ada de crear el beans,
de llamar a la clase remota para tener acceso a los metodos.
7Por/ue se crean estos arcCi#os9
&e "orma sencilla sirven para 'rear, )lamar, Ejecutar enviar la respuesta, cada uno de
ellos sirve para realizar esas acciones. 'ada vez que deseamos utilizar un beans se
realiza lo si%uienteDD
5. !rear llamada a un beans. @clase remota que crea el beansB
2. !uando se obtiene respuesta de un beans se enera una llamda remota.
@clase remota del beansB
4. %e llaman a los metodos de la clase remota para traba5ar. @clase remota
llama internamente a la clase beansB.
.eamoslo de "orma %ra"ica, ima%inemonos una conversacion entre un %rupo de personas,
en donde una persona llama a cada uno de ellosD
+i observan en la ejecucion de estos pasos, en la parte "inal, solo la clase 1emote vuelve
con la respuesta no el Beans.
Llamada:
Necesito un Beans!!
RemoteHome: Yo lo tengo!, lo
creo enseguida! Remote: Necesito el metodo
Buscar(), ejecutalo.
Beans: Lo ejecuto enseguida y te
doy la respuesta.
Remote: Aca esta la
ejecucion de lo que necesitas.
Lamada: Gracias
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 1<
J.D'1 >eferencia >apida
Es la inter"az de nombrado de J8.8, lo que nos permitira la comunicaci-n entre beans, por
medio del nombre, entre servlets beans en el caso de comunicaci-n capa 9eb
Ne%ocio.
)as busquedas de beans dentro del contenedor se !acen atravez de un metodo llamado
looOUp que se detallara como crearlo mas adelante.
JDB!1 >eferencia >apida
Ja#a Data Base !onecti#itD, 'oneccion Java a Base de &atos. Estos sistema de
coneccion nos permitira conectar la capa #eb con la capa de datos, o mejor dic!o con el
motor de base de datos de"inido en este caso como ,ost%res, para lo cual necesitaremos
un %E>3'D?> DE BD, U%UA>'?, !?.A>A%EEA un &river de coneccion.
Pa/uetes de Aplicaciones
)os paquetes de aplicaciones se pueden crear, tanto en la capa #eb, como la capa de
ne%ocio, con ellos podemos crear o encapsular al%unas operaciones basicas que no
realizen maor trabajo dentro del sistema por ejemplo, crear textos, titulos en !tml,
tablas, etc.
,or ejemplo ima%inemonos que tenemos un paquete con "unciones que %eneran codi%os
!tml dentro de esa clase tenemos varias clases, una encar%ada de manejar los colores,
otro de crear encabezados de tablas, otro para crear listas, etc.
J.D' J.D'
EJB !urso EJB !urso EJB Persona EJB Persona
JDB! JDB!
EJB Persona EJB Persona
Base Datos Base Datos
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 1=
8si tendriamos mas o menos al%o asiD
,aqueteD !odios2AML
'lasesD - colores.java
- listas.java
- tablas.java
- encabea!os.java
Entonces, cuando ten%amos un beans deseemos ocupar clases de ese paquete
solamente bastara con a%re%arlo junto con todas las otras librerias que a%re%amos, de la
si%uiente "ormaD
import !odios2AML.FG
o en su "orma individual, por ejemploD
import !odios2AML.coloresG
import !odios2AML.tablasG
)a ventaja de utilizar paquetes en vez de beans, es que no es tan en%orroso su llamado
como los beans entre ellos, podemos tener solo operaciones de uso "recuente en una
sola parte.
'nteracion Beans de %esionBEntidad
7Por/ue Cacer esta interacion9
,or tres motivosD
El objetivo de desarrollar una aplicaci-n en el area de &ise$o de +o"t#are, es
aprender a utilizar !erramientas que nos permitan llevar acabo dise$o.
,or otro lado, el desempe$o de el servidor JBE++, al%unas veces "alla al trabajar
con beans de entidad o se coloca mu lento debido a que debe !acer una ima%en
de la base de datos, o la tabla en este caso, en el beans, lo cual puede demorar
dependiendo de la cantidad de re%istros que ten%amos, asi se !ace muc!o mas
sencillo aprender a utilizar Beans de Entidad B(,, por medio de Beans de +esion
sin estado.
No es motivo de este manual pro"undizar mas alla en el uso de cada uno de los
componente, sino como dije anteriormente aplicar las !erramientas de dise$o de
so"t#are en la creacion de una aplicaci-n.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 2*
Capitulo IV
(Patrones de Dise$o,
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 21
PAA>?.E% DE D'%EE?
78ue son9
'omo analistas pro%ramadores vamos desarrollando a diario nuestras !abilidades para
resolver problemas usuales que se presentan en el desarrollo del so"t#are. ,or cada
problema que se nos presenta pensamos distintas "ormas de resolverlo, incluendo
soluciones exitosas que a !emos usado anteriormente en problemas similares. Es asL
que a maor experiencia que ten%amos, nuestro abanico de posibilidades para resolver
un problema crece, pero al "inal siempre !abrH una sola soluci-n que mejor se adapte a
nuestra aplicaci-n. +i documentamos esta soluci-n, podemos reutilizarla compartir esa
in"ormaci-n que !emos aprendido para resolver de la mejor manera un problema
especL"ico.
Un patr-n de dise$o es una abstracci-n de una soluci-n en un nivel alto. *a patrones
que abarcan las distintas etapas del desarrolloP desde el anHlisis !asta el dise$o desde
la arquitectura !asta la implementaci-n.
(uc!os dise$adores arquitectos de so"t#are !an de"inido el tJrmino de patr-n de
dise$o de varias "ormas que corresponden al Hmbito a la cual se aplican los patrones.
)ue%o, se dividi- los patrones en di"erentes cate%orLas de acuerdo a su uso.
)os dise$adores de so"t#are extendieron la idea de patrones de dise$o al proceso de
desarrollo de so"t#are. &ebido a las caracterLsticas que proporcionaron los len%uajes
orientados a objetos @como !erencia, abstracci-n encapsulamientoB les permitieron
relacionar entidades de los len%uajes de pro%ramaci-n a entidades del mundo real
"Hcilmente, los dise$adores empezaron a aplicar esas caracterLsticas para crear
soluciones comunes reutilizables para problemas "recuentes que ex!ibLan patrones
similares.
?ue por los a$os 5337, que apareci- el libro Q&esi%n ,atternsD Elements o" 1eusable
Ebject Eriented +o"#areQ escrito por los a!ora "amosos Can% o" ?our @Co?, que en
espa$ol es la pandilla de los cuatroB "ormada por Eric! Camma, 1ic!ard *elm, 1alp!
Jo!nson Jo!n .lissides. Ellos recopilaron documentaron 24 patrones de dise$o
aplicados usualmente por expertos dise$adores de so"t#are orientado a objetos. &esde
lue%o que ellos no son los inventores ni los Rnicos involucrados, pero ese "ue lue%o de la
publicaci-n de ese libro que empez- a di"undirse con mHs "uerza la idea de patrones de
dise$o.
7Para /ue se usan9
)os patrones del dise$o tratan los problemas que se repiten que se presentan en
situaciones particulares, con el "in de proponer soluciones a ellas. ,or lo tanto, son
soluciones exitosas a problemas comunes. Existen muc!as "ormas de implementarlos. )os
detalles de las implementaciones son llamadas estrate%ias.
El %rupo de Co? clasi"icaron los patrones en 4 %randes cate%orLas basadas en su
,1E,S+0TED creacionales, estructurales de comportamiento.
!reacionalesD ,atrones creacionales tratan con las "ormas de crear instancias de
objetos. El objetivo de estos patrones es de abstraer el proceso de instanciaci-n
ocultar los detalles de c-mo los objetos son creados o inicializados.
EstructuralesD )os patrones estructurales describen como las clases objetos
pueden ser combinados para "ormar %randes estructuras proporcionar nuevas
"uncionalidades. Estos objetos adicionados pueden ser incluso objetos simples u
objetos compuestos.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 22
!omportamientoD )os patrones de comportamiento nos audan a de"inir la
comunicaci-n e iteraci-n entre los objetos de un sistema. El prop-sito de este
patr-n es reducir el acoplamiento entre los objetos.
Patrones J2EE
'on la aparici-n del J2EE, todo un nuevo catHlo%o de patrones de dise$o apareci-. &esde
que J2EE es una arquitectura por si misma que involucra otras arquitecturas, incluendo
servlets, Java+erver ,a%es, Enterprise JavaBeans, mHs, merece su propio conjunto de
patrones especL"icos para di"erentes aplicaciones empresariales.
&e acuerdo al libro QJ2EE ,8TTE1N+ Best ,ractices and &esi%n +trate%iesQ, existen 2
capas en la arquitectura J2EED
'liente
,resentaci-n
Ne%ocios
0nte%raci-n
1ecurso
El libro explica 52 patrones J2EE que estHn divididos en 4 de las capasD presentaci-n,
ne%ocios e inte%raci-n.
Nosotros nos centraremos en aplicar la utilizaci-n del patr-n de dise$o %E%%'?. HAIADE
o BEA.% DE HA!2ADA, el cual nos permitirH mantener la arquitectura tener un mejor
"lujo de in"ormaci-n orden entre las distintas capas.
%ession HaJadeK
%ession EntitD HaJadeK
Distributed HaJade
El uso de un bean de sesi-n como una "ac!ada
@"acadeB para encapsular la complejidad de las
interacciones entre los objetos de ne%ocio
participantes en un "lujo de trabajo. El +ession
?aAade maneja los objetos de ne%ocio
proporciona un servicio de acceso uni"orme a los
clientes.
Beans de HacCada :%ession HaJade;
En %eneral, como vimos en Patrones !e !ise"o el beans de "ac!ada sirve para controlar
las di"erentes llamadas a procedimientos que se producen en la capa de ne%ocio, esto nos
permitirH un mejor "lujo de in"ormaci-n ejecuci-n de procedimientos.
,ero veamoslo mas claramente, ima%inemos un sistema de ventas que estH dise$ado
mHs o menos de la si%uiente manera, tendremos mas de un J+, que realizaran las
llamadas peticiones a varios +ervlets los que a su vez llamaran a mas de un beans de
encar%ado de %enerar consultas, in%resos, etc. a su vez estos realizaran consultas a los
distintos EJB a sean de compra, ventas o de personas.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 2-
(Hs o menos tenemos un modelo como el si%uienteD
En el observamos un cliente, varios arc!ivos J+, a su ves varios servlets que se
comunican con la capa de ne%ocio, produciendo muc!as llamadas entre las di"erentes
capas, esto produce que el sistema se pueda volver mas lento o que se produzca muc!o
mas desorden, lo que conlleva a un nivel de complejidad muc!o maor en el desarrollo,
a que se complica el tema de modi"icar codi%os, buscar codi%os, buscar errores, etc.
,or eso ocuparemos un solo beans en la comunicaci-n capa #ebKne%ocio, pero la
pre%unta es <como lo !acemos>, creando un beans que %enere las respuestas a las
solicitudes de cada servlet, es aquL donde entra en jue%o el beans !e #ac$a!a% que
nos permitira reducir a una sola llamada todas las peticiones, poder representar a todos
los demas beans, ademas entra tambien lo que llamamos *T() &inamico, que nos
permite %enerar *T() que siempre cambia tambien nos permitira, poder tener una sola
pa%ina J+, en vez de varias, esto lo explicaremos en el si%uiente tema, entonces tenemos
el si%uiente modeloD
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 2+
2AML Dinamico D Aplicaciones
)a creacion de *T() dinamico es un tema mu recurrente en este tipo de aplicaciones, a
que siempre que %eneramos consultas o respuestas a consultas creamos listas, tablas,
"ormularios, etc., en base a variables que van cambiando con el tiempo.
G es en esta parte donde entra la aplicaci-n de el patron de dise$o +ession ?aAade o
Beans de ?ac!ada. ,ar comprender mejor esta aplicaci-n, usaremos como ejemplo una
aplicaci-n de compras ventas.
?rden D >apideL de E5ecucion
&entro de lo que es el desarrollo de aplicaciones con contenido dinHmico tenemos un
problema que es "recuente el cual nos produce desorden complejidad en lo que
respecta a ejecuci-n orden de los di"erentes c-di%os que nos proporcionarHn el
contenido dinHmico.
)a maorLa de los desarrolladores #eb tienden a
tener siempre di"erentes pH%inas #eb para cada una
de las actividades que realizan sus sistemas, por
ejemplo podemos tener una pH%ina #eb que ten%a
dos opciones una de 'E(,18 otra de .ENT8 a su
vez cada una de ellas tendrLan di"erentes pa%inas
tanto para eliminaci-n para in%resos
modi"icacionesD
Entonces nos centraremos en lo%rar eliminar esta l-%ica
de desarrollo centrarnos en una muc!o mHs
interesante que nos permitirH tener solamente un
arc!ivo *T() en el ejecutar muc!os eventos realizando
solo llamadas a acciones o procedimientos, lo que nos
producirLa un orden de ejecuci-n encapsulaci-n de las
actividades muc!o mejor.
Esea, ejecutaremos muc!as pa%inas en una sola. ,ara esto es preciso antes, identi"icar
que lu%ares de nuestra #eb, es dinamica cual es estatica.
Todos los sitios tienen por lo %eneral, estos lu%ares claramente de"inidos.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 26
Ebservemos el si%uiente %ra"ico. &e un sitio de ventas de articulos.
Ebservemos que existen 7 partes pero una de ellas es claramente el lu%ar donde
ejecutamos todos los procesos, mientras que los demas son lu%ares "ijos, que no
dependen de otras variables.
G es este el punto el punto de union de todas las pa%inas #eb que por lo %eneral creamos,
siendo estosD eliminaciones, listados, in%resos, etc., a que todas se ejecutan dentro de
un mismo lu%ar que puede ser un elemento T8B)E o un &0..
8!ora <'omo identi"icamos cada una de las pa%inas o de las acciones que deseamos
ejecutar en mismo lu%ar>
,ues mu sencillo, con un 0& de accion, que enviaremos tanto por CET como ,E+T.
,or ejemploD .eamos un "ormulario sencillo donde tenemos un listado de usuarios a los
que podremos (odi"icar Eliminar.
8 la accion (odi"icar daremos un 0& @idaccionT2B a Eliminar otro @idaccionT4B le
pasaremos por parametro CET el nombre de usuario.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 20
Entonces cada vez que ejecutemos dic!o linO, se ejecutara esa accion con ese nombre de
usuario.
Ebservar que por parametro no se indica el nombre de la pa%ina que modi"ica o elimina,
a que como dijimos se ejecuta en el mismo lu%ar.
Este tema sera visto mas adelante con una aplicaci-n de ejemplo.
Aplicaci)n Beans de HacCada en
comunicaci)n !apa @eb D .eocio
)a utilizacion de esto nos servira en la comunicaci-n 'apa 9eb 'apa de ne%ocio a que
nos servira para reducir el numero de llamadas que existe entre una capa otra, tal
como lo dijimos anteriormente. .isto de otra "orma, en nuestra aplicaci-n de ejemplo
@sistema de ventasB, ima%inemos tenemos tres tipos de usuarios, que cada uno solo
tendra un J+, para sus acciones a su vez cada uno tendra un beans que %enerara el
*T() dinamico, de la si%uiente "ormaD
>idaccionT4UnicOTuser7
>idaccionT2UnicOTuser7
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 27
Capitulo V
(.etBeans 01 2erramientas para
Dise$o de %oft&are,
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 2<
Entorno de Araba5o
El entorno d trabajo NetBeans esta compuesto de las si%uientes partesD
Entonces tenemos las si%uientes areasD
Menu Principal4 para manejar cada parte del NetBeans a sean proectos,
!erramientas, sistema de versiones, ventanas, auda, etc.
Barra de 2erramientas4 atajos para crear, abrir %uardar proectos, copiar
pe%ar elementos, compilar ejecutar, etc.
HicCas de ProDectos1 ArcCi#os D %er#icios4 lu%ares donde podemos ver en
"orma de arbol las di"erentes partes que componen una aplicaci-n, los servidores
disponibles arc!ivos que ten%amos.
.a#eador de ArcCi#os4 podemos ver cada una de las partes que componen un
arc!ivo, por ejemplo si es una clase, podemos ver los metodos, sus atributos.
%alida de E#entos4 siempre que realizemos inicio de un servidor, ejecucion
compilacion de arc!ivos, veremos su detalle en esta ventana.
Barra de 2erramientas
Menu Principal
HicCas de ProDectos1
ArcCi#os D %er#icios
.a#eador de !lases1
Metodos D ArcCi#os
%alida de e#entos
Area de traba5o
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 2=
!reacion aplicaci)n EA> :@A>BEJB;
,ara la creacion de una aplicaci-n J2EE, debemos presionar en el menu ?0)E seleccionar NE9
,1EJE'T.
'uando estemos en el seleccionamos ENTE1,10+E lue%o en la lista derec!a ENTE1,10+E
8,)0'8T0EN.
,resionamos +i%uiente @NEVTB a!ora debemos colocarle nombre a nuestra aplicaci-n, nos
saltaremos el a%re%ar el servidor JBE++, a que este se detallo en el manual de instalacion de la
estacion de trabajo.
En esta parte deberemos se$alar un nombre de aplicaci-n, le colocaremos 8plicacion,rueba
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x -*
+eleccionamos el servidor de aplicaciones, en este caso JBE++ 7.6.7, en la parte in"erior
apareceran los nombres de los modulos EJB 981.
'uando estemos listos, pinc!amos ?0N0+*, en las "ic!as de trabajo apareceran los tres modulos
de la aplicaci-n.
En ellos se crean los si%uientes arc!ivos, de los cuales los mas importantes sonD
Enterprise Beans4 almacena todos los beans creados.
!onfiuration Hiles4 8rc!ivos de 'on"i%uracion. El
manejo del arc!ivo jboss.xml debe ser tratado con
cuidado a que cualquier modi"icacion en el a"ecta
totalmente a la aplicaci-n, se debe cuidadar la duplicidad
de propiedades en el a que tambien muc!as veces se
%enera codi%o extra.
%ource PacMaes4 'ontiene todos los paquetes creados,
incluidos los codi%os de los EJB.
Libraries4 8ca son almacenados todas las librerias
externas que ocupemos, por ejemplo la librerLa J&B' para
las conecciones a la Base de datos. @driver J&B'B
&e i%ual "orma tenemos 8rc!ivos para el modulo 981, que contendran toda la lo%ica de inter"az
U+U810EK8,)0'8'0EN
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x -1
&e este modulo tenemos los si%uientes itemsD
@eb Paes4 contiene todos los arc!ivos de la capa #eb,
ima%enes, arc!ivos *T(), arc!ivos J+,.
!onfiuration Hiles4 arc!ivos de con"i%uracion como
los del modulo EJB, se deben tratar con cuidado i%ual que
los anteriores.
%ource PacMaes4 contiene toda la lo%ica de
pro%ramacion como +ervlets, paquetes de aplicaciones
como clases, etc.
Libreries4 librerias externas, notese se que !a a%re%ado
el modulo EJB como una librerLa.
Arear Dri#er de !oneccion a una Base
de Datos Postre%8L
,ara poder realizar este paso deberemos descargar el driver de PostgreSQL de la pagina
oficial http://www.postgresql.org/download/ o directamente entramos al sitio
http://jdbc.postgresql.org/
(Esta parte se encentra detallada de igal forma en el manal de
instalacion de la estacion de trabajo!
www.postgresql.org/download/ (seleccionar JDBC Driver)
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x -2
jdbc.postgresql.org (seleccionar el driver JDBC 2 EE para la version 8.0)
"ando #a tengamos el driver descargado$ nos vamos a la ficha Services de la barra
lateral i%qierda$ # e&pandimos el icono D!B"E"
En el tendremos las sigientes opciones
Pinchamos con el boton derecho # seleccionamos #E$ D%&'E%:
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x --
'hora deberemos bscarlo # agregarlo para ello pinchamos el boton DD # lo
bscamos en el directorio donde fe descargado.
"ando #a este seleccionado presionamos ()
* el driver deberia haber sido agregado$ podemos verificarlo e&pandiendo el nodo
+rivers del servicio D!B"E"
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x -+
2erramienta para mane5o de base de
datos
Lo primero es agregar na neva coneccion a na base de datos$ Para ello
pinchamos con el boton derecho sobre el driver agregado$ en este caso (ostgre")* #
seleccionamos Connect +sing.
Lego deberemos darle la direccion de la base de datos$ ingresar nestro nombre de
sario # contrase,a
Seleccionamos la ficha dvanced para seleccionar el esqema con el qe deseamos
trabajar$ qe en este caso es p,blic$ para ello pinchamos el boton -E! "C.E/" #
seleccionamos en el combo de al lado p,blic.
'hora #a estamos listos para comen%ar a a reali%ar operaciones con la base
de datos.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x -6
Crear ,na tabla
'hora qe hemos creado la cone&i-n a la base de datos$ podremos ver tres carpetas
cada na representa los tres elementos a los qe tenemos acceso$ sin embargo no
podemos crear Procedimientos (carpeta Procedre! #a qe .et/eans no trae soporte
para ellos$ pero si tablas # vistas.
Para agregar na tabla debemos pinchar con el boton derecho sobre la carpeta
!B*E" # seleccionar la opcion C%E!E !B*E$ nos aparecera esta ventana donde
debemos agregar cada no de los campos de nestra tabla$ seleccionar tipo de dato
tipo de campo # tama,o en el caso de los tipo varchar.
Para esta preba crearemos na tabla llamada tabla0preba$ con los campos qe
aparecen aca abajo
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x -0
"ando esten todos los cambios agregados presionamos el boton () # estara lista$
cando se genere se agregara el icono de esta a la carpeta !B*E".
'hora crearemos otra tabla para relacionarla con la tabla0pr,eba con los
sigientes campos
"ando se genereren las dos tablas$ las veremos en nestra ficha de cone&iones
'hora deberemos crear la clave foranea de la tabla datos0tabla0pr,eba hacia la
tabla0pr,ebas con codigo SQL.
Ejec,tar codigo ")*
Para ejectar codigo SQL debemos pinchar con el boton derecho sobre la carpeta
!B*E" con el boton derecho # seleccionar E1EC+!E C2//#D$ con esto se nos abrira
n area de trabajo para ejectar instrcciones SQL$ solo es posible ejectar na
o varias instrcciones segidas no por parte o por selecci-n #a qe al escribir
varias las ejecta de forma secencial$ ha# qe tener especial cidado.
Entonces tenemos el area de trabajo # la ventana (12P12 donde veremos los
resltados de calqier tipo de conslta qe reali%emos
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x -7
'si ahora ejectaremos el codigo para crear la clave foranea de la tabla
datos0tabla0pr,ebas # para ingresar n dato a cada na para posteriormente crear
na vista.
El icono .ejecta el codigo.
"ando sea ejectado en la ventana (12P12 (barra lateral i%qierda! podemos ver la
clave agregada a la table e&pandiendo el icono 3(4E56. )E*S de la tabla
datos0tabla0pr,ebas
'hora borramos el codigo 7e ejectamos para qe no sea ejectado nevamente #
creamos los codigos para ingresar n dato a cada no de las tablas
5ngresa dato a la tabla0pr,eba
5ngresa dato a datos0tabla0pr,ebas
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x -<
"ando esten ingresados reali%amos n select a cada na de las tablas para
verificar qe esten ingresadas.
"omo #a tenemos por lo menos n dato ingresado a cada no$ deberemos hacer na
vista para ver los datos de ambas tablas qe estan relacionados.
Crear ,na vista
Para ello tenemos dos formas de hacerla$ la primera es con codigo$ # la segnda es
con el editor de consltas.
Para la primera debemos solamente hacer clic7 con el boton derecho sobre la
carpeta '&E$" # seleccionar C%E!E '&E$ e ingresar el nombre de la vista # s
respectivo codigo sql.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x -=
Crear ,na cons,lta con el editor
Para reali%ar na conslta con el editor basta con presionar con el boton derecho
sobre calqiera de las tablas$ # seleccionar DE"&-# )+E%3$ a continacion nos
abrira na ventana donde aparecera la tabla seleccionada solamente debemos
seleccionar los campos qe deseamos mostrar e ir editando ss parametros como
orden$ condiciones$ etc. En este caso pinchamos sobre datos0tabla0pr,eba #
deleccionamos la opcion antes nombrada (DE"&-# )+E%3).
Si deseamos agregar otra tabla$ como tabla0pr,ebas$ pinchamos con el boton derecho
en el area blanca al ado del cadro de la tabla datos0tabla0pr,ebas #
seleccionamos DD !B*E donde agregamos la tabla0pr,ebas$ cando se agrege
aparecera na linea qe mestra la relacion entre ambas tablas.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x +*
"ando hallamos seleccionado los campos de seamos debemos ejectar la conslta
presionando con el boton derecho en el area blanca # seleccionar %+# )+E%3$ en el
caso de enviar algn error bastara solamente con copiar el codigo qe ha sido
creado # pegarlo en na neva area de trabajo$ o editor de codigo SQL$ para
probarla$ # lego si deseamos convertirla en vista$ solo escribimos al inicio de
la conslta C%E!E '&E$ 4no5bre6 ".
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x +1
Arear Modulo UML
,ara la creacion de espacio de trabajo U(), debemos presionar en el menu ?0)E seleccionar
NE9 ,1EJE'T.
)ue%o seleccionar la 'ate%oria UML seleccionar PlataformN'ndependent Model. )ue%o
presionamos NEVT.
)ue%o, escribimos el nombre de nuestro modulo principal que almacenara todos los dia%ramas,
pinc!amos en ?0N0+*
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x +2
)ue%o nos pedira, seleccionar un tipo de &ia%rama, nosotros nos centraremos en los si%uientesD
&ia%rama de 'asos de Uso @Use 'ase &ia%ramB
&ia%rama de 'lases @'lass &ia%ramB
(odelo de 8nalisis @'lass &ia%ram, se utiliza para estosB
&ia%rama de +ecuencia @+equence &ia%ramB
)e colocamos el nombre, presionamos ?inis!D
'uando se %enere el modulo veremos los tres items en los que se almacenaran los modelos.
,rincipalmente Model que es el encar%ado de manejar todos los elementos a%re%ados. 'abe
se$alar que no pueden repetirse los nombres de, por ejemplo, 'lase, 8ctores, a que los
almacena todos en un mismo lu%ar, por lo que si en al%un momento los necesitamos en otro
modelo, bastara solo con tomarlos arrastrarlos al area de trabajo.
En el area de trabajo, tenemos las mismas !erramientas de un editor como el .isual ,aradi%m,
donde podremos aumentar el tama$o del zoom, mover los objetos, convertir el modelo en
ima%en, ver una vista previa, etc.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x +-
!reacion Modelo !asos de uso
,ara la creacion de un modelo de casos de Uso, creamos un nuevo modelo, solo clic derec!o
sobre el modulo principal que en este caso llamamos DiaramasUML, seleccionamos .E@
lue%o D'A">AM.
)ue%o seleccionamos U%E !A%E D'A">AM, colocamos el nombre presionamos H'.'%2.
'uando trabajamos con modelos de casos de uso, tendremos la si%uiente paleta con
!erramientas, donde, los principales sonD
Use !ase 4 que dibuja el circulo representativo del caso de uso.
Actor 4 dibuja un actor participante en el modelo.
Extend 4 que dibuja un WWextendXX desde uno de los casos a otro.
'nclude 4 que dibuja un WWincludeXX !acia otro caso de uso.
Association 4 asocia cada caso de uso que queramos con el actor.
G la !erramienta 'omment para escribir comentarios en el modelo.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x ++
8 modo de ejercicio a%re%amos creamos un modelo que conten%a los si%uientes casos de uso,
con un actor llamado P>?HE%?>D
8%re%ar 8lumno
Eliminar 8lumno
(odi"icar 8lumno
)istar 'usos
8dministracion 8lumnos
)ue%o pinc!amos la !erramienta 8++E'08T0EN pinc!amos el caso de Uso 8&(0N0+T18'0EN
8)U(NE+ al 8ctor en este caso ,1E?E+E1, se %enerara la linea que los conecta a ambos.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x +6
,ara a%re%ar una extension, seleccionamos la !erramienta Extend.
,inc!amos desde 8%re%ar 8lumno a 8dministracion 8lumnos. )o mismo !acemos con los demas
para los WWincludeXX lo !acemos de la misma "orma.
!reacion Diaramas de !lase
,ara la creacion de un modelo de casos de Uso, creamos un nuevo modelo, solo clic derec!o
sobre el modulo principal que en este caso llamamos DiaramasUML, seleccionamos .E@
lue%o D'A">AM.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x +0
G seleccionamos !LA%% D'A">AM.
+u paleta de !erramientas, contiene los si%uientes elementos principalesD
'lass, para crear una clase.
8ssociation, para crear una relacion entre dos clases.
)as !erramientas en si no son mu complicadas de utilizar asi que se recomienda explorarlas.
,ara el modelo de analisis, debemos crear tambien un &ia%rama de 'lases, a que es el unico que
trae las !erramientas para !acerlos.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x +7
8!ora dibujaremos una clase en el espacio de trabajo le llamaremos ALUM.?, para esto
!acemos doble clic en el nombre que coloca por de"ecto U..AME, lue%o pinc!amos con el boton
derec!o sobre 8ttribute colocamos 0nsert 8ttribute.
)os atributos se in%resan con el "ormato 3A>'ABLE 4 A'P?ODAA?, por ejemplo para in%resar una
variable de tipo %A>'.", lo !acemos como PALAB>A 4 %trin.
0n%resamos los si%uientes atributosD
Nombre, tipo +trin%
8pellido ,aterno, tipo +trin%
8pellido (aterno, tipo +trin%
Edad, tipo entero
,ara in%resar un metodo seleccionamos sobre la palabra Eperations con el boton derec!o
seleccionamos 0nsert Eperation.
El "ormato para in%resar los metodos es MEA?D?:#ariable14tipo1 #ariable24tipo1 .....;
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x +<
8 modo de ejercicio crearemos una clase alumno con los si%uientes atributos.
Nombre, +trin%
8pellido ,aterno, +trin%
8pellido (aterno, +trin%
Edad, Entero
1ut, Entero
8demas in%resaremos los si%uientes metodos.
8%re%ar, con los parametros del alumno.
(odi"icar, con los paremtros del alumno
Eliminar, con solo su rut
)istar 'urso, con solo un idcurso, que sera de tipo entero.
?inalmente deberiamos tener al%o asiD
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x +=
!reacion Modelo de Analisis
,ara crear un modelo de analisis, como se dijo anteriormente se debe crear un dia%rama de
clases, nos movemos con el scroll bajamos !asta las !erramientas que nos serviran para llevar
acabo este dia%rama.
)a mecanica para !acer este tipo de modelo es la misma que en los casos anteriores,
seleccionamos la !erramienta la dibujamos en el espacio de trabajo.
8 modo de ejercicio, crearemos uno con los si%uientes elementos.
0nter"az, E11E1 &E 1EC0+T1E
0nter"az, 1EC0+T1E U+U810E
0nter"az, )EC0N U+U810E
,roceso, 1EC0+T1E 8UTENT0?0'81
,roceso, 8UTENT0?0'81 U+U810E
Entidad, Usuario.
8ctor, Usuario
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 6*
8!ora seleccionamos la !erramienta 8ssociation, pinc!amos cada elemento sus
correspondientes
8sociaremos,
1e%istro de Usuario con, Error de 1e%istro 1e%istro Usuario.
8utenti"icar Usuario con )o%in Usuario.
Usuario con 1e%istro 8utenti"icar.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 61
!reacion Modelo de %ecuencia
,ara crearlo se !ace de la misma "orma que los anteriores, pero seleccionaremos %E8UE.!E
D'A">AM.
,ara aprender a ocupar estas !erramientas, !a que tener un poco de paciencia, a que es un
poco complicada de utilizar, para ello crearemos un dia%rama de secuencia para un tablero de
a%edrez, basico en el que veremos el "lujo cuando un ju%ador mueve una pieza se veri"ica si es
correcta en el lu%ar que esta o no.
,ara ello lo primero es dibujar al actor Ju%ador, seleccionamos la !erramienta la dibujamos en el
area de trabajo.
&eberiamos dejarlo mas menos de la si%uiente "orma, si se "ijan coloca dos puntos delante del
nombre del actor, es porque NetBeans pide una especie de nombre de aplicaci-n de secuencia,
no es necesario colocarlo.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 62
,ara a%re%ar una secuencoa seleccionamos la !erramienta )i"e)ine
8%re%aremos tres secuencias llamadasD
0nter"az Usuario
Tablero1e%las
8l%oritmoJue%o
NETE+E =UE NE *8G E+,8'0E ENT1E ,8)8B18+ para que cuando pasemos este modelo codi%o,
no %enere error. (as o menos deberia quedar asi.
Alternativa&ente, a%re%aremos un comentario que di%a que si%ni"ica 8J, que en este caso es
8jedrez. para identi"icar la aplicaci-n que esta en jue%o.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 6-
8!ora %eneramos los eventos de cada secuencia, para mensaje directo entre una otra
pinc!amos la !erramienta 8snc!ronous (essa%e
G pinc!amos en la linea punteada de la primera secuencia a la se%unda, en este caso desde
Ju%ador a 0nter"azUsuario.
,ara colocar el mensaje, seleccionamos sobre la "lec!a de mensaje con el boton derec!o la opcion
LABEL% lue%o %2?@ ME%%A"E .AME
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 6+
Nos colocara un mensaje por de"ecto, !acemos doble clic sobre para cambiarloD
G le llamaremos 1. Mue#e PieLa, posteriormente a%re%amos otro desde 0nter"azUsuario a
Tablero1e%las llamado 1.1 Mue#e PieLa
8si creamos un modelo como el si%uiente. para el mensaje a una misma secuencia @5.5.5 <Es
valido>, utilizamos la !erramienta ME%%A"E A? %ELH.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 66
Exportar a 'maen cada Modelo
Bastara solamente con pinc!ar el boton indicado en la barra de !erramientas del area de trabajo.
"eneracion de !odio a partir de los
Modelos
,ara %enerar el codi%o de nuestro modulo completo, pinc!amos en el modulo principal con el
boton derec!o seleccionamos "E.E>AAE !?DE.
)ue%o seleccionamos el (odulo de la aplicaci-n J2EE al que enviaremos el codi%o, en este caso
bastara solo con el modulo 981, seleccionar a que lu%ar de esta lo %eneraremos @en el caso de
tener varios paquetesB, esto dependera de lo que estemos !aciendo.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 60
'omo seleccionamos +EU1'E ,8'F8CE+ lo envio a ese lu%ar en un solo paquete. en este caso
tradujo el dia%rama de secuencia el dia%rama de clases que !abiamos creado llamado 8lumno.
,odemos observar el codi%o %enerado, por ejemplo de la clase alumno, !aciendo doble clic en
ella.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 67
'nenieria 'n#ersa
,ara las pruebas de 0n%enieria inversa, crearemos una clase sencilla, para ello pinc!amos con el
boton derec!o sobre +EU1'E ,8'F8CE+ en nuestro modulo 981, seleccionamos NE9 lue%o
J8.8 ')8++.
8!ora le colocaremos 'alculadora tanto al nombre de clase @')8++ N8(EB al de paquete
@,8'F8CEB.
Una vez creada la clase, !acemos doble clic en ella se nos abrira el espacio de trabajo, para
editar el codi%o.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 6<
En este caso crearemos metodos para una calculadora que recibe dos atributos para cada uno. &e
la si%uiente "ormaD
'uando terminemos de di%itar todos los metodos, bastara solamente con presionar con el boton
derec!o sobre la clase en la ventana de proectos seleccionar 1E.E1+E ENC0NEE1
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 6=
8!ora nos consultara si queremos crearlo usando un modulo o projecto U() existente, o en uno
nuevo, para este caso crearemos un nuevo projecto U() le daremos un nombre, siempre %enera
uno por de"ecto que lo relaciona con la aplicaci-n asociada.
Ebservaremos en el modulo creado, que solamente %enero la clase, pero no el modelo, para esto
creamos un nuevo dia%rama, presionando con el boton derec!o sobre el icono principal
seleccionamos NE9 lue%o &08C18(
'reamos un dia%rama de clases, cuando este %enerado, solamente arrastramos la clase !acia el
espacio de trabajo veremos su detalle.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 0*
,ara crear un modelo con 0n%enieria inversa a partir de al%un paquete de clases que ten%amos en
al%una aplicaci-n, creamos un nuevo proecto seleccionamos UML lue%o >E3E>%E
E."'.EE>ED JA3ANPLAAAH?>M M?DEL.
8continuacion colocamos el nombre del proecto seleccionamos el modulo al que queremos
!acerle in%enieria inversa, puede ser al EJB o al modulo @A>
,resionamos H'.'%2 cuando estemos listo se %enerara el nuevo modulo UML con todas las
clases que ten%amos en ese momento.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 01
Expandemos el item M?DEL veremos las clases !acia abajo de la misma "orma que
a%re%amos la clase '8)'U)8&E18, a%re%amos todas las que ten%amos o necesitemos.
En este caso moveremos todas las que teniamos.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 02
!apitulo 3'
(Aplicaciones de E5emplo,
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 0-
!onocimientos .ecesarios
,ara el desarrollo de aplicaciones J2EE, son necesarios al%unos conocimientos previos que son los
si%uientes deben ser averi%uados por ustedes.
?amiliaridad con el modelo de desarrollo de 4 niveles @clienteKservidor9ebK+ervidorB&B
(anejo de conecciones Java a bases de datos o J&B'.
+ino poseen este conocimiento les recomiendo pedir en biblioteca el libro @solo existe unoB
Pro'ra&aci(n !e )ases !e *atos con +*)C , +AVA
Reese% -eor'e
,ara el desarrollo de esta aplicaci-n solo utilizaremos Beans B(,, a que los '(, trabajan
con &ata+ource lo que !ace que sea un tanto mas complejo, no es necesario, a que el
objetivo principal es aplicar las !erramientas que nos permiten !acer &ise$o de+o"t#are.
*T() basico, creacion de "ormularios envio de datos atravez de ellos, para los que no
saben sobre envio de datos, les recomiendo leer sobre los envios por CET ,E+T de ,*,,
a que son mu similares.
J+, basico. comunicaci-n con clases, instrucciones 0(,E1T clausulas de trabajo dentro
de codi%os *T().
Ceneracion de *T() dinamico.
Aplicaci)n 2ola Mundo
,rimero cabe se$alar, de que cada una de las acciones que vamos !aciendo se repite en los
ejemplos si%uientes asi que se recomienda ir por orden.
,ara la creacion de nuestro conocido *ola (undoI, lo !aremos utilizando un servlet, como dijimos
en los capitulos anteriores, un servlet no es mas que un pro%rama en java que se ejecuta por
medio de una pa%ina en J+,, que %enera contenido dinamico.
+e da por ec!o que a se !a leido el manual de instalacion del NetBeans donde se explica la
instalacion del JBE++ las demas !erramientas.
'omenzamos creando un nuevo proecto Enterprise
+eleccionamos nuestro servidor de aplicaciones le damos el nombre a nuestra aplicaci-n, en
este caso *ola(undo.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 0+
'uando este creado veremos los si%uientes tres modulos en nuestra "ic!a de proectos.
El icono representa a la aplicaci-n E81 como dijimos en capitulos contiene la con"i%uracion de
la aplicaci-n completa.
El icono representa el modulo EJB, este contiene toda la lo%ica de ne%ocio, los beans,
conecciones a B&, etc.
El icono representa el modulo 981, que contiene toda la inter"az %ra"ica, clases, etc.
El detalle del "uncionamiento de cada uno !a sido de"inido en capitulos anteriores.
8 continuacion expandimos nuestro modulo 981 !acemos doble clic sobre nuestro index para
editarlo.
G procedemos a editar el codi%o, que nos permitira ejecutar nuestro servlet.
En un inicio nos aparecera un codi%o estandar, pero lo modi"icaremos, en el crearemos un
"ormulario que ejecutara un servlet que llamaremos (el%er#let,
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 06
(odi"icamos nuestro codi%o lo dejamos de la si%uiente "orma.
Notese que en el action de nuestro "ormulario !emos puesto el nombre del servlet que
ejecutaremos.
)ue%o procedemos a crear nuestro servlet, de la si%uiente "orma, presionamos con el boton
derec!o sobre el icono +ource,acOa%es, seleccionamos NE9 lue%o +ervlet.
En la ventana que nos abrira deberemos especi"icarD el nombre del +ervlet el nombre del
paquete al que deseamos este asociado.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 00
)e daremos los si%uientes nombres. ,resionamos si%uiente en la pantalla si%uiente la dejamos
tal cual le damos ?0N0+*.
'uando se cree, veremos en la "ic!a de proectos, el servlet creado con su respectivo paquete.
En el area de trabajo veremos el codi%o estandar que se %enera, de ellos los mas importantes
sonD
process>e/uest4 ejecuta el codi%o del servlet.
do"et4 captura datos enviados por post.
doPost4 captura datos enviador por %et.
)a estrctura del process es la si%uienteD recibimos por parametro los datos enviados por post
%et, out.println nos servira para ejecutar el codi%o dinamico. solo debemos descomentar la
parte central del tr.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 07
&escomentamos dejamos el codi%o como si%ue a continuacion.
'uando este listo, compilamos ejecutamos de la si%uiente "ormaD clic derec!o sobre el modulo
principal seleccionamos 1UN.
En al%unas ocaciones, tendremos problemas con las ejecuciones anteriores debido a los arc!ivos
temporales para evitar esto deberemos !acer, siempre que lo necesitemos, un 'lean and Build,
de la misma "orma en que compilamos.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 0<
En mas de una ocacion veremos el si%uiente mensajeD solo presionamos EF cada vez que
aparezca.
?inalmente cuando ejecutemos veremos en nuestro nave%ador lo si%uienteD
,resionamos ejecutar veremos nuestro servlet corriendoD
,ara ejercitar el trabajo recomiendo !acer el si%uiente ejercicioD
'rear un "ormulario de datos enviarlo a un servlet, que este a su vez muestre todos lo
datos enviados en una tabla.
,edir un numero de 5 al 56 %enerar la tabla de multiplicar por medio de un servlet,
mostrandola en una columna de un objeto WtableX con *T().
En %eneral inventar problemas de enviar recibir datos.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 0=
!alculadora
El desarrollo de este ejemplo lo !aremos de dos "ormasD
,ara ambosD 'rearemos un beans de sesion en la capa de ne%ocio con las 7 operaciones @suma,
resta, multiplicacion divisionB un "ormulario que pida dos numeros en la capa #eb.
5. Ejecutaremos por medio de un +ervlet.
2. Ejecutaremos utilizando una clase, como un inicio a la aplicaci-n del patron de dise$o.
'reamos una nueva aplicaci-n E81 a la que daremos el nombre de 'alculadoraD
En la capa #eb crearemos un beans de sesion de la si%uiente "ormaD clic derec!o sobre el item
Enterprise Beans lue%o .E@ seleccionamos %ession Bean.
'omo trabajaremos con una inter"az remota, seleccionamos 1E(ETE +tateless, para indicar que
es un beans, remoto sin estado.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 7*
.eremos que se nos %eneran tres arc!ivos en nuestro beans, la "uncionalidad de cada uno "ue
detalla en los capitulos anteriores.
El codi%o estandar que se crea para la clase beans, es la si%uiente, de ellas es importante no
eliminar nin%una solamente a%re%ar, a que son para la creacion llamadas internas del beans
por medio del contexto JN&0.
,ara a%re%ar metodos nuevos, es recomendable !acerlo de la si%uiente manera a que se
%eneraran los codi%os automaticamente se a%re%aran los descriptores automaticamente a la
clase remota para !acer las llamadas a los metodos de la clase.
,resionamos con el boton derec!o sobre el area de trabajo seleccionamos EJB MetCods lue%o
ADD BU%'.E%% MEA2?D.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 71
)ue%o nos pedira de"inir un nombre de "uncion, un tipo de dato de retorno, la descripcion de los
parametros de entrada a la "uncion.
8si a%re%amos un metodo llamado +U(81 que retornara un +trin%, que contendra dos
parametros de entrada de tipo entero llamados numV numG.
&e la misma "orma a%re%amos el resto para el metodo 1E+T81, (U)T0,)0'81 &0.0&01.
G !acemos su codi%o individualmente de la si%uiente "ormaD
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 72
'uando este listo veremos que en nuestra clase remota, cada uno de los descriptores de cada una
de las "unciones !a sido a%re%adoD
Esta clase no debe ser EN )E ,E+0B)E no modi"icada a que cualquier cambio que !a%amos no
re"lejara lo que esta en la clase beans, asi que recomienda tener cuidado.
'uando este listo, compilamos el beans para comprobar que no tiene errores.
8!ora crearemos nuestro "ormulario *T() en la capa ne%ocio de la si%uiente "ormaD
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 7-
8!ora, creamos nuestro servlet, al que de"inimos en el action como MoperacionesN, este recibira
los datos enviados por %et los ejecutara mediante un beans en la capa de ne%ocio.
)e damos el NEVT lue%o ?0N0+*.
8!ora que a tenemos el servlet creado, debemos %enerar la llamada a la capa de ne%ocio para
utilizar nuestro beans. ,ara esto presionamos con el boton derec!o sobre el area de trabajo
seleccionamos ENTE1,10+E 1E+EU1'E+ lue%o '8)) ENTE1,10+E BE8N
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 7+
8 continuacion nos pedira seleccionar el beans al que deseamos llamar.
Expandimos el modulo EJB, seleccionamos 'alculadora+B presionamos EF.
'uando presionemos EF nos %enerara la "uncion looOUp que contendra todo el codi%o necesario
para crear la llamada JN&0 a la capa de ne%ocio.
Esta "uncion no debe ser modi"icada. )ue%o creamos el codi%o en nuestro process que recibira
ejecutara cada una de las operaciones de la si%uiente "orma.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 76
'omo, acotacion se daran cuenta que cuando llamen a un metodo del beans, les abrira una lista
con las "unciones disponibles de la si%uiente "ormaD
Esto les servira para comprobar que la coneccion JN&0 se !a realizado correctamente. Esto
sucede incluso cuando llaman a una clase comun corriente.
?inalmente compilamos ejecutamos nuestra aplicaci-n E81 de la misma "orma que !izimos en el
ejemplo anterior @*ola(undoB. 0n%resaremos nuemos para probar.
,robar todas las operaciones.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 70
,ara la se%unda parte de ejercicio debemos crear denuevo una aplicaci-n E81 para !acer la
coneccion a no via servlet sino via clases.
1epetimos los dos primeros pasosD crear (odulo EJB con sus respectivas "unciones crear el
"ormulario *T(), pero esta vez no llamaremos a un servlet sino que a%re%aremos con un import
la clase operaciones dentro del J+,, no crearemos pa%inas nuevas sino que ejecutaremos dentro
del mismo sitio las operaciones. Esto a "in de dar un inicio a la aplicaci-n del patron de dise$o
que deberan utilizar en sus trabajos.
Entonces, la idea es que por medio de un 0? ejecutemos las operaciones cada vez que se necesite
cada vez que se produzca una llamada a la misma pa%ina, esto es cuando ejecutamos el
"ormulario o un linO que !a%a re"erencia con el simbolo interro%acion @>B
8si creamos una nueva clase J8.8D
'on los si%uientes datosD
)ue%o se creara la clase a la que debemos escribirle su respectivo constructor a%re%ar la
llamada al beans que creamos en la capa ne%ocio.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 77
+e %enera el looOUp
G lue%o creamos la "uncion encar%ada de solicitar las operacionesD
'uando comenzamos a di%itar el metodo, normalmente nos olvidamos del trKcatc! por esto en
al%unos caso nos indicara que es necesario a%re%arlo mostrando un icono al lazo izquierdo con
una ampolletita, basta con presionarla nos a%re%ara el codi%o "altante.
?inalmente deberemos tener una "uncion mas o menos como esta.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 7<
'uando este lista, a%re%amos a nuestro J+, la librerLa que contiene la claseD
G creamos el codi%o del "ormularioD Ebservar las partes marcadas, que se a%re%an para utilizar la
clase.
WYKK
&ocument D index
'reated on D 55K62K266:, 52D22D55 8(
8ut!or D dar%o
KKYX
PQR pae importSTPa/uete.FT QU
WYZpa%e contentTpeTQtext[!tmlQ pa%eEncodin%TQUT?K:QYX
WI&E'TG,E *T() ,UB)0' QK[[94'[[&T& *T() 7.65 Transitional[[ENQ
Q!ttpD[[###.#4.or%[T1[!tml7[loose.dtdQX
W!tmlX
W!eadX
Wmeta !ttpKequivTQ'ontentKTpeQ contentTQtext[!tmlP c!arsetTUT?K:QX
WtitleXEjemplo 'alculadoraW[titleX
W[!eadX
WbodX
PQ operacion operacion S ne& operacion:;G QU
Pform actionST9T metCodSTetTU
WtableX
WtrX
Wtd colspanTQ2QX0n%rese NumerosW[tdX
W[trX
WtrX
WtdXNumero VW[tdX
WtdXWinput tpeTQtextQ nameTQnumVQ idTQnumVQXW[tdX
W[trX
WtrX
WtdXNumero GW[tdX
WtdXWinput tpeTQtextQ nameTQnumGQ idTQnumGQXW[tdX
W[trX
WtrX
WtdXEperacionW[tdX
WtdX
Wselect nameTQidoperacionQ idTQidoperacionQX
Woption valueTQ5QX+umarW[optionX
Woption valueTQ2QX1estarW[optionX
Woption valueTQ4QX(ultiplicarW[optionX
Woption valueTQ7QX&ividirW[optionX
W[selectX
W[tdX
W[trX
WtrX
WtdXUnbspPW[tdX
WtdXWinput tpeTQ+ubmitQ valueTQ1ealizar EperacionQXW[tdX
W[trX
WtrX
WtdX1esultadoDW[tdX
WY
[[aca de"inicimos la ejecucion de las acciones en el mismo J+,
+trin% resultadoTQQP
int idoperacionT6P
int numVT6P
int numGT6P
tr \
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 7=
idoperacionT0nte%er.parse0nt@+trin%.valueE"@request.%et,arameter@QidoperacionQBBBP
numVT0nte%er.parse0nt@+trin%.valueE"@request.%et,arameter@QnumVQBBBP
numGT0nte%er.parse0nt@+trin%.valueE"@request.%et,arameter@QnumGQBBBP

resultado T operacion.resultado@idoperacion, numV, numGBP

] catc! @Exception exB\
idoperacion T 6P
numVT6P
numGT6P
]
YX
WtdXWYTresultadoYXW[tdX
W[trX
W[tableX
W["ormX
W[bodX
W[!tmlX
&e i%ual "orma cuando creamos la clase se %enera una lista con las "unciones del beans, cuando
llamamos a la clase, se abre un popup con la lista de "unciones disponiblesD
G "inalmente veremos como se ejecuta nuestra calculadora en una misma pa%ina sin necesidad
de llamar a un servletD
Ebservar como en la barra de direcciones se envian los datos al mismo index, se ejecutan las
acciones se%Rn un 0& de operaci-n, que de"inimos en nuestro codi%o.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x <*
)a tecnica para !acer esto es de"inir una id di"erente a cada accion, para poder identi"icar eventos
condicionarlos con un 0? en di"erentes partes de nuestro sitio. Un ejemplo de esto lo veremos
con la a%enda tele"onica.
Aenda Aelefonica
)o primero que necesitan es crear una tabla en una base de datos llamada ,ersonas que
conten%a los si%uientes camposD
idpersona @intB
nombre @varc!arB
"ijo @intB
celular @intB
email @varc!arB
8demas idnti"icaremos las si%uientes acciones le daremos los si%uientes 0ds a cada unoD
.ariable .alor 8ccion[Evento &escrpcion
idaccion 5 8%re%ar nuevo (uestra "ormulario de in%reso persona
idaccion 2 (odi"icar persona (uestra "ormulario con los datos a modi"icar
idaccion 4 Eliminar Elimina persona de la base de datos
idaccion 7 'on"irma (odi"icacion
idaccion 2 'on"irma 0n%reso ,ersona
No se detallara el "uncionamiento de cada "uncion que conecta con la base de datos. El como
a%re%ar el driver de coneccion que usaremos se encuentra de"inido en el manual de instalacion
de la estacion de trabajo.
,rimero comenzamos con crear una nueva aplicaci-n JEE, a la que llamaremos 8%enda,ersonas.
En el creamos primero nuestro metodo de coneccion al que llamaremos useBase, que retornara
un objeto de tipo coneccionD
Ebservaremos nos marca al%unas instrucciones debido a que nos "alta a%re%ar librerias J&B'.
,ara a%re%arlas basta con pinc!ar las ampolletitas seleccionar la librerLa que deseamos.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x <1
,or ejemplo de la si%uiente "ormaD
&espues que !emos a%re%ado las librerias que "altan creamos los si%uientes metodos de ne%ocioD
G en nuestra B& creamos 4 procedimientos almacenados, uno para cada opcion, menos la que
%enera el listado con las personas in%resadas, osea uno paraD 8C1EC81, (E&0?0'81 E)0(0N81.
G creamos nuestro primer metodo 8C1EC81D
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x <2
)ue%o los demas de la si%uiente "ormaD
8%re%amos un metodo de ne%ocio llamado BU+'81 antes de de"inir el metodo listadoDD
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x <-
&e"inimos el metodo listadoD
+i se desconoce el "uncionamiento de al%unas instrucciones se recomienda leer el libro
recomendado al inicio de este capitulo sobre J&B'.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x <+
8!ora creamos nuestra clase que manejara todas las conecciones con la capa ne%ocio, %enerara
los "ormularios de in%reso modi"icacion,solicitara el listado con todos las personas eliminara
personas. NE E).0&81 '1E81 )8 ))8(8&8 8) BE8N+.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x <6
,ara nuestro index debemos crear al%o como estoD
En donde ^EN8 &0N8(0'8 es donde se mostraran las acciones como mostrar "ormularios,
modi"icaciones eliminaciones.
G )0+T8&E CENE18) mostrara las personas re%istradas.
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x <0
)ue%o creamos nuestro codi%o *T() que mostrara nuestro listado con personas, que nos pedira
in%resar personas nuevas, modi"icara eliminara datos de la base de datosD
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x <7
?inalmente compilamos ejecutamos, deberiamos ver al%o como lo si%uienteD
+i presionamos el boton 0NC1E+81 NUE.8 ,E1+EN8, veremosD
'uando ten%amos los datos presionamos 0NC1E+81 ,E1+EN8 nos enviara un mensaje, se
actualizara la pa%ina veremos lo si%uienteD
Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x <<
,robamos in%resando otra persona.
G probamos eliminando la persona con 0& T 2D
G despues modi"icamos la persona 5D
H'.... 8ue J2EE Los Acompa$e...V xD

También podría gustarte