j2ee_jsf(Ejemplo Con Base de Datos)

  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 1Creando una Aplicacin J2EE con JSF y Base de Datos en NetBeans5.5Autor: Wilder Lpez Melndez1 [email protected]Fecha: 28 de junio de 2007I.- IntroduccinComo analistas y programadores vamos desarrollando a diarionuestras habilidades para resolver problemas usuales que sepresentan en el desarrollo del software. Por cada problema que senos presenta pensamos distintas formas de resolverlo, incluyendosoluciones exitosas que ya hemos usado anteriormente en problemassimilares. Es as que a mayor experiencia que tengamos, nuestroabanico de posibilidades para resolver un problema crece, pero alfinal siempre habr una sola solucin que mejor se adapte a nuestraaplicacin.Por lo tanto, los patrones de diseo son soluciones exitosas aproblemas comunes. Existen muchas formas de implementar patrones dediseo. Los detalles de las implementaciones son llamadasestrategias, es decir soluciones tpicas de desarrollo. Hay patronesque abarcan las distintas etapas del desarrollo; desde el anlisishasta el diseo y desde la arquitectura hasta la implementacin.Un patrn es una solucin comprobada para un problema en uncontexto, cuanto ms amplio sea el contexto, ms amplio ser el campode aplicacin del patrn, en trminos de software, los patrones sonesencialmente la destilacin de la sabidura obtenida porespecialistas sobre lo que funciona bien a la hora de especificar,disear e implementar software.(GoF, que en espaol es la pandilla de los cuatro) desde luegoque ellos no son los inventores ni los nicos involucrados, pero esefue luego de la publicacin de ese libro que empez a difundirse conms fuerza la idea de patrones de diseo. El grupo de GoFclasificaron los patrones en 3 grandes categoras basadas en supropsito:Creacionales: Patrones creacionales tratan con las formas decrear instancias de objetos. El objetivo de estos patrones es deabstraer el proceso de instanciacin y ocultar los detalles de cmolos objetos son creados o inicializados.Estructurales: Los patrones estructurales describen como lasclases y objetos pueden ser combinados para formar grandesestructuras y proporcionar nuevas funcionalidades. Estos objetosadicionados pueden ser incluso objetos simples u objetoscompuestos.Comportamiento: Los patrones de comportamiento nos ayudan adefinir la comunicacin e iteracin entre los objetos de un sistema.El propsito de este patrn es reducir el acoplamiento entre losobjetos.La arquitectura Modelo-Vista-Controlador es un patrn de diseoclsico que es muy usado en aplicaciones que requieren la habilidadde mantener mltiples vistas del mismo dato; es decir, se usa paraadministrar la informacin y notificar algn cambio en la misma, porlo que su funcionalidad est dirigida a un propsito comn.Utilizando este tipo de patrones conseguimos: ms calidad, mejormantenibilidad, perder el miedo a empezar un proyecto desde cero,pero una de las cosas ms importantes es la normalizacin yestandarizacin del desarrollo de Software.En este artculo vamos a ver un framework de desarrollo que sigueel patrn MVC. Los frameworks son muy tiles ya que nos permiten notener que reinventar la rueda cada vez. Es decir el framework noslo sigue el patrn, sino que me da unas directrices de trabajo, ynos da gran parte del trabajo ya hecho.
  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 2JSF (Java Server Faces) es un framework de desarrollo basado enel patrn MVC (Modelo Vista Controlador). Al igual que Struts, JSFpretende normalizar y estandarizar el desarrollo de aplicacionesweb. Hay que tener en cuenta JSF es posterior a Struts, y por lotanto se a nutrido de la experiencia de este, mejorando algunas susdeficiencias. De hecho el creador de Struts (Craig R. McClanahan)tambin es lder de la especificacin de JSF.Vamos a crear una aplicacin tpica de mantenimiento de dos tablasrelacionadas que me permitan Crear un nuevo registro, modificarlo,eliminarlo y mostrar en una lista los registros de las tablas.Debo mencionar que realizar este tipo de aplicacin por mssencilla que parezca sin utilizar un framework demanda mucho tiemposu realizacin, obviamente respetando todas las reglas del PatrnMVC, es decir crear una clase que me permita manejar la Base deDatos (Modelo), crear un servlets (controlador) para controlartodas las transacciones, y finalmente los JSPs (Vistas) que mepermitirn mostrar los datos al usuario en formato HTML, en el reade Desarrollo donde trabajo, desarrollamos estos tipos deaplicaciones, bajo este esquema.II. Desarrollo de la aplicacin JSFPrimero empezaremos definiendo nuestra Base de Datos que sercomo sigue:Aqu observamos la relacin de las tablas facultad a escuela, unafacultad puede tener una o muchas escuelas, esto lo vemos por queel campo (PK) Facultad.idfacultad a migrado a la tablaEscuela.idfacultad como (FK).Despus de descargar el NetBeans 5.5 desdehttp://www.netbeans.org vamos a crear un nuevo proyecto
  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 3Elegimos una aplicacin Web (Web Application)
  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 4Elegimos el nombre el directorio de trabajo del NetBeans, estopara mi es fundamental, siempre insisto con mis alumnos a prestaratencin a ese cuadro de dialogo, por que aqu defino donde seguardar mi proyecto.Elegimos soporte para trabajar con el FrameWork JavaServer Faces- JSF
  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 5Ahora tendremos un entorno de trabajo de JSF, por defecto nosproporciona dos JSPVamos a conectarnos a la base de datos donde se encuentrannuestras tablas Facultad y Escuela.2.1. Conexin a la Base Datos en Forma NativaPara ello debemos utilizar los drives del motor de base de datosdel que se esta utilizando, para este ejemplo estamos utilizandoSQL Server 2000, tengo los drivers en una carpeta, y es necesarioprimero copiarlos a la carpeta src en la carpeta donde se estagrabando nuestro proyecto. Para nuestro caso la ruta exacta es:D:\DataWLM\Proyectos\Articulos\webJSF\src\javaCopiar la carpeta lib, a este lugar
  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 6Comprobamos si el paquete lib ya se muestra en nuestroproyecto.Aadimos los .Jar al paquete Libraries, pulsando clic derechosobre el paquete y seleccionando la opcin Add JAR/FlderSeleccionamos la carpeta donde esta la carpeta lib que copiamosen el prrafo anterior y empezamos a aadir uno a uno los componentesmbase.jar, mssqlserver.jar, msutil.jar, sqljdb.jar
  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 7Finalmente debemos tener en el paquete Libraries todos loscomponentes aadidos.
  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 8Como ya tenemos los componentes para poder conectarse con elmotor de Base de Datos, pasemos hacer justamente eso. Para ellopulsamos clic en Runtime, DatabasesPrimero debemos crear el Driver, clic derecho New Driver, luegopulsamos clic en Add y aadiremos el Jar mssqlserver.jarAhora ya tenemos conectado el driver SQL Server 2000, pulsamosclic derecho Connect Using, en esta ventana tenemos que colocar elservidor el puerto y la base de datosjdbc:microsoft:sqlserver://:[;DatabaseName=], en nuestro caso vamosa utilizar lo siguiente:jdbc:microsoft:sqlserver://localhost:1432;DatabaseName=demo.Usuario y clave sa
  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 9Cambiamos el HOST, PORT y DB2.2. Conexin a la Base Datos Por medio del ODBCTambin pueden conectarse a la Base de Datos por medio delWindows con ODBC, con esta opcin no necesitas tener los drivers delmotor de la Base Datos, el Sistema Operativo se encarga de hacer unpuente entre el JDBC de java el Motor de BD. Seguramente te estarspreguntando cual de las dos opciones es la ms adecuada y la msrpida?. La respuesta es, la primera opcin, conectarse por medio delos Drivers que es la forma Nativa del JDBC. ODBC lo utilizamos confines acadmicos, aparte de que esta amarrado al S.O Windows.Para crear un ODBC debemos entrar al Panel de Control de Windowsy seleccionar la opcin Herramientas Administrativas Orgenes dedatos (ODBC)
  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 10En esta cuadro de dialogo debemos agregar un origen de datos deusuario, pulsando clic en el botn Agregar.Seleccionamos el motor de base datos en nuestro caso SQLServer.
  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 11Ahora colocamos un nombre y seleccionamos la base de datos, denombre pondremos dbDemo, y como servidor (local) con estolevantamos la BD instalado en forma local.Configuramos el modo de autentificacin de la base de datospuedes probar con las dos opciones autentificacin de Windows o laautentificacin de Sql Server, estas autentificaciones depende decmo configuraste el SQL Server, en mi caso seleccionar la primeraopcin.Seleccionamos la base de datos con la que trabajar, aquseleccionamos la BD Demo.
  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 12Pulsamos clic en Finalizar y con esto ya tenemos creado nuestroDSN de usuarioPulse clic en el botn probar origen de datos, si muestra laventana de resultados de pruebas el mensaje PRUEBAS COMPLETAMENTECORRECTAMENTE, todo fue exitoso. Pulse aceptar en todas la ventanasabiertasNos vamos al entorno de NetBeans 5.5, a la pestaa Runtime paraconectarnos al ODBC que hemos creado. Pulsar clic derecho en elDrriver JDBC-ODBC Bridge y elegimos la opcin Connect Using
  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 13En esta ventana colocamos el nombre del ODBC que creamosanteriormente en el campo Database URL, y pulsamos OK.Si logramos conectarnos a la Base de Datos tendremos una ventanacon las tablas existentes. Pulse clic derecho sobre cualquier tablay seleccione la opcin View Data, para mostrar los datos.
  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 142.3. Creando el la aplicacin Mantenimiento de las tablas Escuelay Facultad con JSF1 Nos vamos a Project y pulsamos clic derecho en el proyectowebJSF del sub men seleccionamos New Entity Classes fromDatabaseSi les presenta un mensaje de que no puede crear clases entityen este Project, debemos subir el nivel del origen de java a level1.5, tal como se muestra en la figuraPara solucionar este problema, vamos a pulsar clic derecho sobreel proyecto y seleccionamos la opcin Properties, y cambiamos elSource Level a 1.5, con esto podremos crear una clase de tipoEntity clases desde base de datos.
  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 15Repetimos el paso 1 y seleccionamos la base de datos en la opcinDatabase Connection, colocaremos la conexin jdbc:odbc:dbDemo quecreamos anteriormente; con esto tendremos cargado las tablas que enella existe, trasladamos la tabla Escuela al lado derecho con elbotn Add >, automticamente pasar la tabla Facultad porque seencuentra relacionado, finalmente pulsamos el botn Next >Escribimos un paquete llamado demo para agrupar las clases quese van autogenerar, tambin debemos pulsar clic en el botn CreatePersistente Unit, en el cuadro de dialogo pulsamos create. Pulseclic en el botn finalizar para terminar
  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 16Con esto tenemos dos clases creados de tipos persistentes, laclase Escuela y la clase Facultad.El cdigo fuente de la clase Escuela.javaNombre del paquete acrearse
  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 172. Ahora nos toca crear los JSF Pages a partir de las clasescreadas, para ello pulsar clic derecho sobre la carpeta Web Pages,seleccionamos del sub men la opcin New JSP Pages from EntityClassSeleccionamos las clases de donde se crearn los JSF, pulsandoclic en el botn Add All >>, pulsamos Next.
  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 18Nos aseguramos que el paquete sea demo Pulsamos clic en el botnfins.Con esto hemos creado todos los JSF y los controladores que nospermitirn gestionar las tablas escuela y facultad, como podrsobservar, ahora tenemos dentro de Web Page los paquetes escuela yFacultad, dentro de ellos tenemos los jsps Detail, Edit, List, yNew que incluyen en su cdigo sentencias de JSF, a esto lo conocemoscomo las vistas, del M-V-C. Tambin contamos con dos clasesEscuelaController y EscuelaConverter, la primera representa alcontrolodor del M-V-C, la segunda sirve de enlace entrecontroladores. Las clases creados en el punto 1 representan almodelo del M-V-C
  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 19Vamos a cambiar los datos que se encuentran en el index.jsp.Por estos datosEjecutemos la aplicacin pulsando clic derecho sobre el proyectoy seleccionando la opcin Run Project del men contextual.
  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 20Pulsando clic en el link Mantenimiento de facultad tenemos lalista de facultades con los botones de New, Edit DestroySi seleccionamos la opcin Edit, podremos editar los datos de lafila seleccionada pulsando clic en Save guardaremos los datos, todoesto es administrado por FacultadController.java por medio de losBeans creados.
  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 21Tenemos los datos cambiados y un mensaje enviado por elControladorLo mismo observamos con mantenimiento de escuela.
  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 22Para crear una nueva escuela pulsamos New EscuelaPodemos definir la cantidad de registros a mostrar en la lista,entrando a la clase EscuelaController.java, y all cambiamos lavariable batchSze = 5;Validacin en JSFJSF traen validacin que se pueden hacer a campos de ingreso, detal forma que no tengas que programar la validacin de la misma.Analicemos New.jsp del paquete Facultad.
  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 23Para validar el campo de ingreso de datos sea obligatorio bastarcon poner la propiedad required=true. Para validar la longitud delingreso de un campo tenemos que utilizar la etiqueta
  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 24Observemos ahora el archivo faces-config.xmlEste fichero es donde configuramos JSF. Es como el pegamento queune modelo, vista y controlador. En este fichero por un ladodeclaramos los beans que vamos a utilizar para recoger lainformacin de los formularios, y por otro lado las reglas denavegacin.
  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 25
  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 26
  • Java Server Faces (JSF) NetBeans 5.5Copyright Wilder Lpez M. 27III. Conclusiones.Como habrn notado no tuvimos que trabajar con HttpSession.HttpRequest, como tienen los servlets, pero esto no es necesario enJSF.Hemos trabajado generando las cosas a partir de una tabla de BD,y luego metimos mano en el cdigo para darle forma y validaciones,esto es fastidioso para alguno desarrolladores que vienen deMicrosoft.Existen Entornos que nos permiten trabajar directamente losdatos del diseo, tal como lo hace Swing, NetBeans cuenta con elVisual Web Aplicattion, tambin existe el jCreator que tren incluidoel Framework JSF.Los Frameworks nos ahorran tiempo a la hora de desarrollar unaaplicacin WEB, pero debemos comprender tambin que quedamos atadosal mismo.Es muy importante tener definidos nuestra bases de datos a lahora de desarrollar aplicaciones Web, tambin es importante trabajaren forma nativa con la conexin.Queda como parte de Ud. Investigar ms sobre este Frameworks parair probando su productividad, estoy seguro que los nuevosdesarrolladores lo adoptarn sin ningn inconvenienteEn nuestro pas el Framework ms utilizado es el Struts, y migrara otro demanda muchos recursos econmicos y tiempo, algo que lasempresas no estn dispuestos a invertir.1Acerca del Autor!»# $%&'(!)*&+'(,- . ,!»# /0 1 . 2345.*
  • Publicaciones Similares