Insertar un Registro en la Base de Datos
Form_Insertar.jsp
Form_Insertar.jsp muestra un formulario en el que introduciremos los campos del nuevo libro. En la parte inferior de la página hay en enlace para abortar la solicitud.
Propósito de la Página Form_Insertar.jsp
El propósito de esta página es producir una página Web con un formulario que el usuario rellena con los datos de un libro. El usuario podría entonces enviar los datos del formulario para su procesamiento transfiriendo el control a la página o abortar el proceso seleccionando un enlace de vuelta a la página Index.jsp. En la siguiente figura podemos ver un ejemplo de la página Form_Insertar.jsp:
Aspecto de la Página Form_Insertar.jsp
Este código HTML crea el aspecto de la página con un enlace a la página Index.jsp, etiquetado como "Volver a la Página Inicial [el libro no se añadirá]" en la parte inferior de la página:
<%@ page language="java" import="java.util.*, libreria.*" %>
<html>
<head>
<title>Librería: Insertar un nuevo libro</title>
</head>
<body bgcolor="#ffffee">
<h1><center>Librería: Insertar un nuevo libro</center></h1>
-- Aquí va el código que muestra el formulario --
<hr>
<center>
<destacar><a href="Index.jsp">Volver a la Página Inicial
[el libro no se añadirá]</a></destacar>
</center>
</body>
</html>
Dibujar el Formulario
Este código HTML mezclado con código Java crea un formulario cuya acción es "postear" los datos del nuevo libro que hay en los campos de entrada a la página :
<form method="post" action="Insertar.jsp">
Luego se muestra una tabla; en la columna izquierda de la tabla se muestran los nombres de los campos; la columna derecha contiene los campos de entrada:
<table align="center" cellpadding="2" cellspacing="2" border="1"
width="80%" bgcolor="#dddddd">
<tr>
<th>ISBN:</th>
<td><input name="isbn" type="text"></td>
</tr>
<tr>
<th>Editorial:</th>
<td><input name="editorial" type="text"></td>
</tr>
<tr>
<th>Autor:</th>
<td><input name="autor" type="text"></td>
</tr>
<tr>
<th>Categoría:</th>
<td><input name="categoria" type="text"></td>
</tr>
<tr>
<th>Título:</th>
<td><input name="titulo" type="text"></td>
</tr>
<tr>
<th>Ubicación:</th>
<td><input name="ubicacion" type="text"></td>
</tr>
</table>
Luego se define un campo oculto que simula la pulsación del botón submit cuando se pulsa la tecla return:
<input name="pagemode" type="hidden" value="submit">
Luego se muestra el botón de envío del formulario etiquetado "Añadir el nuevo libro":
<input type="submit" value="Añadir el nuevo libro">
Cuando se pulsa el botón de envío, se pasan los parámetros isbn, editorial, autor, categoria, titulo y ubicacion a la página
Código Completo de la Página Form_Insertar.jsp
<%@ page language="java" import="java.util.*, libreria.*" %>
<html>
<head>
<title>Librería: Insertar un nuevo libro</title>
</head>
<body bgcolor="#ffffee">
<h1><center>Librería: Insertar un nuevo libro</center></h1>
<form method="post" action="Insertar.jsp">
<table align="center" cellpadding="2" cellspacing="2" border="1"
width="80%" bgcolor="#dddddd">
<tr>
<th>ISBN:</th>
<td><input name="isbn" type="text"></td>
</tr>
<tr>
<th>Editorial:</th>
<td><input name="editorial" type="text"></td>
</tr>
<tr>
<th>Autor:</th>
<td><input name="autor" type="text"></td>
</tr>
<tr>
<th>Categoría:</th>
<td><input name="categoria" type="text"></td>
</tr>
<tr>
<th>Título:</th>
<td><input name="titulo" type="text"></td>
</tr>
<tr>
<th>Ubicación:</th>
<td><input name="ubicacion" type="text"></td>
</tr>
</table>
<br>
<center>
<input name="pagemode" type="hidden" value="submit">
<input type="submit" value="Añadir el nuevo libro">
</center>
<hr>
<center>
<destacar><a href="Index.jsp">Volver a la Página Inicial
[el libro no se añadirá]</a></destacar>
</center>
</body>
</html>
Insertar.jsp
Esta página muestra los campos que recibe del nuevo libro. Luego intenta añadir el nuevo libro a la base de datos y muestra el éxito o el fracaso en el intento. En la parte inferior de la página hay un enlace a la página Index.jsp.
Propósito de la Página Insertar.jsp
El propósito de esta página es producir una página Web con un tabla que muestre los parámetros del libro que se le han pasado desde la página Form_Insertar.jsp; realmente realiza la actualización de la base de datos; muestra si la base de datos se actualizó correctamente o no, y espera hasta que el usuario seleccione el enlace de vuelta a Index.jsp. La siguiente figura muestra un ejemplo de la página Insertar.jsp:
Aspecto de la Página Insertar.jsp
Este código HTML genera el aspecto de la página con un enlace a Index.jsp en la parte inferior de la página:
<html>
<head>
<title>Librería -- Insertando un nuevo Libro</title>
</head>
<body bgcolor="#ffffee">
<h1><center>Librería -- Insertando un nuevo Libro</center></h1>
-- aquí va el código para mostrar la tabla --
-- aquí va el código para actualizar la base de datos y mostrar
el éxito o el fracaso de la operación --
<hr>
<center>
<destacar><a href="Index.jsp">Volver a la Página Inicial</a></destacar>
</center>
</body>
</html>
Mostrar la Tabla
Este código HTML mezclado con código Java muestra la tabla; en la columna izquierda se muestran los nombres de los campos; la columna derecha contiene los datos del nuevo libro recuperados desde los parámetros:
<table align="center" cellpadding="2" cellspacing="2" border="1"
width="80%" bgcolor="#dddddd">
<tr>
<th>ISBN:</th>
<td><%= request.getParameter ("isbn") %></td>
</tr>
<tr>
<th>Editorial:</th>
<td><%= request.getParameter ("editorial") %></td>
</tr>
<tr>
<th>Autor:</th>
<td><%= request.getParameter ("autor") %></td>
</tr>
<tr>
<th>Categoría:</th>
<td><%= request.getParameter ("categoria") %></td>
</tr>
<tr>
<th>Título:</th>
<td><%= request.getParameter ("titulo") %></td>
</tr>
<tr>
<th>Ubicación:</th>
<td><%= request.getParameter ("ubicacion") %></td>
</tr>
</table>
Actualizar la Base de Datos y Mostrar el Éxito o el Fracaso
Este código Java mezclado con código HTML recupera el ejemplar de libreria.LibrosBD almacenado en el atributo BaseDatos de la aplicación por libreria.ContextListener:
LibrosBD librosBD =
(LibrosBD) application.getAttribute ("BaseDatos");
Esto construye un objeto Libro con los parámetros pasados desde Form_Insertar.jsp:
Libro libro = new Libro (
null,
request.getParameter ("isbn"),
request.getParameter ("editorial"),
request.getParameter ("autor"),
request.getParameter ("categoria"),
request.getParameter ("titulo"),
request.getParameter ("ubicacion")
);
Luego se añade el libro a la base de datos:
int rowsAffected = librosBD.insertarLibro (libro);
Si sólo se ve afectada una fila por la actualización de la base de datos se muestra el mensaje "Se ha Añadido a la Base de Datos" en color verde, si no es así, se muestra el mensaje "No se Pudo Añadir el Registro" en color rojo:
if (rowsAffected == 1) {
%>
<center>
<h2><font color="#00cc00">Se ha añadido a la Base de Datos</font></h2>
</center>
<%
}
else {
%>
<center>
<h2><font color="#cc0000">No se ha podido Añadir el registro</font></h2>
</center>
<%
}
%>
Código Completo de la Página Insertar.jsp
<%@ page language="java" import="java.util.*, libreria.*" %>
<html>
<head>
<title>Librería -- Insertando un nuevo Libro</title>
</head>
<body bgcolor="#ffffee">
<h1><center>Librería -- Insertando un nuevo Libro</center></h1>
<table align="center" cellpadding="2" cellspacing="2" border="1"
width="80%" bgcolor="#dddddd">
<tr>
<th>ISBN:</th>
<td><%= request.getParameter ("isbn") %></td>
</tr>
<tr>
<th>Editorial:</th>
<td><%= request.getParameter ("editorial") %></td>
</tr>
<tr>
<th>Autor:</th>
<td><%= request.getParameter ("autor") %></td>
</tr>
<tr>
<th>Categoría:</th>
<td><%= request.getParameter ("categoria") %></td>
</tr>
<tr>
<th>Título:</th>
<td><%= request.getParameter ("titulo") %></td>
</tr>
<tr>
<th>Ubicación:</th>
<td><%= request.getParameter ("ubicacion") %></td>
</tr>
</table>
<%
LibrosBD librosBD = (LibrosBD) application.getAttribute ("BaseDatos");
Libro libro = new Libro (
null,
request.getParameter ("isbn"),
request.getParameter ("editorial"),
request.getParameter ("autor"),
request.getParameter ("categoria"),
request.getParameter ("titulo"),
request.getParameter ("ubicacion")
);
int rowsAffected = librosBD.insertarLibro(libro);
if (rowsAffected == 1) {
%>
<center>
<h2><font color="#00cc00">Se ha añadido a la Base de Datos</font></h2>
</center>
<%
}
else {
%>
<center>
<h2><font color="#cc0000">No se ha podido Añadir el registro</font></h2>
</center>
<%
}
%>
<hr>
<center>
<destacar><a href="Index.jsp">Volver a la Página Inicial</a></destacar>
</center>
</body>
</html>