01 abril, 2020

Crear un CRUD Java Web en Eclipse usando Servlets y JSPs (Convertir un Dynamic Web Project a Maven Project)

Este post será un complemento adicional a los temas ya vistos en el curso de Lenguaje de Programación II en donde aprendimos a crear una aplicación web Java en Eclipse con Servlets y JSPs. En esta oportunidad añadiremos a los temas de este curso el uso de Maven, que es una herramienta de software para la gestión y construcción de proyectos. 

Vamos a crear un pequeño CRUD a una tabla Productos siguiendo los mismos pasos que hemos venido usando en el curso. Anteriormente, ya hemos creado mantenimientos en Java usando MVC, DAO y DTO. Asimismo, hemos visto lo que son los properties, internacionalización, etiquetas personalizadas, AJAX, entre otros tópicos. En este post, partiremos por crear un nuevo proyecto web dinámico (Dynamic Web Project) y lo convertiremos a un Proyecto Maven (Maven Project). Después de ello, crearemos las dependencias y construiremos la estructura de nuestro proyecto que realizará un CRUD a una tabla Productos usando el patrón DAO.

La diferencia del proyecto que construiremos ahora es que con el uso de Maven ya no tendremos que estar agregando las librerías que usará nuestro proyecto de manera manual, sino que haremos uso del repositorio de Maven para descargar la librerías de manera automática.

¿Qué es Maven?


Normalmente cuando trabajamos con Java/JavaEE el uso de librerías es algo común como en cualquier otro lenguaje de programación. Sin embargo, una librería puede depender de otras librerías para funcionar de forma correcta. Por ende, su gestión se puede volver tedioso a la hora de buscar las librerías y ver que versión exacta debemos de elegir. Así pues necesitamos más información para gestionarlo todo de forma correcta  y para ellos existe MAVEN, que es una herramienta que nos va a permitir tener una gestión correcta de nuestra librerías, proyectos y dependencias. Dentro de un proyecto Maven el archivo pom.xml (Proyect Object Model) es el de mayor importancia ya que contiene toda la información del artefacto que usará nuestro proyecto. Un Artefacto puede verse como una librería con esteroides (aunque agrupa mas conceptos). Contiene las clases propias de la librería pero ademas incluye toda la información necesaria para su correcta gestión (grupo, versión, dependencias etc).

1. Crea un Dynamic Web Project


1) Clic en File>New>Dynamic Web Project
    Si no aparece la opción Dynamic Web Project hacemos clic en:
    File>New>Other>Web>Dynamic Web Project


2) Escribimos el nombre de nuestro proyecto, seleccionamos el servidor de Apache Tomcat y damos clic en Finish.



  • Para configurar el servidor de Apache Tomcat, debemos hacer clic en New Runtine y ubicar la carpeta en donde lo tenemos instalado.





Tendremos la siguiente estructura


1. Convertir un Dynamic Web Project a Maven Project


1) Clic derecho al proyecto Configure/Convert to Maven Project


2) En la siguiente ventana dejamos por defecto y damos clic en Finish


Tendremos la siguiente estructura


Como podemos observar nos creo el siguiente archivo pom.xml



3. Agregar dependencias


1) Vamos a agregar 4 dependencias que necesitaremos para nuestro proyecto

javax.servlet-api: para trabajar con serlvets
mysql-connector-java: driver de conexión mysql
commons-dbcp2: para trabajar con pool de conexiones
jstl: para trabajar con lenguaje de expresiones

Para agregar estas dependencias podemos hacerla directamente desde la IDE de Eclipse o desde el repositorio de Maven. En ambos acasos solo tenemos que buscar el nombre del recurso que estamos queriendo agregar y seleccionar una determinada versión.





Debemos copiar el código de la dependencia y agregarlo al archivo pom.xml de nuestro proyecto de la siguiente manera:

Como podemos apreciar en el código se ha adicionado las 4 dependencias que necesitaremos para nuestro proyecto. Si necesitáramos de otras dependencias, debemos repetir el mismo proceso e ir agregándolas una por una.


El otro modo es agregando las dependencias directamente en Eclipse, para ello, debemos hacer clic en el botón Add... y escribir el nombre de la librería.



Guardamos los cambios y si fuese necesario hacemos clic derecho al proyecto Maven/Update Project, esto para actualizar el proyecto y descargar las librerías si no se descargaron.


2) Creamos la pagina index.jsp y ejecutamos el proyecto





4. Crear la estructura del proyecto

1) Creamos lo siguientes paquetes

    com.aprendec.coneion: aquí estará nuestra conexión
    com.aprendec.model: aquí irán los DTOs
    com.aprendec.dao: aquí irán nuestros DAOs
    com.aprendec.controller: aquí irán nuestros servlets



5. Crear la conexión a una base de datos MySQL

1) Crear la tabla productos


2) Crear la clase Conexion.java


6. Crear el modelo

1) Crear la clase Producto.java con sus propiedades, constructores y métodos de acceso getters and setters


7. Crear el DAO


1) Crear la clase ProductoDAO.java con los métodos para el CRUD


8. Crear el servlet controlador 


1) Crear la clase ProductoController.java con sus respectivos métodos doGet() y doPost() para administrar las peticiones para la tabla productos


Hasta aquí hemos terminado toda parte de Java


9. Crear los JSPs


1) Crear las siguientes páginas dentro de la carpeta WebContent/views
 
    crear.jsp: interfaz para crear un nuevo producto
    listar.jsp: interfaz para listar los productos
    editar.jsp: interfaz para actualizar un producto
 

2) Actualizar la pagina index.jsp para invocar al servlet productos y poder redireccionar a las diferentes paginas


3) Editar la página crear.jsp


4) Editar la página listar.jsp


5) Editar la página editar.jsp


10. Ejecutar la Aplicación y probar las funcionalidades


Estructura final de proyecto



Descargar ejercicio
Descargar archivo


5 comentarios:

  1. Disculpa tengo un problema. Lo que sucede es que a la hora de usar el forEach no muestra nada, es decir toda la estructura que esta dentro del foreach no aparece en la pagina web. Estoy buscando una solucion desde hace días pero no encuentro.
    ¿Podrias ayudarme?

    ResponderBorrar
    Respuestas
    1. ¡Que extraño! Publica tu código para revisarlo. Revisa que estés llamando a los atributos en el EL. Descarga el demo.

      Borrar
  2. Hola, una pregunta el banco de datos lo creas en MySQL Workbench? Y utilizaste Xampp o descargaste el Tomcat?

    ResponderBorrar
    Respuestas
    1. Estamos usando el motor de base de datos MySQL, puede usar Workbench o línea de comandos para crear la base de datos. Usamos Apache Tomcat como contenedor de servlets. No necesitas Xampp, basta con que tengas el Tomcat descomprimido y el MySQL Server. Saludos.

      Borrar
  3. Hola necesito ayuda con el proyecto, al momento de darle listar no muestra nada, ¿podrías ayudarme a verificar mi código?

    ResponderBorrar