Programación en castellano
Inicio > Tutoriales > J2EE > Crear tu Primera Aplicación Web Real con Tomcat 4 y MySQL
-Tutoriales

Crear tu Primera Aplicación Web Real con Tomcat 4 y MySQL


Modificar un Registro de la Base de Datos

. Form_Modificar.jsp

Form_Modificar.jsp muestra un formulario HTML con los valores actuales del libro. También tiene un botón para enviar el formulario y un enlace para abortar la solicitud.

. Propósito de la Página Form_Modificar.jsp

El propósito de esta página es producir una página web que muestre los datos del libro a modificar. El usuario podría o modificar los datos del formulario y enviar el formulario para su procesamiento transfiriendo el control a la página Modificar.jsp o abortar el proceso seleccionando un enlace de vuelta a la página Index.jsp. La siguiente imagen nos muestra un ejemplo de la página Form_Modificar.jsp:

. Crear el Aspecto de la Página Form_Modificar.jsp

Este código HTML crea el aspecto de la página con un enlace en la parte inferior hacia la página Index.jsp etiquetado como "Volver a la Página Inicial [el libro no se modificará]".

<%@ page language="java" import="java.util.*, libreria.*" %>

<html>
    <head>
        <title>Librería -- Modificando el Libro <%= request.getParameter ("id") %></title>
    </head>
    <body bgcolor="#ffffee">
        <h1><center>Librería -- Modificando el Libro <%= request.getParameter ("id") %></center></h1>

        -- aquí va el código que recupera el libro a modificar --

        -- aquí va el código para mostrar el formulario --

         <hr>
        <center>
            <destacar><a href="Index.jsp">Volver a la Página Inicial 
                 [el libro no se modificará]</a></destacar>
        </center>
    </body>
</html>

. Recuperar los Datos del libro a Modificar

Este código Java recupera el ejemplar de libreria.LibrosBD almacenado en el atributo BaseDatos de la aplicación web por libreria.ContextListener:

        LibrosBD librosBD = (LibrosBD) application.getAttribute ("BaseDatos");

Luego obtiene de la base de datos el libro cuyo id se ha pasado como parámetro a esta página desde Index.jsp:

        Libro libro = (Libro) librosBD.getLibro (request.getParameter ("id"));

. Mostrar el Formulario

Este código HTML mezclado con código Java crea un formulario cuya acción es "postear" los datos modificados del libro que hay en los campos de entrada a la página Modificar.jsp:

    <form method="post" action="Modificar.jsp">

Uno de estos campos es un campo oculto que contiene el id del libro a modificar -- esto nos asegura que el parámetro id pasado desde la página Index.jsp se pasa a la página Modificar.jsp.

    <input name="id" type="hidden" value="<%= libro.getId () %>">

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 pre-rellenos con los datos existentes:

            <table align="center" cellpadding="2" cellspacing="2" border="1" 
                       width="80%" bgcolor="#dddddd">
                <tr>
                    <th>ISBN:</th>
                    <td><input name="isbn" type="text" value="<%= libro.getIsbn () %>"></td>
                </tr>
                <tr>
                    <th>Editorial:</th>
                    <td><input name="editorial" type="text" value="<%= libro.getEditorial() %>"></td>
                </tr>
                <tr>
                    <th>Autor:</th>
                    <td><input name="autor" type="text" value="<%= libro.getAutor () %>"></td>
                </tr>
                <tr>
                    <th>Categoría:</th>
                    <td><input name="categoria" type="text" value="<%= libro.getCategoria () %>"></td>
                </tr>
                <tr>
                    <th>Título:</th>
                    <td><input name="titulo" type="text" value="<%= libro.getTitulo () %>"></td>
                </tr>
                <tr>
                    <th>Ubicación:</th>
                    <td><input name="ubicacion" type="text" value="<%= libro.getUbicacion () %>"></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 "Modificar el Libro nnn":

    <input align="center" type="submit" value="Modificar el Libro <%= request.getParameter ("id")%>">

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 Modificar.jsp

. Código Completo de la Página Form_Modificar.jsp

<%@ page language="java" import="java.util.*, libreria.*" %>

<html>
    <head>
        <title>Librería -- Modificando el Libro <%= request.getParameter ("id") %></title>
    </head>
    <body bgcolor="#ffffee">
        <h1><center>Librería -- Modificando el Libro <%= request.getParameter ("id") %></center></h1>
