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

La aplicaci�n Libreria tiene siete p�ginas JSP. Cada una representa una p�gina Web que realiza una operaci�n independiente sobre la base de datos. El estado de la base de datos en cada p�gina es independiente de su estado en la p�gina anterior. Si la base de datos cambia debido a una solicitud de otro usuario, la p�gina Web lo detectar� y reaccionar� de la forma apropiada. Por ejemplo, si estamos modificando un libro y otro usuario borra ese libro antes de que confirmemos la solicitud de modificaci�n, la JSP nos notificar� el fallo al intentar modificar un libro que ahora no existe.

.�La p�gina Index.jsp

Es la p�gina principal de la aplicaci�n web Libreria, y es la primera p�gina que se muestra a un usuario cuando entra en la aplicaci�n Web. Muestra una tabla con todos los libros que hay en la tabla Libros de la base de datos. Cada fila de la tabla muestra un libro individual, y enlaces para borrar o modificar es libro. La parte inferior de la p�gina tiene un enlace para poder a�adir nuevos libros.

  • El enlace A�adir un Nuevo Libro pasa el control a la p�gina Form_Insertar.jsp.
  • El enlace Borrar pasa el control a la p�gina Form_Borrar.jsp con el id del libro a borrar.
  • El enlace Modificar pasa el control a la p�gina Form_Modificar.jsp con el id del libro a modificar.

.�Prop�sito de la P�gina Index.jsp

El prop�sito de Index.jsp es producir una p�gina Web con una tabla que muestre el contenido de la tabla Libros de la base de datos, con enlaces para a�adir nuevos libros a la base de datos [Form_Insertar.jsp]; borrar libros espec�ficos de la base de datos [Form_Borrar.jsp]; y modificar libros espec�ficos en la base de datos [Form_Modificar.jsp].

La siguiente figura muestra un ejemplo de la p�gina principal de la aplicaci�n Libreria:

.�Aspecto de la P�gina

Este c�digo HTML dibuja el aspecto de la p�gina con un enlace a Form_Insertar.jsp en la parte inferior de la p�gina

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

<html>
    <head>
        <title>P�gina Principal de mi Librer�a</title>
    </head>
    <body bgcolor="#ffffee">
        <h1><center>P�gina Principal de mi Librer�a</center></h1>
  
        --- Aqu� va el c�digo que muestra la tabla con los datos

        <hr>
        <center>
            <destacar><a href="Form_Insertar.jsp">A�adir un Nuevo Libro</a></destacar>
       </center>
    </body>
</html>

.�Mostrar la Tabla

Este c�digo HTML muestra la tabla y sus cabeceras:

        <table align="center" cellpadding="2" cellspacing="2" border="1" 
          width="80%" bgcolor="#dddddd">
            <tr>
                <th>Autor</th>
                <th>Titulo</th>
                <th>Ubicacion</th>
                <th>Accion</th>
                <th>ID</th>
            </tr>

        -- Aqu� va el c�digo que muestra los datos 

    </table>

.�Bucle por Todas las Filas de la Tabla

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

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

Luego se recupera un objeto Collection con el contenido de la base de datos:

            Collection libros = librosBD.getLibros();

Si el objeto Collection no es nulo, y contiene alg�n libro [es decir, su tama�o es mayor que cero], se procesa el objeto Collection recuperando uno por uno todos sus libros:

            if (libros != null) {
                if (libros.size () > 0) {
                    for (Iterator iterator = libros.iterator(); iterator.hasNext(); ) {

                ... aqu� va el c�digo que muestra los datos de una fila...

            }
        }
    }

.�Mostrar un Libro en un Fila de la Tabla

Este c�digo HTML mezclado con c�digo Java muestra un libro en una fila de la tabla. El c�digo Java simplemente recupera campos individuales desde el libro:libro.getAutor() devuelve el nombre del autor del libro; libro.getTitulo () devuelve el t�tulo del libro; libro.getUbicacion () devuelve la ubicaci�n del libro en nuestras estanter�as; y libro.getId () devuelve el id. En la primera columna de la tabla va el nombre del autor; en la segunda columna va el t�tulo; en la tercera columna va la ubicaci�n, en la cuarta columna un enlace a Form_Borrar.jsp, la palabra "o" y un enlace a Form_Modificar.jsp; y en la columna final va el id:

                        <tr>
                            <td>
                                <%= libro.getAutor () %>
                            </td>
                            <td>
                                <%= libro.getTitulo () %>
                            </td>
                            <td>
                                <%= libro.getUbicacion () %>
                            </td>
                            <td align="center">
                                <destacar><a href="Form_Borrar.jsp?id=<%= libro.getId () %>">
                                                  Borrar</a></destacar>
                                o
                                <destacar><a href="Form_Modificar.jsp?id=<%= libro.getId () %>">
                                                 Modificar</a></destacar>
                            </td>
                            <td align="center">
                                <%= libro.getId () %>
                            </td>
                        </tr>

Cuando se selecciona el enlace "Borrar" se le pasa el par�metro id a la p�gina Form_Borrar.jsp, y cuando se selecciona el enlace "Modificar" se le pasa el mismo par�metro a la p�gina Form_Modificar.jsp.

.�C�digo Completo de la P�gina Index.jsp

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

<html>
    <head>
        <title>P�gina Principal de mi Librer�a</title>
    </head>
    <body bgcolor="#ffffee">
        <h1><center>P�gina Principal de mi Librer�a</center></h1>
        <table align="center" cellpadding="2" cellspacing="2" border="1" 
                   width="80%" bgcolor="#dddddd">
            <tr>
                <th>Autor</th>
                <th>Titulo</th>
                <th>Ubicacion</th>
                <th>Accion</th>
                <th>ID</th>
            </tr>
<%
            LibrosBD librosBD = (LibrosBD) application.getAttribute ("BaseDatos");
            Collection libros = librosBD.getLibros();
            if (libros != null) {
                if (libros.size () > 0) {
                    for (Iterator iterator = libros.iterator(); iterator.hasNext(); ) {
                        Libro libro = (Libro) iterator.next ();
%>
                        <tr>
                            <td>
                                <%= libro.getAutor () %>
                            </td>
                            <td>
                                <%= libro.getTitulo () %>
                            </td>
                            <td>
                                <%= libro.getUbicacion () %>
                            </td>
                            <td align="center">
                                <destacar><a href="Form_Borrar.jsp?id=<%= libro.getId () %>">
                                                  Borrar</a></destacar>
                                o
                                <destacar><a href="Form_Modificar.jsp?id=<%= libro.getId () %>">
                                                   Modificar</a></destacar>
                            </td>
                            <td align="center">
                                <%= libro.getId () %>
                            </td>
                        </tr>
<%
                    }
                }
            }
%>
        </table>
        <br>
        <hr>
        <center>
            <destacar><a href="Form_Insertar.jsp">A�adir un Nuevo Libro</a></destacar>
       </center>
    </body>
</html>

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR