|
|
| Home / Docencia / Ing. Telecomunicación / Software de Comunicaciones, Práctica 2 | |
|
|
|
| Software de Comunicaciones | ||||||||||
|
|
|||||||||
|
||||||||||
|
|
El objetivo fundamental de esta práctica es aprender a modelar e implementar el nivel de presentación de aplicaciones Web usando la plataforma JEE. Para ello la práctica se ha dividido en dos partes:
El objetivo de esta segunda parte de la práctica 2 es el de modelar e implementar
el subsistema del perfil de cliente de la aplicación de Gestión de Actividades Deportivas.
Para ello, reutilizaremos por un lado el código de nivel de datos que se desarrolló en la
resolución de la práctica 1, pero, por otro lado, implementaremos una nueva interfaz para interactuar
con el sistema. En concreto, se desarrollará una interfaz Web, utilizando para
ello tecnologías JEE (servlets y JSP).
|
|||
|
|
Para instrucciones relativas a la instalación del servidor Tomcat,
podéis mirar la
parte I de esta práctica.
|
|||
|
|
En esta práctica se debe realizar una aplicación Web usando servlets y JSPs que incluya los cuatro puntos de funcionalidad que se indican a continuación. Realmente la aplicación a desarrollar se corresponde exactamente con el subsistema de perfil de cliente de la aplicación "Gestor de Actividades Deportivas", pero en esta ocasión usando como vista una interfaz Web en lugar de una interfaz textual. Incluso con esta restricción respecto a la tecnología a ser usada (servlets y JSPs), la aplicación Web a realizar se puede implementar de diferentes maneras (por ejemplo usando sólo servlets, sólo JSPs, ...). Este conjunto de diferentes posibilidades se ve limitado por las siguientes dos condiciones impuestas que debe cumplir la aplicación:
1. Aplicación BásicaLa aplicación básica es una versión simplificada de la aplicación Gestor de Actividades Deportivas descrita en la práctica 1. Nos referiremos a esta aplicación reducida como aplicación de Búsqueda de Actividades Deportivas. Modelo de Datos El modelo de datos para la aplicación de Búsqueda de Actividades Deportivas se compone de las tablas de PABELLONES y ACTIVIDADES de la práctica 1. Funcionalidad A diferencia de la aplicación Gestor de Actividades Deportivas, sólo hay un tipo de perfil de usuario en la aplicación de Búsqueda de Actividades Deportivas. En esta aplicación simplificada, el usuario debe ser capaz de realizar las siguientes búsquedas en la base de datos:
Cuando se listen pabellones, para cada pabellón, la aplicación debe mostrar todos los campos de la tabla de PABELLONES. Cuando se listen actividades, para cada actividad, la aplicación debe mostrar todos los campos de la tabla de ACTIVIDADES. Una página Web de entrada de datos única debe ser usada, en la cual el usuario introduce su criterio de búsqueda. Cada página Web presentada al usuario debe contener la misma imagen arriba y un texto de copyright debajo (pista: usar include). Ejercicio En clase se os proporcionará una solución a este problema. Dicha solución está implementada usando sólo servlets y un archivo HTML. Debéis modificar dicha solución de la siguiente manera:
La solución dada en clase también se encuentra aquí: 2. Formulario de RegistroSupongamos que la Universidad desea restringir el acceso a la aplicación "Buscador de Actividades Deportivas" y sólo va a proveer acceso a clientes registrados. En este punto, se requiere implementar un mecanismo para que nuevos usuarios de la aplicación se puedan registrar vía Web. La restricción real de acceso se deja para el punto número 3. En la página inicial, el usuario elige entre una opción de "registro" y una opción de "Usuario ya registrado". Si el usuario elige "Usuario ya registrado", se muestra la página inicial del ejercicio anterior. Si el usuario elige la opción de "registro", se le muestra un formulario Web que permite a los usuarios registrase, pidiéndoles los datos necesarios (nombre, apellidos, dirección, número de teléfono, nombre de login y contraseña). Cuando el usuario envía los datos de registro, al usuario seguidamente se le presentan en otra página todos los datos de registro que ha introducido, preguntándole si son correctos. Si la respuesta es negativa, la página de registro se le muestra de nuevo, pero esta vez con los campos del formulario conteniendo los datos que previamente rellenó el usuario, con la posibilidad de editarlos. Si la respuesta es afirmativa, se le mostrará un mensaje indicando que el registro se ha completado exitosamente, junto con instrucciones sobre cómo entrar a la aplicación, por ejemplo sobre cómo ir a la página inicial del ejercicio anterior. Además, la información de registro se debe guardar en la base de datos, mediante una tercera tabla CLIENTES, que tiene la siguiente estructura: Tabla CLIENTES
En una aplicación más realista, el usuario introduciría una dirección de e-mail en lugar de una password y una contraseña generada por la herramienta sería enviada a esa dirección de e-mail (tambien haría falta un mecanismo para cambiar la contraseña). 3. Acceso restringido a la aplicación de búsqueda de actividades deportivasSupongamos que la Universidad desea restringir el acceso a la aplicación "Buscador de Actividades Deportivas" y sólo va a proveer acceso a clientes registrados. En este punto, se requiere implementar un sistema en la aplicación que permita sólo el acceso de usuarios registrados a la misma. Al igual que ocurría en el anterior ejercicio, en la página inicial de la aplicación el usuario eligirá entre una opción de "registro" y "Usuario ya registrado". Si el usuario elige la primera, el resultado será como en el ejercicio previo. Si el usuario elige "Usuario ya registrado", entonces el usuario no tendrá directamente acceso a la aplicación, y en su lugar se le mostrará una página de login preguntándole por su login y contraseña. Si el usuario introduce un login no existente o una contraseña incorrecta, la aplicación debe mostrar la página de login de nuevo, pero esta vez con un mensaje de error. En el tercer intento incorrecto de login, se le debe mostrar la página de inicio con la elección entre las opciones de "registro" y "Usuario ya registrado". Si introduce una combinación login/contraseña correctas, entonces se le debe mostrar la página de inicio del primer ejercicio. El login/contraseña que introduzca un usuario en el formulario será comprobado con respecto a la tabla de CLIENTES que contiene la información sobre usuarios registrados. Es importante remarcar que un usuario no podrá bajo ninguna circunstancia tener acceso a la aplicación de "Buscador de Actividades Deportivas" (desarrollada en el punto 1) cuya localización se describe por una URL diferente a la de la página de login, sin haber previamente introducido un login y password correctos en la página de login apropiada. Si un usuario intenta hacer eso, entonces se le debe mostrar la página de inicio. Adicionalmente, cada página Web de la aplicación que está protegida de esta manera debe contener un botón de logout; si el usuario selecciona este botón se termina la sesión y se muestra la página inicial. Pista: Debéis usar apropiadamente los conceptos de sesión para resolver este ejercicio. 4. Extensión del perfil del ClienteEn este cuarto paso, se debe extender el perfil del cliente con las opciones para inscribirse, y desinscribirse de actividades. Es decir que en el menú ofrecido al cliente hay que añadir las siguientes opciones:
Por tanto, habrá que almacenar la información sobre inscripciones en la base de datos, utilizando para ello una tabla específica: la tabla de INSCRIPCIONES, que tiene la siguiente estructura: Tabla INSCRIPCIONES
Téngase en cuenta que, al añadir la tabla de INSCRIPCIONES, se hace necesario mantener la coherencia de estado entre esta tabla y la de ACTIVIDADES, ya que los valores del atributo PLAZAS_OCUPADAS en la tabla ACTIVIDADES tienen que estar en correspondencia con el número de inscripciones para la actividad en cuestión en la tabla de INSCRIPCIONES. Observaciones
Puntualizaciones adicionales Es importante distinguir entre la transferencia de control a otro recurso dentro del servidor y la generación de una respuesta HTTP que puede llevar a una nueva solicitud HTTP del cliente a otro recurso en ese u otro servidor. En concreto:
|
||||||||||||||||||||||||||||||||||||||||||||
|
|
El nivel de datos de esta aplicación es similar en parte al de la práctica 1. Recordad que:
|
|||
|
|
La solución se debe entregar a través de Aula Global 2, concretamente, a través de la página web siguiente: página de entrega, nivel de presentación, grupo español (91) Vuestra entrega debe contener los siguientes elementos:
La entrega debe realizarse en la forma de un archivo Web, o fichero war, denominado presentation.war. Si organizáis el directorio de la aplicación de acuerdo con la estructura dada en la parte 1 de esta práctica, es sencillo crear un fichero war en el formato deseado. Simplemente, ejecutad el comando siguiente en el directorio de más alto nivel de la aplicación: jar cvf archiveName.war . Sin embargo, hay una diferencia con respecto a un fichero war estándar: hay que incluir también el código fuente. A este fin, se añade otro directorio llamado src que contiene todo el código fuente (servlets y JavaBeans) en el directorio de más alto nivel de la aplicación. Mirad la sección adecuada del tutorial jar si queréis más detalles sobre los ficheros jar/war. Si vuestro fichero war está creado correctamente, entonces debería ser posible desplegar la aplicación simplemente colocando dicho fichero WAR debajo del directorio webapps (si el nombre de vuestro fichero war es presentation.war, las URL para acceder a las páginas de vuestra aplicación tendrán la siguiente forma: http://dominio:8080/presentation/...). Es importante verificar esto antes de entregar la práctica. También debéis comprobar que vuestra aplicación funciona si se renombra el fichero war. Como siempre, el código debe estar adecuadamente comentado (esto no significa que los comentarios deban ser excesivamente verbosos). El programa debe poder ser compilado y funcionar correctamente en el entorno del laboratorio para todos los diferentes casos y de acuerdo con las instrucciones dadas en la sección de Descripción de la práctica. Fecha límite para entrega: 18/12/09 Hora límite: 12:00 h | |||
|
|
Véanse en la página Web de la asignatura: y en la página Web de la asignatura bilingüe:
|
|
|