Вы находитесь на странице: 1из 9

Introduccin Al Desarrollo De Aplicaciones Empresariales.

Tema: Prueba No. 5 Individual.

Nombre: Guillermo Henrquez. Fecha: 11 de Julio de 2011.

1.1.- Defina claramente que se entiende por Patrn de Diseo (10 ptos.) Podemos definir patrn de diseo, como una alternativa para darle solucin a una problemtica en el diseo de un software, o tambin podemos decir que es una forma prctica para describir los aspectos a considerar en el desarrollo de un software. Es comn que al momento de programar algn tipo de software utilicemos trozos de cdigo de otro software que hayamos realizado anteriormente, podramos decir que un patrn de diseo podra ser un trozo de cdigo reutilizable en diversas aplicaciones, para esto bastara con que transportemos las libreras utilizadas a cada uno de nuestros software, tambin es importante que estos patrones sean modificables, para as poder ampliar la gama de usos que podemos darles. 1.2.- Describa claramente qu problema soluciona el Patrn de Diseo Fachada (Facade) (10 ptos.) El patrn Fachada facilita una interfaz unificada de alto nivel para un subsistema, que oculta las interfaces de bajo nivel de las clases que lo implementan. Con esto se consiguen dos objetivos fundamentales: Hacer el subsistema ms fcil de usar y desacoplar a los clientes de las clases del subsistema. 1.3.- Ejemplifique y explique en forma simple, a nivel de cdigo java de consola, un uso posible para el Patrn de Diseo Facade (10 ptos.) public class Cine { public Cine() { } public void getPeliculas(); } public class User{ public static void main(String args[]){ Facade facade = new Facade(); facade.getPeliculas(); } } public class Facade { private Cine Peliculas = new Cine(); public void getPeliculas() { return Peliculas; } public void setPeliculas(String Peliculas) { this.Peliculas= Peliculas; } 2

La clase Cine nos permite modificar algunos datos de las pelculas como por ejemplo el valor de la entrada o el horario de la funcin, la clase Facade es la que contiene los mtodos que sern usados por la clase User para retornar algn valor o ingresar un nuevo valor. 2.- Sevlet Controlador, EJB y JPA (70 ptos.) En la pregunta 1 de la prueba anterior se present la siguiente figura que muestra un ejemplo de un listado de registros de un sistema cualquiera:

En aquella pregunta se le solicit que usara HTML y JSTL para resolver el problema de la actualizacin de los registros. En esta prueba se le solicitar que resuelva el problema usando la arquitectura propuesta por el Tutorial Gua de la asignatura, es decir que considere la problemtica anterior en el contexto de las capas JSP, Servlet Controlador, EJB y JPA. En ese sentido las preguntas a realizar sern las mismas propuestas en aquella prueba pero actualizadas al uso de la arquitectura definida por el Tutorial Gua, a saber: 2.1.- Construya un listado, como el anterior, que incluya un link para editar el registro y otro para eliminarlo, cada link debe estar asociado a una figura como la que se presenta en la imagen de ejemplo. Explique claramente cmo actan el Servlet Controlador, la capa EJB y la capa JPA en el logro de este objetivo. (20 ptos.). Para dar solucin a este tem, cree una base de datos, que contiene dos tablas, una tabla llamada amigos, la cual esta formada por (Nombre, Apellido, Rut e Id_Ciudad), y la segunda tabla llamada Ciudades cuyos atributos son (Id_Ciudad, N_Ciudad). En la tabla Ciudades Id_Ciudad es clave primaria, y en la tabla Amigos Id_Ciudad es clave fornea, de esta forma es como se crea la relacin entre ambas tablas.

Imagen 1 Mtodos get y set desde la clase de persistencia Amigos. Los mtodos que se pueden apreciar en la imagen 1 se encuentran en las clases de persistencia de la aplicacin. Estas clases son las que nos permiten interactuar con la base de datos mediante orientacin de objetos, con los mtodos get obtenemos los registros desde la base de datos, y con los mtodos set podemos modificar registros existentes y adems agregar nuevos registros a nuestra base de datos. Tambin fue necesario crear las clases EJB o Enterprise Java Beans, la funcin de los Beans es manejar los datos como si fueran objetos desde el servidor que en este caso es glassfish, podemos entender entonces que estos objetos son los Beans, y ellos son los que hacen referencias a las clases de persistencia. A su vez tambin fue necesario implementar una clase java Servlet para poder crear los diversos mtodos que nos permiten manejar y trabajar de mejor manera con nuestra aplicacin web puesto que el Servlet nos da la posibilidad de usar las bases de datos, crear diversas variables segn se requieran, etc.

Imagen 2 (En esta imagen podemos apreciar como crear los EJB para cada una de las tablas presentes en la base de datos). Para poder mostrar datos en la tabla de nuestra aplicacin web es necesario hacer referencia a travs del EJB de la tabla Amigos, pues este est sealando todos los registros que esta contiene.

En nuestro servlet obtenemos los valores que contiene nuestra tabla en la base de datos mediante el uso de los siguientes mtodos apreciables en la imagen 3.

Imagen 3 Al analizar este fragmento de cdigo, podemos notar que estamos haciendo una referencia al EJB de la tabla Amigos, y a su vez estamos asignado una variable amigos, la cual utilizaremos en la pgina JSP, el mtodo findAll(), nos permite hacer una seleccin de datos, tal como si fuera un Select * From de SQL.

Por medio de la variable amigos el ciclo forEach se encargara de obtener los datos de la tabla amigos, todo esto es posible gracias a los mtodos presentes en las clases de persistencia get y set, los que utilizaremos mediante el siguiente fragmento de cdigo.

Para poder visualizar las imgenes utilizadas en la tabla para editar y borrar registros es necesario hacer referencia a ellas de la siguiente forma.

Si analizamos el cdigo podemos apreciar que estamos haciendo referencia a otras pginas jsp, las cuales son Edicin y Borrar, donde indicamos la accin que realizara cada una de ellas, y para saber sobre que registro actuar ya sea editndolo o borrndolo, le indicamos el id respectivo de cada registro que se seleccione. El conjunto de acciones antes mencionadas son lo que nos permiten a travs de la capa del controlador servlet, poder trabajar con los objetos presentes en las clases de persistencia respectivas as como tambin capturar las distintas variables que participan en el proceso, y sin dejar de lado los EJB respectivos. 5

Una vez que ya todo esto est en orden es posible enviar los datos necesarios por la url de la pgina y utilizar los mtodos requeridos por la edicin o insercin de registros. Imagen 3

En la imagen 3 podemos apreciar el resultado final de nuestra aplicacin, en la cual se encuentra una tabla que contiene los registros de las dos tablas presentes en la base de datos y las imgenes que se encargan de referenciar las acciones de edicin y eliminacin de registros. 2.2.- Construya l o los mdulos que permiten editar y guardar los cambios del registro seleccionado a travs del botn editar, ello considerando la arquitectura propuesta y explicando claramente cmo interactan Servlet Controlador, capa EJB y capa JPA. (30 ptos.). Para que podamos editar un registro que deseemos, seleccionamos el botn de edicin, y este es el que se encarga de realizar la referencia a esta accin por medio del controlador Servlet, y este se encarga de obtener el id del registro seleccionado, el cual est presente en la url de la pgina. En la imagen 4 podemos ver el cdigo que hace posible esta accin.

Imagen 4

Analizando el fragmento de cdigo que nos muestra la imagen 4 podemos extraer que el String idciudad es capturado de la url de la pgina y posteriormente es transformado a un tipo de dato propio de JPA BigDecimal, este mismo hace referencia al id del registro seleccionado, dicho id ser utilizado por el mtodo amigosFacade.find(id), esto nos devolver el registro que queremos 6

editar tal cual como si estuviramos trabajando en la base de datos, una sentencia sql con la cual podemos comparar esta accin sera ms menos (select * from amigos where id_ciudad=id ), entonces esta consulta referencia la fachada amigos y el contenido de la fachada ciudad. Imagen 5

Como podemos ver en la imagen 5, realizamos una referencia por medio del EJB o Bean al registro que queremos mostrar en nuestra aplicacin, tal cual como es apreciable en amigo.idCiudad, o en amigo.nombre en el primero hace referencia al id del registro y el segundo al campo nombre del registro. Imagen 6

En la imagen 6 podemos ver el registro que queremos editar, producto de la sentencia anteriormente realizada por nuestro controlado Servlet y el cdigo de nuestra pgina JSP.

Imagen 7

En la Imagen 7 se muestra como obtenemos mediante los campos de texto o input por medio del metodorequest.getParameter() el dato que deseamos capturar. Posteriormente el id del registro se transformara a BigDecimal, (un tipo de dato de las clases JPA) Despus de haber llevado a cabo la transformacin del id, este pasa a ser un dato del objeto amigo, y as es posible referenciar que registro es el que vamos a editar, ahora se actualiza la variable presente en la clase JPA amigos y tomar el valor del dato ingresado en el campo de texto de nuestro formulario. De esta manera obtenemos el objeto amigo, con los datos entregados por cada uno de los mtodos y es ingresado al EJB amigos para poder realizar una referencia al mtodo edit, el cual se encargara de realizar la edicin al registro anteriormente capturado. 2.3.- Finalmente, haga lo mismo solicitado en la pregunta 2.2 pero para operacionalizar la funcin de eliminar el registro seleccionado a travs del botn eliminar (20 ptos.). Al igual que con la edicin del registro, para borrar basta con que seleccionemos la imagen que hace referencia a esta accin, y automticamente se enva el id del registro por la url y la sentencia de borrado de registro es ejecutada por nuestro controlador Servlet. Imagen 8

En la imagen 8 podemos ver el fragmento de cdigo con el cual se efecta la eliminacin de registros, como se menciona anteriormente el id es obtenido de la url en este caso gracias a la variable id_ciudad, y gracias al mtodo requestQueryString() transformamos el id que viene como un objeto, a un tipo de dato String, posteriormente ese id pasa a ser un dato de tipo BigDecimal y 8

as podr ser utilizado por amigo un objeto perteneciente al EJB amigosFacade, con el cual se indica cual es el registro de la base de datos que queremos borrar. Posteriormente a este proceso utilizamos el objeto amigo el cual contiene el id del registro seleccionado para ser borrado, es cuando acta el mtodo amigosFacade.remove haciendo una referencia al mtodo que realiza la eliminacin de los registros.

Вам также может понравиться