Cómo crear un CRUD en Java Web con JSP y Servlet

Hola que tal, bienvenido a este nuevo artículo, en donde aprenderás cómo crear un CRUD en Java Web con JSP y Servlet.

Aprende este y otros temas de Programación Java Web. Accede gratis al Curso de Java EE y suscribete al canal de Youtube.

Para este ejercicio usaremos Maven para la gestión de librerías, aclarar también que si bien es cierto que el CRUD es de una sola tabla, el tutorial es muy práctico ya que te da las bases para que tu continúes de forma autodidacta aplicando esos conocimientos en un proyecto más grande.

Que necesitas?

Tener instalado Java 8, descargar Eclipse Neon y configurado con Apache Tomcat, si no tienes instalado nada de lo anterior, puedes hacerlo revisando estos tutoriales: Instalar Java 8, Consola VS IDEIntegrar Apache en Eclipse.

Tener instalado MySQL con algún entorno para poder administrarlos bien sea phpMyadmin o MySQL Workbench, si no tienes instalado, puedes revisar estos tutoriales: Instalar MySQL y MySQL WORKBENCH en Windows 10 o bien Cómo instalar WampServer en Windows 10

Hoja de ruta de lo que vamos hacer

Crear la base de datos con la tabla artículos.

Crear el proyecto Web.

Convertir el proyecto Web a Maven y configurar el archivo pom.xml.

Definir la conexión a la base de datos usando el archivo web.xml

Crear el modelo para la tabla artículos.

Crear la clase DAO (métodos CRUD) y Controlador.

Crear las Vistas.

Nota: Si te interesa seguir el tema de programación Web con Java, puedes revisar mi Curso de Programación Java Web, con JSP, Servlet y JPA donde aprenderás paso a paso como desarrollar aplicaciones web con Java.
icon

De momento dejo una vista previa de como va quedar la vista principal de proyecto.

Crear la base de datos y la tabla artículos

Para crear la base de datos junto con la tabla, bien puedes hacerlo de forma gráfica o usar el siguiente script Descarga Script. La tabla artículos tiene 5 campos (id, codigo, nombre, descripcion, existencia, precio) que hacen referencia al artículo, la clave primaria es el campo id y es un campo auto numérico.

Recuerda que antes de ejecutar el script para crear la tabla, debes crear la base de datos y esta debe llamarse javaweb_crud.

Estructura completa del Proyecto

Esta es la estructura del proyecto que debe quedar al final del tutorial y que la iré explicando en el transcurso del mismo.

Crear el Web Dynamic Project

Como la idea de este artículo es aprender un poco de Java Web con JSP y Servlet vamos a crear un proyecto Web Dynamic Project, como se muestra en la siguiente imagen.

Si no lo encuentras en en esa opción, pincha al final en la opción Other->Web->Dynamic Web Project, lo siguiente es darle el nombre el proyecto y crearlo.

Es importante que en el proyecto, la versión de Servlet sea la 3.1 y que esté atado al contenedor de Servlet Apache Tomcat.

Finalmente el proyecto quedaría como se muestra a continuación.

Convertir el Proyecto a Maven

La idea de usar Maven en un proyecto es poder gestionar el uso de librerías que va utilizar la aplicación, por lo que ya no tenemos que descargar los .jar, sino que Maven lo hará por nosotros, sólo bastará con indicarle en el archivo pom.xml, las librerías que vayamos a usar. En las siguientes imágenes, te muestro paso a paso como hacerlo, primero debes dar click derecho sobre el proyecto y luego seguir la imagen.

Te va pedir algunos datos con respeto al proyecto Maven.

Ahora la vista del proyecto quedará de la siguiente manera, el archivo pom.xml es donde añadiremos las dependencias del proyecto, que son las librerías que vamos a usar.

Finalmente se añade las dependencias al archivo pom.xml (jstl, jsp, servlet y MySQL) de manera que traiga las librerías desde su repositorio (las dependencias deben estar entre la etiqueta <description> y <build>).

Una vez agregadas las dependencias debemos actualizar el proyecto de manera que los cambios surjan efectos.

Te va indicar que proyecto se va actualizar y le das OK. Al actualizar el proyecto se descargarán automáticamente las librerías a utilizar de modo que ahora el proyecto quedará como en la siguiente imagen.

Crear el archivo web.xml

Con la versión anterior a la 3.1 (Servlet) este archivo se generaba automáticamente, puesto que ahí se mapeaba todo lo referente a la configuración de los Servlets, con la versión 3.1 todo se lo hace con anotaciones dentro del mismo Servlet. Pues bien, dicho lo anterior, es necesario crear el archivo web.xml ya que vamos a cargar ahí las configuraciones para el acceso a la base de datos, hacemos esto por se una buena práctica, en cuanto a seguridades se refiere.