<%
        LibrosBD librosBD = (LibrosBD) application.getAttribute ("BaseDatos");
        Libro libro = (Libro) librosBD.getLibro (request.getParameter ("id"));
        if (libro != null){
%>
            <form method="post" action="Modificar.jsp">
            <input name="id" type="hidden" value="<%= libro.getId () %>">
            <table align="center" cellpadding="2" cellspacing="2" border="1" 
                       width="80%" bgcolor="#dddddd">
                <tr>
                    <th>ISBN:</th>
                    <td><input name="isbn" type="text" value="<%= libro.getIsbn () %>"></td>
                </tr>
                <tr>
                    <th>Editorial:</th>
                    <td><input name="editorial" type="text" value="<%= libro.getEditorial() %>"></td>
                </tr>
                <tr>
                    <th>Autor:</th>
                    <td><input name="autor" type="text" value="<%= libro.getAutor () %>"></td>
                </tr>
                <tr>
                    <th>Categoría:</th>
                    <td><input name="categoria" type="text" value="<%= libro.getCategoria () %>"></td>
                </tr>
                <tr>
                    <th>Título:</th>
                    <td><input name="titulo" type="text" value="<%= libro.getTitulo () %>"></td>
                </tr>
                <tr>
                    <th>Ubicación:</th>
                    <td><input name="ubicacion" type="text" value="<%= libro.getUbicacion () %>"></td>
                </tr>
            </table>
            <br>
            <center>
                <input name="pagemode" type="hidden" value="submit">
                <input align="center" type="submit" value="Modificar el Libro 
                     <%= request.getParameter ("id") %>">
            </center>
<%
        }
        else {
%>
            <center>
                <h2><font color="#cc0000">No se pudo encontrar el libro  
                      <%= request.getParameter ("id") %></font></h2>
            </center>
<%
        }
%>
        <hr>
        <center>
            <destacar><a href="Index.jsp">Volver a la Página Inicial 
                   [el libro no se modificará]</a></destacar>
        </center>
    </body>
</html>

. Modificar.jsp

Modificar.jsp muestra en una tabla los campos modificados del libro recibido. Luego intenta modificar la base de datos y muestra el éxito o el fracaso del intento.

. Propósito de la Página Modificar.jsp

El propósito de esta página es producir una página web con una tabla que muestre los parámetros del libro pasados desde la página Form_Modificar.jsp; realmente realiza la actualización de la base de datos; muestra si la base de datos se ha actualizado con éxito o no; y espera hasta que el usuario pulse el enlace de vuelta a la página Index.jsp. Aquí tenemos un ejemplo de la página Modificar.jsp:

. Aspecto de la Página Modificar.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:

<%@ page language="java" import="java.util.*, libreria.*" %>

<html>
    <head>
        <title>Librería: Modificando el Libro  <%= request.getParameter ("id") %></title>
    </head>
    <body bgcolor="#ffffee">
        <h1><center>Librería: Modificando el Libro   <%= request.getParameter ("id") %></center></h1>

            -- aquí va el código que muestra la tabla --

            -- aquí va el código que actualiza la base de datos y muestra
               el éxito o el fracaso de la operación --

        <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 libro recuperados de 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 desde los parámetros pasados desde Form_Modificar.jsp:

            Libro libro = new Libro  (
                request.getParameter ("id"),
                request.getParameter ("isbn"),
                request.getParameter ("editorial"),
                request.getParameter ("autor"),
                request.getParameter ("categoria"),
                request.getParameter ("titulo"),
                request.getParameter ("ubicacion")
            );

Luego se modifica el libro en la base de datos:

    int rowsAffected = librosBD.modificarLibro (libro);

Si sólo se ve afectada una fila por la actualización de la base de datos se muestra el mensaje "Se ha modificado el Libro nnn" en color verde, si no es así, se muestra el mensaje "No se pudo modificar el libro nnn" en color rojo:

    if (rowsAffected == 1) {
%>
        <center>
            <h2><font color="#00cc00">Se ha modificado el Libro 
              <%= request.getParameter ("id") %></font></h2>
        </center>
<%
    }
    else {
%>
        <center>
            <h2><font color="#cc0000">No se Pudo modificar el Libro 
               <%= request.getParameter ("id") %></font></h2>
        </center>
<%
    }

. Código Completo de la Página Modificar.jsp

<%@ page language="java" import="java.util.*, libreria.*" %>

<html>
    <head>
        <title>Librería: Modificando el Libro  <%= request.getParameter ("id") %></title>
    </head>
    <body bgcolor="#ffffee">
        <h1><center>Librería: Modificando el Libro   <%= request.getParameter ("id") %></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  (
                request.getParameter ("id"),
                request.getParameter ("isbn"),
                request.getParameter ("editorial"),
                request.getParameter ("autor"),
                request.getParameter ("categoria"),
                request.getParameter ("titulo"),
                request.getParameter ("ubicacion")
            );
        int rowsAffected = librosBD.modificarLibro(libro);
        if (rowsAffected == 1) {
%>
            <center>
                <h2><font color="#00cc00">Se ha modificado el Libro 
                    <%= request.getParameter ("id") %></font></h2>
            </center>
<%
        }
        else
        {
%>
            <center>
                <h2><font color="#cc0000">No se pudo modificar el Libro  
                     <%= request.getParameter ("id") %></font></h2>
            </center>
<%
        }
%>
        <hr>
        <center>
            <destacar><a href="Index.jsp">Volver a la Página Inicial</a></destacar>
        </center>
    </body>
</html>
 
Patrocinados
 

Copyright © 1999-2010 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Desarrollo web y diseño profesional por Color Vivo Internet. Un proyecto de los Hermanos Carrero

red internet: videos gratis | messenger gratis | decoración | juegos gratis | servidores dedicados
más internet: recursos gratis | bitácoras | gifs animados