Práctica 3: JSP y Java para aplicaciones web

En esta práctica nos iremos al lado del servidor para que la aplicación de blogs funcione de verdad. Como resultado de esta práctica tendremos un sitio web totalmente operativo.

Software y plantillas necesarias para la práctica

Para compilar y ejecutar la práctica es necesario primero instalar las herramientas de desarrollo y luego usar una serie de plantillas para crear vuestro proyecto.

  mysql -u tw -p < blogtw.sql

Os pedirá el password, que en los laboratorios es "tw". La sentencia anterior se conecta con el servidor de base de datos mysql empleando el usuario "tw" (ya creado en los laboratorios) y ejecuta el SQL contenido en blogtw.sql. 

IMPORTANTE: aunque tanto el driver como la base de datos son permanentes y no se borran aunque rearranquéis, en los laboratorios es conveniente hacer esto al comienzo de todas las sesiones para evitar posibles problemas con lo que hagan otros usuarios.

Estructura de la base de datos

La siguiente figura muestra la estructura de la base de datos en un diagrama E-R. Como puede observarse, hay relaciones uno a muchos entre entradas-comentarios y entradas-eventos. Además, las tablas comentarios y eventos tienen claves ajenas. Si se borra una entrada se borrarán en cascada todos los eventos y comentarios asociados. En cuanto a la tabla de usuarios hay que tener en cuenta que por el momento solo estará el editor del blog (salvo que hagáis la parte optativa, en cuyo caso habría más usuarios y se podría establecer una relación 1:N entre usuarios y comentarios).

diagrama E-R de la base de datos

En cuanto al SQL tened en cuenta que:

Estructura del código

El código Java que se desarrollará en la práctica viene en dos formas: JSPs (Java mezclado con HTML) y clases Java (código Java "puro"). La misión de los JSPs es lanzar las operaciones necesarias para la aplicación (por ejemplo, ver las últimas 5 entradas del blog) y mostrar el resultado. Para ello se apoyará en el código contenido en las clases Java.

IMPORTANTE: el código Java incluido en los JSPs debe ser el mínimo imprescindible para lanzar las operaciones y mostrar los resultados. Todo el código de acceso a la base de datos debe estar fuera de los JSPs en clases Java auxiliares. Un JSP con mucho código Java va siendo más difícil de leer y mantener a medida que crece el tamaño de la aplicación.

El "reparto de responsabilidades" del código es como sigue:

A continuación se muestra un diagrama de clases de la aplicación para que podáis ver la estructura. Los métodos que debéis implementar aparecen en negrita. Pulsad sobre el diagrama para verlo ampliado.

diagrama de clases


Implementación a desarrollar

Básicamente consiste en que todos los enlaces, páginas y formularios del sitio funcionen adecuadamente.

Algunas aclaraciones:

Calendario de implementación

Hay que tener en cuenta que la práctica 3 es compleja y los conocimientos necesarios se irán viendo en las sucesivas sesiones de teoría. Con lo que se ha visto hasta la fecha (en el momento de publicarse este enunciado) no es posible implementar toda la práctica.

Para hacer... Necesitaréis saber...
Familiarización con Eclipse y Tomcat. Creación del proyecto en Eclipse. Prueba de la plantilla Java (ya visto en clase de teoría)
Implementación de los métodos de las clases del paquete tw.datos JDBC (teoría de la semana del 27 nov al 3 dic)
Implementación de las páginas JSP JSP básico (teoría de la semana del 27 nov al 3 dic)
Parte privada de la web Seguridad y sesiones (teoría de la semana del 11 al 17 de dic)

Parte optativa

Hacer que los usuarios tengan que registrarse para poder poner comentarios:

Puntuación

La entrega de la práctica se dividirá en 2 fases:
Es necesario cumplir con las 2 entregas en el plazo acordado para que se corrija la práctica
©2006/2007 Pilar Arques, Otto Colomina,  Javier Montoyo, Miguel Ángel Lozano