Como te mencionaba, aquí vamos a cargar tanto la URL de conexión, así como el usuario y la clave, de tal manera que en las clases donde se acceda a la conexión sólo llamaremos a los atributos del archivo web.xml, la configuración del archivo debe quedar como sigue, no olvides que debes cambiar tu usuario y clave para entrar a MySQL.

Crear la clase para la conexión

La clase para la conexión queda de la siguiente manera, básicamente lo que se hace es crear la conexión con los parámetros pasados desde el archivo web.xml, la clase contiene dos métodos, uno para conectar y otro para desconectar, se añade también el acceso a la variable de la conexión jdbcConnection, de manera que se la pueda obtener desde cualquier parte del DAO, la clase debe estar dentro del paquete com.ecodeup.articulos.model.

Nota: Si te interesa seguir el tema de programación Web con Java, puedes revisar mi Curso de Programación Java Web, con JSP, Servlet y JPA donde aprenderás paso a paso como desarrollar aplicaciones web con Java.

Crear la clase Articulo para el modelo 

Esta clase contiene los atributos para mapear el objeto hacia la tabla de la base de datos y debe estar dentro del paquete com.ecodeup.articulos.model

Crear la clase lo métodos CRUD para la tabla artículos

Esta clase contiene todos los métodos CRUD para la tabla artículos y está organizada de la siguiente manera, esta clase debe estar dentro del paquete com.ecodeup.articulos.dao.

Crear el Servlet que sirve de controlador

El Servlet se llama AdminArticulo, y se encuentra dentro del paquete com.ecodeup.articulos.controller.

En el Servlet manejamos todas las peticiones como por ejemplo para crear un nuevo artículo, actualizar  y eliminar.

Crear las vistas para el ejemplo

Las vistas son simples archivos con extensión .jsp, en las cuales usamos JSTL (Java Server Pages Tag Library) que no son más que etiquetas y que nos permiten manipular o embeber código java dentro de una pagína JSP.

Para poder hacer uso de estas etiquetas, se debe incluir una declaración en el inicio de la página JSP donde vayamos a usarlas (línea 4), en este caso pongo como ejemplo la página mostrar.jsp que está dentro de la carpeta vista y que muestra todos los artículos, finalmente recordar que (a excepción de la página index.jsp) las páginas JSP están dentro de la carpeta vista.

Las demás vistas, index.jsp, register.jsp y editar.jsp las puedes descargar del proyecto completo, del siguiente enlace Descargar Proyecto Completo.

Finalmente te dejo una imagen de como se muestran los artículos ingresados junto con sus respectivas acciones, tanto de editar como de eliminar. 

Espero haya sido de ayuda, si tienes alguna pregunta, la puedes hacer en la parte de comentarios, nos vemos en la próxima entrada.

Nota: Si te interesa seguir el tema de programación Web con Java, puedes revisar mi Curso de Programación Java Web, con JSP, Servlet y JPA donde aprenderás paso a paso como desarrollar aplicaciones web con Java.

Si te interesa seguir el tema de programación Web con Java, puedes revisar mi Curso de Programación Java Web, con JSP, Servlet y JPA donde aprenderás este y otros temas:

Full Stack Developer, JavaScript, PHP, Java, Spring, Laravel, Vuejs, Blogger, aprendiendo y compartiendo conocimientos. Cursos de Programación Web en: https://programacionfullstack.com/

Artículos Recomendados

