Está en la página 1de 88

Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.

Manual de Desarrollo Basico de Aplicaciones En La Plataforma J2EE En Ubuntu 7.x

Mi uel Abarca !. Prof. "usta#o Donoso M. Dise$o de %oft&are

Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x

'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 a udaran 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 (!onfi uraci)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 Ediciones ,lata"orma J2EE 2 / 7

Capitulo II: (Ar/uitectura J2EE,


,ro%ramacion por Niveles (odelo de 'apas (odelo de 4 Niveles (odelo de 7 Niveles 8rquitectura 8plicaciones J2EE (odulo EJB El 'ontenedor o 'ontainer (odulo 981 3 3 56 56 55 55 54 57

Capitulo III: (Elementos Aplicaciones J 2EE,


,artes de un Beans JN&0, re"erencia rapida J&B', re"erencia rapida ,aquetes de 8plicaciones 0nte%racion Beans de +esion;Entidad 57 5: 5: 53 53

Capitulo IV: (Patrones de Dise$o,


<=ue son> <,ara que se usan> ,atrones J2EE Beans de ?ac!ada @+ession ?aAadeB *T() dinamico 8plicaciones 8plicaci-n Beans de ?ac!ada en comunicaci-n 'apa 9eb 25 25 22 22 27 2/

Ne%ocio

Capitulo V: (.etBeans 01 2erramientas par a Dise$o de %oft&are,


Entorno de Trabajo 'reacion aplicaci-n E81 @981;EJBB 8%re%ar &river de 'oneccion a una Base de &atos ,ost%re+=) *erramienta para manejo de base de datos 8%re%ar (odulo U() 'reacion (odelo 'asos de uso 'reacion &ia%ramas de 'lase 'reacion (odelo de 8nalisis 'reacion (odelo de +ecuencia Exportar a 0ma%en cada (odelo Ceneracion de 'odi%o a partir de los (odelos 0n%enieria 0nversa 2: 23 45 47 75 74 72 73 25 22 22 27

!apitulo 3'4 ( Aplicaciones de E5emplo,


'onocimientos Necesarios 8plicaci-n *ola (undo 'alculadora 8%enda Tele"onica /4 /4 /3 :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

Plataforma Ja#a
En el desarrollo de nuestra carrera se nos !a capacitado en la ma oria 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 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 so"t#are en el cual se ejecutan

1. El Len ua5e4 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

8si como existen versiones di"erentes de pro%ramas, para la plata"orma Java tambien existen di"erentes ediciones, estas son 4D

J2ME J2SE J2EE


1. Ja#a 2 Plataform1 Micro Edition :J2ME;4 &esarrollo para articulos moviles 2. Ja#a 2 Plataform1 %tandard Edition :J2%E;4 &esarrollo para computadores 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. personales aplicaciones en %eneral. peque$os como ,&8s.

G el J1E @Java 1untime EnvironmentB que contiene solo el ambiente principales para ejecutar el so"t#are escrito en J8.8.

las bibliotecas

)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 componentes. un conjunto de sus 8,0s a la cual J2EE aporta a la especi"icaci-n de

'omo resultado basicamente, tenemos un paquete en el que podemos desarrollar aplicaciones utilizando tecnolo%ias #eb, por medio de aplicaciones J8.8.

Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x

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 &e todos estos nos centraremos basicamente en el estudio deD EJBs J%P %er#lets %8L mail.

&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 Java a travez de una aplicaci-n #eb. la ejecucion de pro%ramas

%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

Pro ramacion 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

'nternet

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.

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 inclu e el modulo 981 EJB.

Modulo EJB
En este modulo entran en jue%o varias cosas, ma or 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. a que es el encar%ado de administrar la

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 :Aablas;

Beans de Mensa5es :Acciones;

Beans de %esion :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 a la B&.. estionada por el Bean :BMP;4 contienen el c-di%o que accede

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 <es necesario re"rescar el bean con los datos de la B&> cerarla al terminar.

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 .e ocio '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 *T() dinHmico que se envLan al nave%ador se encuentran separadas. %eneraci-n de

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 @clase remota del beansB enera una llamda remota.

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

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

+i observan en la ejecucion de estos pasos, en la parte "inal, solo la clase 1emote vuelve con la respuesta no el Beans.

Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x

1<

J.D'1 >eferencia >ap ida


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.

EJB !urso J.D'

EJB Persona

)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.

EJB Persona JDB!

Base Datos

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 ma or 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.

Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x

1=

8si tendriamos mas o menos al%o asiD ,aqueteD !odi os2AML 'lasesD - colores.java - listas.java - tablas.java - encabe a!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 !odi os2AML.FG o en su "orma individual, por ejemploD import !odi os2AML.coloresG import !odi os2AML.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.

'nte racion Beans de %esionBEntidad


7Por/ue Cacer esta inte racion9 ,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, inclu endo soluciones exitosas que a !emos usado anteriormente en problemas similares. Es asL que a ma or 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 a udan 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, inclu endo 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. El uso de un bean de sesi-n como una "ac!ada @"acadeB para encapsular la complejidad de las %ession HaJadeK %ession EntitD HaJadeK Distributed HaJade interacciones entre los objetos de ne%ocio participantes en un "lujo de trabajo. El +ession ?aAade clientes. maneja los objetos de ne%ocio proporciona un servicio de acceso uni"orme a los

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 ma or 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 Aplic aciones


)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 ma orLa 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 pasaremos por parametro CET el nombre de usuario. a Eliminar otro @idaccionT4B le

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.

>idaccionT2UnicOTuser7

>idaccionT4UnicOTuser7

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 .e ocio


)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

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

Menu Principal Barra de 2erramientas

HicCas de ProDectos1 ArcCi#os D %er#icios

.a#e ador de !lases1 Metodos D ArcCi#os

Area de traba5o

%alida de e#entos

Entonces tenemos las si%uientes areasD Menu Principal4 para manejar cada parte del NetBeans !erramientas, sistema de versiones, ventanas, a uda, etc. Barra de 2erramientas4 atajos para crear, abrir pe%ar elementos, compilar ejecutar, etc. a sean pro ectos,

%uardar pro ectos, copiar

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#e ador 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.

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 ,1EJE'T. seleccionar NE9

'uando estemos en el seleccionamos ENTE1,10+E 8,)0'8T0EN.

lue%o en la lista derec!a ENTE1,10+E

,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, apareceran los nombres de los modulos EJB 981.

-* en la parte in"erior

'uando estemos listos, pinc!amos ?0N0+*, de la aplicaci-n.

en las "ic!as de trabajo apareceran los tres modulos

En ellos se crean los si%uientes arc!ivos, de los cuales los mas importantes sonD

Enterprise Beans4 almacena todos los beans creados. !onfi uration 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 PacMa es4 '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 &e este modulo tenemos los si%uientes itemsD

-1

@eb Pa es4 contiene todos los arc!ivos de la capa #eb, ima%enes, arc!ivos *T(), arc!ivos J+,.

!onfi uration Hiles4 arc!ivos de con"i%uracion como los del modulo EJB, se deben tratar con cuidado i%ual que los anteriores.

%ource PacMa es4 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.

A re ar Dri#er de !oneccion a una Base de Datos Post re%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 enc entra detallada instalacion de la estacion de trabajo! de ig al forma en el man al de

www.postgresql.org/download/ (seleccionar JDBC Driver)

Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x jdbc.postgresql.org (seleccionar el driver JDBC 2 EE para la version 8.0)

-2

" ando #a tengamos el driver descargado$ nos vamos a la ficha Services de la barra lateral i%q ierda$ # e&pandimos el icono D ! B "E"

En el tendremos las sig ientes opciones

Pinchamos con el boton derecho # seleccionamos #E$ D%&'E%:

Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 'hora deberemos b scarlo # agregarlo para ello pinchamos el boton b scamos en el directorio donde f e descargado.

-DD # lo

" 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 n eva coneccion a na base de datos$ Para ello pinchamos con el boton derecho sobre el driver agregado$ en este caso (ostgre")* # seleccionamos Connect +sing.

L ego deberemos darle la direccion de la base de datos$ ingresar n estro nombre de s ario # contrase,a

Seleccionamos la ficha dvanced para seleccionar el esq ema con el q e deseamos trabajar$ q e 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 q e hemos creado la cone&i-n a la base de datos$ podremos ver tres carpetas cada na representa los tres elementos a los q e tenemos acceso$ sin embargo no podemos crear Procedimientos (carpeta Proced re! #a q e .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 n estra tabla$ seleccionar tipo de dato tipo de campo # tama,o en el caso de los tipo varchar.

Para esta pr eba crearemos aparecen aca abajo

na tabla llamada tabla0pr eba$ con los campos q e

Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x

-0

" ando esten todos los cambios agregados presionamos el boton () # estara lista$ c ando se genere se agregara el icono de esta a la carpeta ! B*E".

'hora crearemos otra sig ientes campos

tabla

para

relacionarla

con

la

tabla0pr,eba

con

los

" ando se genereren las dos tablas$ las veremos en n estra ficha de cone&iones

'hora deberemos crear la clave foranea de la tabla tabla0pr,ebas con codigo SQL.

datos0tabla0pr,eba

hacia

la

Ejec,tar codigo ")*


Para ejec tar 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 ejec tar instr cciones SQL$ solo es posible ejec tar na o varias instr cciones seg idas no por parte o por selecci-n #a q e al escribir varias las ejec ta de forma sec encial$ ha# q e tener especial c idado. Entonces tenemos el area de trabajo # la ventana (12P12 donde veremos los res ltados de c alq ier tipo de cons lta q e reali%emos

Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 'si ahora ejec taremos el codigo para crear la datos0tabla0pr,ebas # para ingresar n dato a cada na vista. El icono .ejec ta el codigo.

-7 clave foranea de la tabla na para posteriormente crear

" ando sea ejec tado en la ventana (12P12 (barra lateral i%q ierda! 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 ejec tamos para q e no sea ejec tado n evamente # 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 verificar q e esten ingresadas. n select a cada

-< na de las tablas para

"omo #a tenemos por lo menos n dato ingresado a cada no$ deberemos hacer vista para ver los datos de ambas tablas q e estan relacionados.

na

Crear ,na vista


Para ello tenemos dos formas de hacerla$ la primera es con codigo$ # la seg nda es con el editor de cons ltas. 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 cons lta con el editor basta con presionar con el boton derecho sobre c alq iera de las tablas$ # seleccionar DE"&-# )+E%3$ a contin acion nos abrira na ventana donde aparecera la tabla seleccionada solamente debemos seleccionar los campos q e deseamos mostrar e ir editando s s parametros como orden$ condiciones$ etc. En este caso pinchamos sobre datos0tabla0pr,eba # deleccionamos la opcion antes nombrada (DE"&-# )+E%3).

Si deseamos agregar en el area blanca seleccionamos DD ! aparecera na linea

otra tabla$ como tabla0pr,ebas$ pinchamos con el boton derecho al ado del c adro de la tabla datos0tabla0pr,ebas # B*E donde agregamos la tabla0pr,ebas$ c ando se agreg e q e m estra la relacion entre ambas tablas.

Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x

+*

" ando hallamos seleccionado los campos de seamos debemos ejec tar la cons lta presionando con el boton derecho en el area blanca # seleccionar %+# )+E%3$ en el caso de enviar alg n error bastara solamente con copiar el codigo q e ha sido creado # pegarlo en na n eva area de trabajo$ o editor de codigo SQL$ para probarla$ # l ego si deseamos convertirla en vista$ solo escribimos al inicio de la cons lta C%E !E '&E$ 4no5bre6 ".

Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x

+1

A re ar Modulo UML
,ara la creacion de espacio de trabajo U(), debemos presionar en el menu ?0)E NE9 ,1EJE'T. seleccionar

)ue%o seleccionar la 'ate%oria UML presionamos NEVT.

seleccionar PlataformN'ndependent Model.

)ue%o

)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 presionamos ?inis!D

)e colocamos el nombre,

