Está en la página 1de 32

24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

CÓMO CREAR UN CRUD EN JAVA WEB CON JSP Y


SERVLET

 (https://www.ecodeup.com) Programación Java EE


(https://www.ecodeup.com/category/programacion-ee/)  Cómo crear un CRUD en
Java Web con JSP y Servlet

Buscar 

ENCUESTAS
Qué temas de
programación web te
gustaría aprender?

Java Web (JSP,


Hibernate, JSF, Web
Services)

 11 junio, 2017 (https://www.ecodeup.com/como-crear-un-crud- Programación con


en-java-web-con-jsp-y-servlet/)  Elivar Largo PHP (Ajax, Base de
(https://www.ecodeup.com/author/elargo/) datos, HTML)

Spring Framework
CÓMO CREAR UN CRUD EN Framework Laravel
JAVA WEB CON JSP Y SERVLET
Programación móvil
con Android 
https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 1/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

Hola que tal, bienvenido a este nuevo artículo, en JavaScript (Node,


donde aprenderás cómo crear un CRUD en Java Frameworks
Web con JSP y Servlet. JavaScript)
Aprende este y otros temas de Programación Java SE
Java Web. Accede gratis al Curso de Java EE y Voto
suscribete al canal de Youtube.
(https://www.youtube.com/playlist? Ver resultados
list=PL3vxkSlW2FvWzjf0NdxcivmyhrW6CdxhB
) ENCUESTAS
Para este ejercicio usaremos Maven para la
gestión de librerías, aclarar también que si bien Por qué quisieras
es cierto que el CRUD es de una sola tabla, el aprender estos temas?
tutorial es muy práctico ya que te da las bases
Quisiera a futuro
para que tu continúes de forma autodidacta postular para un
aplicando esos conocimientos en un proyecto trabajo
más grande.
Estoy trabajando
actualmente y quiero
mejorar mis habilidades

Quiero emprender
un proyecto
(https://www.youtube.com/channel/UCViAh-P1qmZ2- Por pasatiempo /
5F-UTx9MlA) Sólo por aprender
Voto
QUE NECESITAS?
Ver resultados
Tener instalado Java 8, descargar Eclipse Neon y
con gurado con Apache Tomcat, si no tienes
instalado nada de lo anterior, puedes hacerlo CATEGORÍA
revisando estos tutoriales: Instalar Java 8 S
(https://www.ecodeup.com/descargar-instalar-
java-8/), Consola VS IDE
Programación Android
(https://www.ecodeup.com/ejecutar-aplicacion-
(https://www.ecodeup.
java-desde-la-consola-vs-ide/),  Integrar Apache
com/category/program
en Eclipse (https://www.ecodeup.com/integra-
acion-android/) (1)
apache-tomcat-en-eclipse-neon-menos-5-
minutos/). Programación con
Laravel
Tener instalado MySQL con algún entorno para (https://www.ecodeup.
poder administrarlos bien sea phpMyadmin o com/category/program
MySQL Workbench, si no tienes instalado,
puedes revisar estos tutoriales: Instalar MySQL
acion-con-laravel/) (3)

https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 2/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

y MySQL WORKBENCH en Windows 10 Programación General


(https://www.ecodeup.com/aprende-a-instalar- (https://www.ecodeup.
mysql-y-mysql-workbench-en-windows-10/)  o com/category/program
bien Cómo instalar WampServer en Windows 10 acion-general/) (6)
(https://www.ecodeup.com/instalar-
Programación Java EE
wampserver-windows/). 
(https://www.ecodeup.
com/category/program
HOJA DE RUTA DE LO QUE VAMOS
acion-ee/) (11)
HACER
Programación Java SE
Crear la base de datos con la tabla artículos.
(https://www.ecodeup.
Crear el proyecto Web. com/category/program
acion-java/) (26)
Convertir el proyecto Web a Maven y con gurar
el archivo pom.xml. Programación
JavaScript
De nir la conexión a la base de datos usando el
(https://www.ecodeup.
archivo web.xml
com/category/program
Crear el modelo para la tabla artículos. acion-javascript/) (2)

Crear la clase DAO (métodos CRUD) y Programación PHP


Controlador. (https://www.ecodeup.
com/category/program
Crear las Vistas.
acion-php/) (22)
Nota: Si te interesa seguir el tema de
Spring
programación Web con Java, puedes revisar mi (https://www.ecodeup.
Curso de Programación Java Web com/category/spring/)
(https://programacionfullstack.com/) donde (1)
aprenderás paso a paso como desarrollar
aplicaciones web con Java. WordPress, Diseño
icon Web y Blogging
(https://www.ecodeup.
De momento dejo una vista previa de como va com/category/aprende-
quedar la vista principal de proyecto. crear-tu-blog/) (4)

ARTÍCULOS
RECIENTES

Cómo crear un CRUD


CREAR LA BASE DE DATOS Y LA en Java con JPA e
TABLA ARTÍCULOS Hibernate
(https://www.ecodeup.
com/como-crear-un- 
https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 3/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

Para crear la base de datos junto con la tabla, crud-en-java-con-jpa-e-


bien puedes hacerlo de forma grá ca o usar el hibernate/)
siguiente script Descarga Script Cómo crear un web
(https://www.dropbox.com/s/rhcxm55foa5est3/ services SOAP usando
articulos.sql?dl=0). La tabla artículos tiene 5 JAX-WS en Eclipse
campos (id, codigo, nombre, descripcion, (https://www.ecodeup.
existencia, precio) que hacen referencia al com/como-crear-un-
artículo, la clave primaria es el campo id y es un web-services-soap-
campo auto numérico. usando-jax-ws-en-
eclipse/)
Recuerda que antes de ejecutar el script para
crear la tabla, debes crear la base de datos y esta Cómo crear un
debe llamarse javaweb_crud. repositorio local con
Git y subirlo a GitHub
ESTRUCTURA COMPLETA DEL (https://www.ecodeup.
PROYECTO com/como-crear-un-
repositorio-local-con-
Esta es la estructura del proyecto que debe
git-y-subirlo-a-github/)
quedar al nal del tutorial y que la iré explicando
en el transcurso del mismo. Cómo crear una
aplicación con Express
Framework
(https://www.ecodeup.
com/como-crear-una-
aplicacion-con-express-
framework/)

Estructura y
componentes de una
clase en Java
(https://www.ecodeup.
com/estructura-y-
componentes-de-una-
clase-en-java/)

SUSCRIPCIÓ
N


https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 4/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

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.

Suscríbete
ahora y recibe
en tu correo los
mejores
contenidos
Si no lo encuentras en en esa opción, pincha al
sobre
nal en la opción Other->Web->Dynamic Web
Programación
Project, lo siguiente es darle el nombre el
Web.
proyecto y crearlo.
Nombre

Email

He leído y acepto
las políticas de
privacidad

SUSCRIBIRME

Tus datos estarán


protegidos y 100%
libre de Spam

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.

https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 5/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

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.


https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 6/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

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>).


https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 7/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

1   <dependencies>
2     <dependency>
3         <groupId>javax.servlet</groupId>
4         <artifactId>javax.servlet-api</artifactId
5         <version>3.1.0</version>
6         <scope>provided</scope>
7     </dependency>
8     <dependency>
9         <groupId>javax.servlet.jsp</groupId>
10         <artifactId>javax.servlet.jsp-api</artifa
11         <version>2.3.1</version>
12         <scope>provided</scope>
13     </dependency>
14     <dependency>
15         <groupId>jstl</groupId>
16         <artifactId>jstl</artifactId>
17         <version>1.2</version>
18     </dependency>
19     <dependency>
20         <groupId>mysql</groupId>
21         <artifactId>mysql-connector-java</artifac
22         <version>5.1.30</version>
23     </dependency>
24 </dependencies>

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.


https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 8/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

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
con guració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 con guraciones para el acceso a
la base de datos, hacemos esto por se una buena
práctica, en cuanto a seguridades se re ere.
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 con guración
del archivo debe quedar como sigue, no olvides
que debes cambiar tu usuario y clave para entrar
a MySQL.
Archivo web.xml proyecto JSP y Servlet XHTML


https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 9/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

1 <?xml version="1.0" encoding="UTF-8"?>


2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSch
3   <display-name>CRUD Artículos con JSP y Servlet
4   <context-param>
5     <param-name>jdbcURL</param-name>
6     <param-value>jdbc:mysql://localhost:3306/java
7   </context-param>
8   <context-param>
9     <param-name>jdbcUsername</param-name>
10     <param-value>root</param-value>
11   </context-param>
12   <context-param>
13     <param-name>jdbcPassword</param-name>
14     <param-value></param-value>
15   </context-param>
16 </web-app>

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
(https://programacionfullstack.com/) donde
aprenderás paso a paso como desarrollar
aplicaciones web con Java.


https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 10/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet
1 package com.ecodeup.articulos.model;
2  
3 import java.sql.Connection;
4 import java.sql.DriverManager;
5 import java.sql.SQLException;
6  
7 /*
8 * @autor: Elivar Largo
9 * @web: www.ecodeup.com
10 */
11  
12 public class Conexion {
13     private Connection jdbcConnection;
14     private String jdbcURL;
15     private String jdbcUsername;
16     private String jdbcPassword;
17     
18     public Conexion(String jdbcURL, String jdbcUs
19 this.jdbcURL = jdbcURL;
20 this.jdbcUsername = jdbcUsername;
21 this.jdbcPassword = jdbcPassword;
22 }
23  
24 public void conectar() throws SQLException {
25         if (jdbcConnection == null || jdbcConnect
26             try {
27                 Class.forName("com.mysql.jdbc.Dri
28             } catch (ClassNotFoundException e) {
29                 throw new SQLException(e);
30             }
31             jdbcConnection = DriverManager.getCon
32                                         jdbcURL,
33         }
34     }
35     
36     public void desconectar() throws SQLException
37         if (jdbcConnection != null && !jdbcConnec
38             jdbcConnection.close();
39         }
40     }
41  
42 public Connection getJdbcConnection() {
43 return jdbcConnection;
44 }  
45  
46 }

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


https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 11/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet
1 package com.ecodeup.articulos.model;
2  
3 /*
4 * @autor: Elivar Largo
5 * @ web: www.ecodeup.com
6 */
7  
8 public class Articulo {
9 private int id;
10 private String codigo;
11 private String nombre;
12 private String descripcion;
13 private double existencia;
14 private double precio;
15
16 public Articulo(int id, String codigo, String
17 this.id = id;
18 this.codigo = codigo;
19 this.nombre = nombre;
20 this.descripcion = descripcion;
21 this.existencia = existencia;
22 this.precio = precio;
23 }
24 //getters y setters
25 public int getId() {
26 return id;
27 }
28 public void setId(int id) {
29 this.id = id;
30 }
31 public String getCodigo() {
32 return codigo;
33 }
34 public void setCodigo(String codigo) {
35 this.codigo = codigo;
36 }
37 public String getNombre() {
38 return nombre;
39 }
40 public void setNombre(String nombre) {
41 this.nombre = nombre;
42 }
43 public String getDescripcion() {
44 return descripcion;
45 }
46 public void setDescripcion(String descripcion
47 this.descripcion = descripcion;
48 }
49 public double getExistencia() {
50 return existencia;
51 }
52 public void setExistencia(double existencia)
53 this.existencia = existencia;
54 }
55 public double getPrecio() {
56 return precio;
57 }
58 public void setPrecio(double precio) {
59 this.precio = precio;
60 }
61 }

CREAR LA CLASE  LO MÉTODOS CRUD 


PARA LA TABLA ARTÍCULOS
https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 12/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

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.
1 package com.ecodeup.articulos.dao;
2  
3 import java.sql.Connection;
4 import java.sql.PreparedStatement;
5 import java.sql.ResultSet;
6 import java.sql.SQLException;
7 import java.sql.Statement;
8 import java.util.ArrayList;
9 import java.util.List;
10  
11 import com.ecodeup.articulos.model.Articulo;
12 import com.ecodeup.articulos.model.Conexion;
13  
14 /*
15 * @autor: Elivar Largo
16 * @web: www.ecodeup.com
17 */
18  
19 public class ArticuloDAO {
20 private Conexion con;
21 private Connection connection;
22  
23 public ArticuloDAO(String jdbcURL, String jd
24 System.out.println(jdbcURL);
25 con = new Conexion(jdbcURL, jdbcUsername
26 }
27  
28 // insertar artículo
29 public boolean insertar(Articulo articulo) t
30 String sql = "INSERT INTO articulos (id,
31 System.out.println(articulo.getDescripci
32 con.conectar();
33 connection = con.getJdbcConnection();
34 PreparedStatement statement = connection
35 statement.setString(1, null);
36 statement.setString(2, articulo.getCodig
37 statement.setString(3, articulo.getNombr
38 statement.setString(4, articulo.getDescr
39 statement.setDouble(5, articulo.getExist
40 statement.setDouble(6, articulo.getPreci
41  
42 boolean rowInserted = statement.executeU
43 statement.close();
44 con.desconectar();
45 return rowInserted;
46 }
47  
48 // listar todos los productos
49 public List<Articulo> listarArticulos() thro
50  
51 List<Articulo> listaArticulos = new Arra
52 String sql = "SELECT * FROM articulos";
53 con.conectar();
54 connection = con.getJdbcConnection();
55 Statement statement = connection.createS
56
57  
ResultSet resulSet = statement.executeQu

58 while (resulSet.next()) {
https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 13/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

59 int id = resulSet.getInt("id");
60 String codigo = resulSet.getString("
61 String nombre = resulSet.getString("
62 String descripcion = resulSet.getStr
63 Double existencia = resulSet.getDoub
64 Double precio = resulSet.getDouble("
65 Articulo articulo = new Articulo(id,
66 listaArticulos.add(articulo);
67 }
68 con.desconectar();
69 return listaArticulos;
70 }
71  
72 // obtener por id
73 public Articulo obtenerPorId(int id) throws
74 Articulo articulo = null;
75  
76 String sql = "SELECT * FROM articulos WH
77 con.conectar();
78 connection = con.getJdbcConnection();
79 PreparedStatement statement = connection
80 statement.setInt(1, id);
81  
82 ResultSet res = statement.executeQuery()
83 if (res.next()) {
84 articulo = new Articulo(res.getInt("
85 res.getString("descripcion")
86 }
87 res.close();
88 con.desconectar();
89  
90 return articulo;
91 }
92  
93 // actualizar
94 public boolean actualizar(Articulo articulo)
95 boolean rowActualizar = false;
96 String sql = "UPDATE articulos SET codig
97 con.conectar();
98 connection = con.getJdbcConnection();
99 PreparedStatement statement = connection
100 statement.setString(1, articulo.getCodig
101 statement.setString(2, articulo.getNombr
102 statement.setString(3, articulo.getDescr
103 statement.setDouble(4, articulo.getExist
104 System.out.println(articulo.getPrecio())
105 statement.setDouble(5, articulo.getPreci
106 statement.setInt(6, articulo.getId());
107  
108 rowActualizar = statement.executeUpdate(
109 statement.close();
110 con.desconectar();
111 return rowActualizar;
112 }
113
114 //eliminar
115 public boolean eliminar(Articulo articulo) t
116 boolean rowEliminar = false;
117 String sql = "DELETE FROM articulos WHER
118 con.conectar();
119 connection = con.getJdbcConnection();
120 PreparedStatement statement = connection
121
122  
statement.setInt(1, articulo.getId());

123 rowEliminar = statement.executeUpdate()
https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 14/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

124 statement.close();
125 con.desconectar();
126  
127 return rowEliminar;
128 }
129 }

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.
package com.ecodeup.articulo.controller;
 
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
 
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import com.ecodeup.articulos.dao.ArticuloDAO;
import com.ecodeup.articulos.model.Articulo;
 
/**
* Servlet implementation class AdminArticulo
*/
@WebServlet("/adminArticulo")
public class AdminArticulo extends HttpServlet {
private static final long serialVersionUID = 1L;
ArticuloDAO articuloDAO;
 
public void init() {
String jdbcURL = getServletContext().getInit
String jdbcUsername = getServletContext().get
String jdbcPassword = getServletContext().get
try {
 
articuloDAO = new ArticuloDAO(jdbcURL, jd
} catch (Exception e) {
// TODO: handle exception
}
}
 
/**
* @see HttpServlet#HttpServlet()
*/
public AdminArticulo() {

}
super();
// TODO Auto-generated constructor stub 
https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 15/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

 
/**
* @see HttpServlet#doGet(HttpServletRequest req
*      response)
*/
protected void doGet(HttpServletRequest request,
throws ServletException, IOException {
System.out.println("Hola Servlet..");
String action = request.getParameter("action
System.out.println(action);
try {
switch (action) {
case "index":
index(request, response);
break;
case "nuevo":
nuevo(request, response);
break;
case "register":
System.out.println("entro");
registrar(request, response);
break;
case "mostrar":
mostrar(request, response);
break;
case "showedit":
showEditar(request, response);
break;
case "editar":
editar(request, response);
break;
case "eliminar":
eliminar(request, response);
break;
default:
break;
}
} catch (SQLException e) {
e.getStackTrace();
}

}
 
/**
* @see HttpServlet#doPost(HttpServletRequest re
*      response)
*/
protected void doPost(HttpServletRequest request
throws ServletException, IOException {
System.out.println("Hola Servlet..");
doGet(request, response);
}

private void index (HttpServletRequest request,


//mostrar(request, response);
RequestDispatcher dispatcher= request.getReq
dispatcher.forward(request, response);
}
 
private void registrar(HttpServletRequest request
Articulo articulo = new Articulo(0, request.g
articuloDAO.insertar(articulo);

RequestDispatcher dispatcher = request.getRe
https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 16/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

dispatcher.forward(request, response);
}

private void nuevo(HttpServletRequest request, Ht


RequestDispatcher dispatcher = request.getRe
dispatcher.forward(request, response);
}

private void mostrar(HttpServletRequest request,


RequestDispatcher dispatcher = request.getRe
List<Articulo> listaArticulos= articuloDAO.l
request.setAttribute("lista", listaArticulos
dispatcher.forward(request, response);
}

private void showEditar(HttpServletRequest reque


Articulo articulo = articuloDAO.obtenerPorId
request.setAttribute("articulo", articulo);

RequestDispatcher dispatcher = request.getRe


dispatcher.forward(request, response);
}

private void editar(HttpServletRequest request,


Articulo articulo = new Articulo(Integer.par
articuloDAO.actualizar(articulo);
index(request, response);
}

private void eliminar(HttpServletRequest request


Articulo articulo = articuloDAO.obtenerPorId
articuloDAO.eliminar(articulo);
RequestDispatcher dispatcher = request.getRe
dispatcher.forward(request, response);

}
}

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, nalmente recordar
que (a excepción de la página index.jsp) las
páginas JSP están dentro de la carpeta vista.

https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 17/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

1 <%@ page language="java" contentType="text/html;


2     pageEncoding="ISO-8859-1"%>
3     
4   <%@ taglib uri="http://java.sun.com/jsp/jstl/co
5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Tran
6 <html>
7 <head>
8 <meta http-equiv="Content-Type" content="text/htm
9 <title>Administrar Artículos</title>
10 </head>
11 <body>
12 <h1>Lista  Artículos</h1>
13 <table>
14 <tr>
15 <td><a href="adminArticulo?action=ind
16 </tr>
17 </table>
18
19 <table border="1" width="100%">
20 <tr>
21 <td> ID</td>
22 <td> CODIGO</td>
23 <td> NOMBRE</td>
24 <td>DESCRPICION</td>
25 <td>EXISTENCIA</td>
26 <td>PRECIO</td>
27 <td colspan=2>ACCIONES</td>
28 </tr>
29 <c:forEach var="articulo" items="${lista}
30 <tr>
31 <td><c:out value="${articulo.id}"
32 <td><c:out value="${articulo.codi
33 <td><c:out value="${articulo.nomb
34 <td><c:out value="${articulo.desc
35 <td><c:out value="${articulo.exis
36 <td><c:out value="${articulo.prec
37 <td><a href="adminArticulo?action
38 <td><a href="adminArticulo?action
39 </tr>
40 </c:forEach>
41 </table>
42
43 </body>
44 </html>

Las demás vistas, index.jsp, register.jsp y


editar.jsp las puedes descargar del proyecto
completo, del siguiente enlace  Descargar
Proyecto Completo
(https://www.dropbox.com/s/zc886nq87m40m3
l/Articulos-JSP-Servlet.zip?dl=0).
Finalmente te dejo una imagen de como se
muestran los artículos ingresados junto con sus
respectivas acciones, tanto de editar como de
eliminar. 


https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 18/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

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
(https://programacionfullstack.com/) 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
(https://programacionfullstack.com/) donde
aprenderás este y otros temas:
Curso de Programación Java Web
(https://programacionfullstack.com/).
 
CÓMO CREAR UN CRUD EN JAVA
WEB CON JSP Y SERVLET
(https://www.ecodeup.com/como-
crear-un-crud-en-java-web-con-jsp-
y-servlet/),
Integrar Bootstrap en un proyecto
Java Web usando Java 8
(https://www.ecodeup.com/como-
integrar-bootstrap-con-jsp-y-crear-
un-proyecto-web-en-java8/).

Pr
og
ra
m

https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 19/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

ación Web Full Stack


Suscríbete ahora y recibe los mejores
contenidos sobre Programación Web en tu
correo.

Nombre

Email

SUSCRIBIRME

Tus datos estarán protegidos y 100% libre de Spam

ELIVAR LARGO
(HTTPS://WWW.ECODEUP.COM/AUTHOR/
ELARGO/)


https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 20/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

(h
tt
ps
://
w
w
w.
y
o
ut
u
b
(h e.
tt c
ps o
:// m
ec /c
.li h
n a
k n
(h (h e n
tt tt di el
p: p: n. /
// // c U
w w o C
w w m Vi
w. w. /i A
pr fa n/ h-
o ce el P
gr b iv 1
a o ar q
mo - m
ac k. la Z
io c rg 2-
nf o o- 5
ul m (h b F-
ls /e tt 4 U
ta li p: 5 T
ck v // 0 x
.c ar el 3 9
o la iv 9 M
m rg ar 9 lA
) o) l) 7) )

https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 21/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

Full Stack Developer, JavaScript, PHP, Java, Spring,


Laravel, Vuejs, Blogger, aprendiendo y
compartiendo conocimientos. Cursos de
Programación Web en:
https://programacionfullstack.com/

 Programación Java EE
(https://www.ecodeup.com/category/programacion-ee/) 
CRUD JSP y Servlet (https://www.ecodeup.com/tag/crud-jsp-y-
servlet/), Programación JSP y Servlet
(https://www.ecodeup.com/tag/programacion-jsp-y-servlet/)

 Cómo escribir y leer archivos Cómo integrar Bootstrap con JSP y


Microsoft Excel en Java crear un proyecto Web en Java 8 
(https://www.ecodeup.com/como-
escribir-y-leer-archivos-microsoft-
excel-en-java/)

ARTÍCULOS RECOMENDADOS

(https://www.ecode (https://www.ecode (https://www.ecode


up.com/como-crear- up.com/como-crear- up.com/jsp-servlet-
un-web-services- un-repositorio- que-es-un-java-
soap-usando-jax- local-con-git-y- bean/)
ws-en-eclipse/) subirlo-a-github/)  octubre 23, 2017
 septiembre 26, 2018  septiembre 26, 2018 (https://www.ecodeup.co
(https://www.ecodeup.co (https://www.ecodeup.co m/2017/10/23/) 
m/2018/09/26/)  m/2018/09/26/)  Elivar Largo
Elivar Largo Elivar Largo (https://www.ecodeup.co
(https://www.ecodeup.co (https://www.ecodeup.co m/author/elargo/)  0
m/author/elargo/)  0 m/author/elargo/)  0 (https://www.ecodeup.co
(https://www.ecodeup.co (https://www.ecodeup.co m/jsp-servlet-que-es-un-
m/como-crear-un-web- m/como-crear-un- java-bean/#respond)

https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 22/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

services-soap-usando- repositorio-local-con-git- JSP-SERVLET: QUÉ


jax-ws-en- y-subirlo-a-
ES UN JAVA BEAN?
eclipse/#respond) (https://www.ecode
github/#respond)

CÓMO CREAR UN CÓMO CREAR UN up.com/jsp-servlet-


WEB SERVICES REPOSITORIO que-es-un-java-
SOAP USANDO LOCAL CON GIT Y bean/)
JAX-WS EN SUBIRLO A GITHUB JSP Servlet: Qué es
ECLIPSE
(https://www.ecode un JavaBean? Hola
(https://www.ecode up.com/como-crear- que tal,...
up.com/como-crear- un-repositorio- Programación Java EE
un-web-services- local-con-git-y- (https://www.ecodeup.c
soap-usando-jax- subirlo-a-github/) ee/)
ws-en-eclipse/) Cómo crear un  
Cómo crear un web repositorio local con
services SOAP Git y subirlo...
usando JAX-WS en... Programación Java EE
Programación Java EE (https://www.ecodeup.c
(https://www.ecodeup.c ee/)
ee/)
 
 

29 THOUGHTS TO “CÓMO CREAR UN CRUD EN JAVA WEB

CON JSP Y SERVLET”

Fernando
 9 julio, 2017 at 10:58 am
(https://www.ecodeup.com/como-crear-un-crud-
en-java-web-con-jsp-y-servlet/#comment-1796)
Gracias por compartir, oye puedes hacer un tutorial donde
expliques lo mismo solo que utilizando las vistas o mejor
utilizando PrimeFaces y JasperReport

Responder

Elivar Largo
 9 julio, 2017 at 1:16 pm
(https://www.ecodeup.com/como-
crear-un-crud-en-java-web-con-
jsp-y-servlet/#comment-1798)
Hola Fernando, lo tendré en cuenta para los
próximos artículos.

https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 23/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

Responder

Andrés
 18 octubre, 2017 at 12:22 am
(https://www.ecodeup.com/como-crear-un-crud-
en-java-web-con-jsp-y-servlet/#comment-3519)
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?

Responder

Elivar Largo
 18 octubre, 2017 at 8:11 am
(https://www.ecodeup.com/como-
crear-un-crud-en-java-web-con-
jsp-y-servlet/#comment-3527)
Hola Andrés, gracias por tu comentario, puedes
descargar el proyecto en el enlace que está al nal
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
(https://programacionfullstack.com/)
Saludos…

Responder

ervin
 21 marzo, 2018 at 8:03 pm
(https://www.ecodeup.com/como-crear-un-crud-
en-java-web-con-jsp-y-servlet/#comment-6112)
buen dia, un excelente tutorial, pero no tengo idea donde crear
el archivo web.xml, antemano muchas gracias y exitos.

Responder


https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 24/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

Elivar Largo
 24 marzo, 2018 at 7:45 pm
(https://www.ecodeup.com/como-
crear-un-crud-en-java-web-con-
jsp-y-servlet/#comment-6173)
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

Responder

Oscar Galán
 28 marzo, 2018 at 1:11 pm
(https://www.ecodeup.com/como-crear-un-crud-
en-java-web-con-jsp-y-servlet/#comment-6252)
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 !!!!

Responder

Elivar Largo
 28 marzo, 2018 at 2:14 pm
(https://www.ecodeup.com/como-
crear-un-crud-en-java-web-con-
jsp-y-servlet/#comment-6253)
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

Responder

Oscar Galicia
 18 abril, 2018 at 5:21 am
(https://www.ecodeup.com/como-crear-un-crud-
en-java-web-con-jsp-y-servlet/#comment-6669)
Gracias por el articulo y el codigo. Todo funciona a la primera y
correctamente.
Muy completo todo. 
https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 25/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

Responder

Daya Vila
 30 mayo, 2018 at 12:30 am
(https://www.ecodeup.com/como-crear-un-crud-
en-java-web-con-jsp-y-servlet/#comment-7627)
Hola, disculpa al momento de ejecutar la aplicación, no me
muestra nada, no se si hay algún paso adicional para ello?

Responder

Elivar Largo
 30 mayo, 2018 at 2:08 pm
(https://www.ecodeup.com/como-
crear-un-crud-en-java-web-con-
jsp-y-servlet/#comment-7645)
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.

Responder

edw2121
 11 julio, 2018 at 3:01 am
(https://www.ecodeup.com/como-crear-un-crud-
en-java-web-con-jsp-y-servlet/#comment-8452)
hola muy buen articulo, solo que se pueden duplicar un mismo
usuario ya que son id diferentes habria una forma de validar un
saludo

Responder

Elivar Largo
(http://www.programacionf
ullstack.com) 
https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 26/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

 17 julio, 2018 at 10:43 pm


(https://www.ecodeup.com/como-crear-un-crud-
en-java-web-con-jsp-y-servlet/#comment-8514)
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

Responder

Luis
 4 septiembre, 2018 at 12:08 pm
(https://www.ecodeup.com/como-crear-un-crud-
en-java-web-con-jsp-y-servlet/#comment-9115)
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

Responder

Elivar Largo
(http://www.programacionf
ullstack.com)
 4 septiembre, 2018 at 12:25 pm
(https://www.ecodeup.com/como-crear-un-crud-
en-java-web-con-jsp-y-servlet/#comment-9117)
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.

Responder

Alex
 13 septiembre, 2018 at 4:18 am
(https://www.ecodeup.com/como-crear-un-crud-
en-java-web-con-jsp-y-servlet/#comment-9232)
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?
https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 27/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

Responder

Elivar Largo
(http://www.programacionf
ullstack.com)
 15 septiembre, 2018 at 10:10 pm
(https://www.ecodeup.com/como-crear-un-crud-
en-java-web-con-jsp-y-servlet/#comment-9272)
Hola Alex déjame tu correo para enviarte el zip del
proyecto

Responder

jose
 10 octubre, 2018
at 8:57 am
(https://www.ecodeu
p.com/como-crear-un-crud-en-java-
web-con-jsp-y-servlet/#comment-
9650)
hola me envías el zip del proyecto
por favor

Responder

Elivar
Largo
(http:
//www.programac
ionfullstack.com)
 26 noviembre,
2018 at 9:03 am
(https://www.ecodeu
p.com/como-crear-
un-crud-en-java-web-
con-jsp-y-
servlet/#comment-
10266)
Lo puedes descargar
del artículo al nal.
Saludos

Responder

https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 28/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

Baltazar
 5 octubre, 2018 at 4:54 pm
(https://www.ecodeup.com/como-crear-un-crud-
en-java-web-con-jsp-y-servlet/#comment-9588)
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.

Responder

Elivar Largo
(http://www.programacionf
ullstack.com)
 10 octubre, 2018 at 9:12 am
(https://www.ecodeup.com/como-crear-un-crud-
en-java-web-con-jsp-y-servlet/#comment-9654)
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.

Responder

jose
 10 octubre, 2018 at 8:59 am
(https://www.ecodeup.com/como-crear-un-crud-
en-java-web-con-jsp-y-servlet/#comment-9651)
hola por favor envíame el zip del proyecto
ingenierojosecastillo@hotmail.com
(mailto:ingenierojosecastillo@hotmail.com)

Responder

Elivar Largo
(http://www.programacionf
ullstack.com)

https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 29/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

 10 octubre, 2018 at 9:09 am


(https://www.ecodeup.com/como-crear-un-crud-
en-java-web-con-jsp-y-servlet/#comment-9652)
La descarga del proyecto la encuentras al nal en
un enlace donde dice: Descarga del Proyecto
Completo

Responder

RoggerMendo
 14 noviembre, 2018 at 11:11 pm
(https://www.ecodeup.com/como-crear-un-crud-
en-java-web-con-jsp-y-servlet/#comment-
10138)
Hola amigo muy util tu infofrmacion. No tienes un proyecto de
java aplicacion web pero con store procedures? Sería de gran
ayuda.

Responder

Elivar Largo
(http://www.programacionf
ullstack.com)
 26 noviembre, 2018 at 8:27 am
(https://www.ecodeup.com/como-crear-un-crud-
en-java-web-con-jsp-y-servlet/#comment-10260)
Hola, de momento no pero en los próximos
artículos o videos trataré este tema.

Responder

Erendira Lujan
 7 diciembre, 2018 at 3:34 pm
(https://www.ecodeup.com/como-crear-un-crud-
en-java-web-con-jsp-y-servlet/#comment-
10415)
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.

Responder

https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 30/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

Elivar Largo
(http://www.programacionf
ullstack.com)
 7 diciembre, 2018 at 3:51 pm
(https://www.ecodeup.com/como-crear-un-crud-
en-java-web-con-jsp-y-servlet/#comment-10416)
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 identi car al momento de hacer el INSERT
en la claseArticuloDAO.

Responder

Guillermo Cárdenas
(http://www.ocobosoft.com)
 23 enero, 2019 at 4:36 pm
(https://www.ecodeup.com/como-crear-un-crud-
en-java-web-con-jsp-y-servlet/#comment-11206)
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

Responder

Daniela R
 21 abril, 2019 at 12:01 am
(https://www.ecodeup.com/como-crear-un-crud-

13031)
en-java-web-con-jsp-y-servlet/#comment- 
https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 31/32
24/7/2019 Cómo crear un CRUD en Java Web con JSP y Servlet

Excelente Elivar! Muchas gracias por la información, me has


sacado de muchas dudas. Seguiré leyendo todos tus artículos.

Responder

DEJAR UN COMENTARIO

Comment

Name

Email

Website URL

Guardar mi nombre, correo electrónico y sitio web en este


navegador para la próxima vez que haga un comentario.

Añadir Comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se


procesan los datos de tus comentarios
(https://akismet.com/privacy/).


https://www.ecodeup.com/como-crear-un-crud-en-java-web-con-jsp-y-servlet/ 32/32

También podría gustarte