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 informacion de un ex-alumno y otro administrador borra esa informacion antes de que confirmemos la solicitud de modificación, la JSP nos notificará el fallo al intentar modificar algo que ya no existe.
Analisaremos el codigo de tan solo una de las paginas, del resto tan solo se entragara el codigo, considerando que con la comprensión del modo de trajajo de Index.jsp, y con algo de conocimiento de html, la comprensión del resto resultara trivial.
<%@ page language=\"java\" import=\"java.util.*, electronica.*\" %> <html> <head> <title>Base de Datos Ex-Alumnos Depto. Electronica</title> </head> <body bgcolor=\"#ffffee\"> <center> <b><a href=\"Form_Insertar.jsp\">Añadase a la base de Datos del Departamento</a></b> </center> <h1><center>Base de Datos Ex-Alumnos Depto. Electronica</center></h1>‚ <table align=\"center\" cellpadding=\"2\" cellspacing=\"2\" border=\"1\" width=\"80%\" bgcolor=\"#dddddd\"> <tr> <th>Nombre</th> <th>Ingreso</th> <th>Correo</th> </tr> <% ExAlumnosBD exAlumnosBD = (ExAlumnosBD) application.getAttribute (\"BaseDatos\"); Collection exAlumnos = exAlumnosBD.getExAlumnos();‚ if (exAlumnos != null) { if (exAlumnos.size () > 0) { for (Iterator iterator = exAlumnos.iterator(); iterator.hasNext(); ) { ExAlumno exAlumno = (ExAlumno) iterator.next ();‚ %> <tr> <td> <%= exAlumno.getNombre () %> </td> <td> <%= exAlumno.getIngreso () %> </td> <td> <%= exAlumno.getMail () %> </td> </tr> <% } } } %> </table> <br> <hr> <center> <b><a href=\"Administrador.jsp\">Administrador(Restringido(Prontamente ;P))</a></b> </center> </body> </html>
Es la página principal de la aplicación , y es la primera página que se muestra a un usuario cuando entra. Muestra una tabla con todos ex-alumnos que hay en la tabla ExAlumno de la base de datos. Cada fila de la tabla muestra un ex-alumno, y hay 2 enlaces una a la pagina que permite insertar un nuevo usuario como otro a la página del administrador, que permite modificar o borrar un usuario.
Analisis Partes Principales del Código.
Este código HTML dibuja el aspecto de la página con un enlace a Form_Insertar.jsp en la parte superior de la pagina y a Administrador.jsp en la parte inferior.
<%@ page language=\"java\" import=\"java.util.*, electronica.*\" %> <html> <head> <title>Base de Datos Ex-Alumnos Depto. Electronica</title> </head> <body bgcolor=\"#ffffee\"> <center> <b><a href=\"Form_Insertar.jsp\">Añadase a la base de Datos del Departamento</a></b> </center> <h1><center>Base de Datos Ex-Alumnos Depto. Electronica</center></h1>‚ ***Aquí va el código que muestra la tabla con los datos <hr> <center> <b><a href=\"Administrador.jsp\">Administrador(Restringido(Prontamente ;P))</a></b> </center> </body> </html>
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>Nombre</th> <th>Ingreso</th> <th>Correo</th> </tr> ***Aquí va el código que muestra los datos </table>
Este código Java recupera el ejemplar electronica.ExAlumnosBD almacenado en el atributo BaseDatos de la aplicación Web por electronica.ContextListener:
ExAlumnosBD exAlumnosBD = (ExAlumnosBD) application.getAttribute (\"BaseDatos\");
Luego se recupera un objeto Collection con el contenido de la base de datos:
Collection exAlumnos = exAlumnosBD.getExAlumnos();
Si el objeto Collection no es nulo, y contiene algún dato [es decir, su tamaño es mayor que cero], se procesa el objeto Collection recuperando uno por uno todos sus libros:
if (exAlumnos != null) { if (exAlumnos.size () > 0) { for (Iterator iterator = exAlumnos.iterator(); iterator.hasNext(); ) { ExAlumno exAlumno = (ExAlumno) iterator.next (); *** aquí va el código que muestra los datos de una fila... } } }
Este código HTML mezclado con código Java muestra un ex-alumno en una fila de la tabla. El código Java simplemente recupera campos individuales desde el exAlumno.getNombre(); devuelve el nombre del ex-alumno, etc.
<td>
<%= exAlumno.getNombre () %>
</td>
<td>
<%= exAlumno.getIngreso () %>
</td>
<td>
<%= exAlumno.getMail () %>
</td>
Acceso al resto de las paginas
El link siguiente permite el acceso a las otras paginas jso, estas se encuentran alojadas en un servidor normal, por lo cual se puede apreciar las caracteristicas del codigo JSP en ellas.