'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 !aso s 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 Dia ramasUML, 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 Actor Extend 'nclude Association 4 4 4 4 4 que dibuja el circulo representativo del caso de uso. dibuja un actor participante en el modelo. que dibuja un WWextendXX desde uno de los casos a otro. que dibuja un WWincludeXX !acia otro caso de uso. 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 ,ara a%re%ar una extension, seleccionamos la !erramienta Extend.

+6

,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 Dia ramas 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 Dia ramasUML, seleccionamos .E@ lue%o D'A">AM.

Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x G seleccionamos !LA%% D'A">AM.

+0

+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 8!ora seleccionamos correspondientes la !erramienta 8ssociation, pinc!amos cada elemento

6* sus

8sociaremos,

1e%istro de Usuario con, Error de 1e%istro 8utenti"icar Usuario con )o%in Usuario. Usuario con 1e%istro 8utenti"icar.

1e%istro Usuario.

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 area de trabajo. la dibujamos en el

&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 ,ara a%re%ar una secuencoa seleccionamos la !erramienta )i"e)ine

62

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 8!ora %eneramos los eventos de cada secuencia, para mensaje directo entre una pinc!amos la !erramienta 8s nc!ronous (essa%e otra

6-

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 Nos colocara un mensaje por de"ecto, !acemos doble clic sobre para cambiarloD

6+

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 'ma en cada Modelo


Bastara solamente con pinc!ar el boton indicado en la barra de !erramientas del area de trabajo.

"eneracion de !odi o 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

'n enieria '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 @,8'F8CEB.

al de paquete

Una vez creada la clase, !acemos doble clic en ella editar el codi%o.

se nos abrira el espacio de trabajo, para

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 pro ectos 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 pro ecto seleccionamos UML lue%o >E3E>%E E."'.EE>ED JA3ANPLAAAH?>M M?DEL.

8continuacion colocamos el nombre del pro ecto seleccionamos el modulo al que queremos !acerle in%enieria inversa, puede ser al EJB o al modulo @A>

,resionamos H'.'%2 cuando estemos listo clases que ten%amos en ese momento.

se %enerara el nuevo modulo UML con todas las

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 de codi%os *T(). Ceneracion de *T() dinamico. clausulas de trabajo dentro

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 pro ecto Enterprise

+eleccionamos nuestro servidor de aplicaciones este caso *ola(undo.

le damos el nombre a nuestra aplicaci-n, en

Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x 'uando este creado veremos los si%uientes tres modulos en nuestra "ic!a de pro ectos.

0+

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 editarlo. !acemos doble clic sobre nuestro index para

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 (odi"icamos nuestro codi%o lo dejamos de la si%uiente "orma.

06

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 paquete al que deseamos este asociado.

el nombre del

Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x )e daremos los si%uientes nombres. ,resionamos si%uiente tal cual le damos ?0N0+*.

00 en la pantalla si%uiente la dejamos

'uando se cree, veremos en la "ic!a de pro ectos, 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 &escomentamos dejamos el codi%o como si%ue a continuacion.

07

'uando este listo, compilamos principal seleccionamos 1UN.

ejecutamos de la si%uiente "ormaD clic derec!o sobre el modulo

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 datos enviados en una tabla. enviarlo a un servlet, que este a su vez muestre todos lo

,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. 2. Ejecutaremos por medio de un +ervlet. 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 es un beans, remoto sin estado.

+tateless, para indicar que

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 ADD BU%'.E%% MEA2?D. seleccionamos EJB MetCods lue%o

Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x )ue%o nos pedira de"inir un nombre de "uncion, un tipo de dato de retorno, parametros de entrada a la "uncion. 8si a%re%amos un metodo llamado +U(81 que retornara un +trin%, parametros de entrada de tipo entero llamados numV numG.

71 la descripcion de los que contendra dos

&e la misma "orma a%re%amos el resto para el metodo 1E+T81, (U)T0,)0'81 G !acemos su codi%o individualmente de la si%uiente "ormaD

&0.0&01.

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 8 continuacion nos pedira seleccionar el beans al que deseamos llamar. Expandimos el modulo EJB, seleccionamos 'alculadora+B presionamos EF.

7+

'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. sucede incluso cuando llaman a una clase comun corriente.

Esto

?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 llamada al beans que creamos en la capa ne%ocio.

a%re%ar la

Manual de desarrollo basico Plataforma J2EE en Ubuntu 7.x +e %enera el looOUp

77

G lue%o creamos la "uncion encar%ada de solicitar las operacionesD 'uando comenzamos a di%itar el metodo, normalmente nos olvidamos del tr Kcatc! 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 'uando este lista, a%re%amos a nuestro J+, la librerLa que contiene la claseD

7<

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 pa e importSTPa/uete.FT QU WYZpa%e contentT peTQtext[!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'ontentKT peQ contentTQtext[!tmlP c!arsetTUT?K:QX WtitleXEjemplo 'alculadoraW[titleX W[!eadX Wbod X PQ operacion operacion S ne& operacion:;G QU Pform actionST9T metCodST etTU WtableX WtrX Wtd colspanTQ2QX0n%rese NumerosW[tdX W[trX WtrX WtdXNumero VW[tdX WtdXWinput t peTQtextQ nameTQnumVQ idTQnumVQXW[tdX W[trX WtrX WtdXNumero GW[tdX WtdXWinput t peTQtextQ 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 t peTQ+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


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[bod X W[!tmlX

7=

&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, acciones se%Rn un 0& de operaci-n, que de"inimos en nuestro codi%o.

se ejecutan las

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.

A enda Aelefonica
)o primero que necesitan es crear una tabla en una base de datos llamada ,ersonas conten%a los si%uientes camposD idpersona @intB nombre @varc!arB "ijo @intB celular @intB email @varc!arB le daremos los si%uientes 0ds a cada unoD que

8demas idnti"icaremos las si%uientes acciones

.ariable idaccion idaccion idaccion idaccion idaccion

.alor 8ccion[Evento 5 2 4 7 2 8%re%ar nuevo (odi"icar persona Eliminar 'on"irma (odi"icacion 'on"irma 0n%reso ,ersona

&escrpcion (uestra "ormulario de in%reso persona (uestra "ormulario con los datos a modi"icar Elimina persona de la base de datos

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 ,or ejemplo de la si%uiente "ormaD

<1

&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 )ue%o los demas de la si%uiente "ormaD

<2

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 actualizara la pa%ina veremos lo si%uienteD

nos enviara un mensaje, se

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