29 Thoughts to “Cómo crear un CRUD en Java Web con JSP y Servlet”

  1. Fernando

    Gracias por compartir, oye puedes hacer un tutorial donde expliques lo mismo solo que utilizando las vistas o mejor utilizando PrimeFaces y JasperReport 😀

    1. Elivar Largo

      Hola Fernando, lo tendré en cuenta para los próximos artículos.

  2. Andrés

    Hola, muy hermoso ese codigo y entendi por etapas que es lo que debo hacer, no lo he probado posiblemente funciones, la cuestion es la siguiente no tengo ni idea para que sirve cada linea de codigo, o porque se utilizan ciertas funciones asi. Podes decirme donde aprender como manejar todas estas variables y metodos?

    1. Elivar Largo

      Hola Andrés, gracias por tu comentario, puedes descargar el proyecto en el enlace que está al final y probar, te debería funcionar perfectamente. Si quieres aprender más a fondo y a detalle puedes revisar este enlace Aprende programación Web con JSP y Servlet
      Saludos…

  3. ervin

    buen dia, un excelente tutorial, pero no tengo idea donde crear el archivo web.xml, antemano muchas gracias y exitos.

    1. Elivar Largo

      Hola ervin, el archivo web.xml se crea dentro de la carpeta WEB-INF, te puedes guiar por la imagen que está al inicio del artículo. Saludos

  4. Oscar Galán

    Excelente sitio WEB Elivar, felicidades la verdad es entiendible, hay cosas que no son tan comprensibles para alguien que va iniciando, pero es que la misma logica y metodologia te obligan a complementar la busqueda, sobre todo practicar una y otra vez, asi como leer y analizar paso por paso de los codigos ejemplos que nos brindas, muchas gracias !!!!

    1. Elivar Largo

      Que tal Oscar, gracias por tu comentario y me alegro mucho que te haya servido, comentarios como estos son los que inspiran a seguir publicando. Saludos

  5. Oscar Galicia

    Gracias por el articulo y el codigo. Todo funciona a la primera y correctamente.
    Muy completo todo.

  6. Daya Vila

    Hola, disculpa al momento de ejecutar la aplicación, no me muestra nada, no se si hay algún paso adicional para ello?

    1. Elivar Largo

      Hola Daya, revisa que el Tomcat este levantado, puedes ver la consola y revisar si está ejecutándose. Revisa que estés ubicada en el proyecto que deseas ejecutar, puede también intentar ejecutarlo directamente desde servlet creado y no desde el proyecto, click derecho en servlet y ejecutar.

  7. edw2121

    hola muy buen articulo, solo que se pueden duplicar un mismo usuario ya que son id diferentes habria una forma de validar un saludo

    1. Hola edw2121, si se lo puede validar, lo más rápido en este caso es a través de código, antes de insertar se debería consultar usando (sentencias sql) si el usuario existe enviar un mensaje de usuario duplicado, caso contrario insertar

  8. Luis

    excelente sitio, solo tengo una duda, en el mostrar.jsp en la linea 29 cuando haces el forEach, la var=”articulo” de done lo optienes o a donde haces el llamado de esa variable ??
    saludos

    1. Gracias Luis, articulo es la variable que se declara para obtener y mostrar cada objecto al recorrer la lista, no precisamente debe llamarse artículo puede llamarse de cualquier nombre sin embargo le puse ese nombre para que haga referencia a lo se está obteniendo de la lista que son artículos.

  9. Alex

    Hola Elivar, primero felicitarte por tus cursos y videos.
    No me permite descargar tu script para generar la DB por problemas de seguridad.Podrias subirlo d e nuevo?

    1. Hola Alex déjame tu correo para enviarte el zip del proyecto

      1. jose

        hola me envías el zip del proyecto por favor

        1. Lo puedes descargar del artículo al final. Saludos

  10. Baltazar

    Me gusto las etapas de como le hiciste, aunque hay algunas cosas que no entiendo muy bien ya que apenas estoy iniciando en el desarrollo. Sin embargo esta excelente. Solo una cosa cuando le doy en mostrar pues no muestra nada, y ademas al insertar el registro me nada como id = 0; No se si algo esta mal aunque ya revice no encuentro que puede estar mal.

    1. Hola, debería funcionarte intenta hacer una impresión de los datos por consola para ver si cuando ejecutas el método mostrar obtienes los datos de la consulta desde la base de datos.

  11. jose

    hola por favor envíame el zip del proyecto ingenierojosecastillo@hotmail.com

    1. La descarga del proyecto la encuentras al final en un enlace donde dice: Descarga del Proyecto Completo

  12. RoggerMendo

    Hola amigo muy util tu infofrmacion. No tienes un proyecto de java aplicacion web pero con store procedures? Sería de gran ayuda.

    1. Hola, de momento no pero en los próximos artículos o videos trataré este tema.

  13. Erendira Lujan

    Hola, disculpa nos basamos en tu ejemplo y nos ha sido de mucha utilidad, solo que no nos permite insertar desde eclipse solo si lo hacemos manualmente en mysql. Quisiera como hiciste la conexion de eclipse a mysql y cuales son los campos de la base de datos? porque la tabla la creamos pero no sabemos si este correcta.

    1. Hola, para la conexión se usa el archivo web.xml y usando la clase Conexion.java que se muestra en el desarrollo del tutorial, en el constructor del ArticuloDAO es donde se hace la conexión pero usando los archivos anteriormente mencionados.

      El script de la DB está al inicio del articulo, si lees un poco más a fondo lo puedes encontrar y descargar. Los campos de la tabla también los puedes identificar al momento de hacer el INSERT en la claseArticuloDAO.

  14. Elivar, muy buenas tardes, mi nombre es Guillermo Cárdenas tengo una empresa de desarrollo de Aplicacioenes y estamos desarrollando con (JAVA, MySql en Eclipse) todo cliente/servidor y me han solicitado pasarlo a WEB, he mirado su modelo y experiencia y quisiera concertar una reunión para explorar su apoyo a este nuevo proyecto.

    Ojala nos podamos contactar. Cordial Saludo

    Guillermo
    311 513 1223 Colombia

  15. Daniela R

    Excelente Elivar! Muchas gracias por la información, me has sacado de muchas dudas. Seguiré leyendo todos tus artículos.

Dejar un Comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.