01 mayo, 2017

7. Crear una aplicación Web Java en Eclipse con Servlets y JSPs (Parte 7 - MVC, DAO, DTO)

¡Bienvenidos a todos! Esta publicación formará parte de una serie de 13 publicaciones que estaré desarrollando para aprender a desarrollar una aplicación web pura en Java bajo la plataforma JEE usando Servlets y JSPs. Este será un curso en forma de guía para aquellas personas que recién estén empezando en el mundo de la programación web y que todavía no hacen uso de ningún framework.

Haciendo uso de JSPs y Servlets construiremos nuestras aplicaciones webs los cuales se ejecutarán en Apahe Tomcat (Contenedor de Servlets), el cual lo usaremos como servidor de aplicaciones para ejecutar nuestro proyecto. Asimismo, usaremos Eclipse como herramienta IDE (Entorno de Desarrollo Integrado) para la edición y compilación de nuestro código.

Clase 5a


¡Bienvenidos! En esta publicación empieza lo bueno, continuando con la sesión anterior, el día de hoy vamos a modificar la estructura del proyecto de manera que trabajemos ahora en adelante con el patrón de diseño MVC (Modelo-Vista-Controlador), DAO(Objetos de Acceso a Datos) y DTO (Objeto de Transferencia de Datos).

Como sabemos la lógica de una interfaz de usuario cambia con mayor frecuencia que las base de datos y los componentes de negocio. Por lo tanto, si tenemos un diseño "ofuscado" lo que pasará es que cuando necesitemos cambiar las interfaces también tendríamos que modificar los componentes de negocio lo que sería muy trabajoso. 

Entonces, la idea de usar MVC consiste en separar la vista del modelo con la finalidad de mejorar la reusabilidad para que las modificaciones en la vista impacten menos en la lógica de negocio o de datos.

Recordemos que MVC permite separar nuestra aplicación en 3 capas:

En el Modelo, están los datos y reglas de negocio (funcionalidad del sistema)
La Vista, muestra la información del modelo al usuario
El Controlador, se encarga de gestionar los eventos de entrada del usuario

Donde el controlador gestiona los eventos de entrada del usuario, luego realiza una petición al modelo quien manipula la base de datos, luego actualiza la vista y la vista entrega la información al usuario.

Recordando las sesiones anteriores...

Aprendimos a crear JSPs y Servlets, aprendimos a como invocarlos, aprendimos a cargar datos al request y a la sesión, y a recuperarlos usando Scriptlets, Expressions y lenguaje de expresión JSTL. Asimismo, empezamos a ver un poco de bases de datos y a usar el patrón DTO para transferir varios atributos entre el cliente y el servidor

Sin más empecemos con la sesión de hoy

1. Importamos el proyecto de la la clase anterior y lo ejecutamos para ver que no haya ningún problema, clic aquí para descargar




2. Creamos las INTERFACES ClienteDAO.java, FacturaDAO.java y ProductoDAO.java dentro del paquete aprendamos.java.interfaces

ClienteDAO.java

FacturaDAO.java

ProductoDAO.java

3. Creamos la clase abstracta que será la fábrica especifica de DAOS DAOFactory.java en el paquete aprendamos.java.dao

DAOFactory


El método getDAOFactory() recibirá como parámetro el origen de datos y según eso invocará el DAO especifico a dicho motor de base de datos.

4. Creamos las clases que van a heredar de la clase DAOFactory.java con los métodos a implementar MySqlDAOFactory.java, OracleDAOFactory.java, Db2DAOFactory.java, SqlServerDAOFactory.java y XmlDAOFactory.java

MysqlDAOFatory.java

OracleDAOFactory.java

Db2DAOFactory.java

SqlServerDAOFactory.java

XmlDAOFactory.java

En nuestro ejemplo solo vamos a implementar los métodos del DAO MyqlDAOFactory.java, ya que estamos trabajando solo con el motor de bases de datos MySQL, esto es la ventaja de usar DAO ya que si en un momento dado nuestra aplicación cambiase de base de datos, solo tendríamos que implementar los métodos de algunos de los otros DAOs, para el caso que mudemos de MySQL a SqlServer hemos creado el DAO SqlServerDAOFactory.java y solo bastaría con crear los mismos método que hicimos para MySql pero para SqlServer

5. Creamos las clases que van a implementar los DAOs, solo crearemos la clase MySqlClienteDAO.java, normalmente por cada entidad de nuestro modelo de datos tendremos un DAO

MysqlClienteDAO.java


Hasta aquí hemos terminado de desarrollar nuestro modelo, que a su vez esta aplicando el patrón DAO (Objeto de Acceso a Datos) que permite que nuestra aplicación no se esté ligada a una sola fuente de datos, sino que para el momento que sea necesario, nosotros podamos cambiar de motor de base de datos. Los datos serán traído independientemente si están en una base de datos o en un archivo.

6. Adaptamos los servicios LogueoService.java y ListadoService.java, a este último, le cambiamos el nombre por MantenerClienteService.java.

LogueoService.java

MantenerClienteService.java


7. No cambiamos en nada los servlets, solo cambiamos el nombre de ListadoServlet.java por MantenerClienteServlet.java y actualizamos el archivo descriptor web.xml .

Hasta aquí hemos terminado de adaptar nuestros controladores.

8. En la vista solo cambiamos el nombre de unos valores de la página listado.jsp.

Hasta aquí terminamos de ver la vista

9. Ejecutamos el proyecto Run As>Run on Server y tendremos el mismo resultado del post anterior, no cambio en nada, solo hemos modificamos la estructura del proyecto y hemos empleado los patrones MVC, DAO y DTO. 



Solo hemos implementados los métodos para validar cliente y  buscar cliente. En el siguiente post terminaremos los demás métodos del mantenimiento..

Descargar ejercicio
Descargar archivo

No hay comentarios, ¡cuéntame algo!

Me gustaría saber tu opinión. ¡Saludos!