2. 1. Requisitos previos
2. Seguridad
3. Manual de usuario
4. Análisis
5. Diseño
6. Implementación
7. Pruebas
8. Problemas encontrados
9. Componentes del equipo
ÍNDICE
3. 1. Requisitos previos
Para empezar esta segunda parte es necesario tener
instalado Xampp, con los contenido:
• el servidor HTTP Apache,
• el gestor de BBDD relacional, multihilo y multiusuario
MySQL,
• el servidor contenedor de servlets Tomcat,
También es necesario familiarizarse con los servlets, jsp,
JavaBeans, XML, el conector/J.
4. 2. Seguridad
• Se ha realizado un estudio previo de la
seguridad en Tomcat que se adjunta en:
pero por ser necesario crear un almacen de
claves no se ha implementado al trabajar en
localhost
• Se ha incluido la encriptación con MD5 de
las claves de acceso a la BBDD.
5. 3. Manual de usuario.
• Descarga del software: aquí.
• Se ha confeccionado un manual de usuario para que
los usuarios sepan cómo manejar la aplicación.
• Para probar hay que arrancar primero el Xampp (solo
el Apache y el MySqL).
• A continuación se puede ejecutar desde eclipse la
aplicación. Ver video
6. 4. Análisis
El equipo realiza un análisis del documento de
requerimientos para realizar una especificación
de requerimientos funcionales.
También se realiza el reparto de tareas entre los
distintos miembros del equipo.
Del análisis también se deduce el flujo de tareas
de la aplicación que hemos seguido en el
Diseño
7. 5. Diseño
● Seguimos el diseño de una BBDD con
modelo vista controlador siguiendo el
diagrama UML. y diseñando el siguiente
diagrama de mockups como interfaz gráfica
para el cliente.
● Al final el beans HealthTopics.java incluye
todas las clases y métodos de búsqueda para
MedLineBennett y las búsquedas mistas,
quedando solo un beans Bennett.java para
las busquedas en EdBennett.
8. 6. Implementación
6.1. Archivo web.xml
6.2. Archivo index.jsp y menu.jsp
6.3. Modelo vista controlador
6.4. Encapsulado de las clases, beans
6.5. Encriptación
6.6. Base de datos
6.7. Subida de archivos al servidor
6.8. Búsquedas
6.9. Templates
6.10. Control de errores
6.11. Control de sesión
9. 6.1. Archivo web.xml
Es el archivo de despliegue de la aplicación
en el que destacamos las siguientes
etiquetas:
<servlets> uno para cada servlet, los
<servlets-mappinp> son los alias del servlet,
cada servlet puede tener varios.
l<welcome-file-list> donde estan los archivos
de inicio de la aplicación, en nuestro caso
index.jsp.
10. 6.2. Archivo index y menu
El archivo index.jsp contiene un <form> que
recoge el valor de los parámetros “nombre
de usuario” y “contraseña” introducidos y
los envía al servlet Login_action.java.
Recibe de los servlets Login_action.java y de
CerrarSesion.java los valores de la variable
estado y en función del valor de la misma da
un mensaje correspondiente.
11. 6.3. Modelo Vista Controlador
Los archivos .jsp son las vistas de la
aplicación donde, como puede ver en el
enlace, ver modelo vista - controlador, se
recibe la información del usuario y se
transmite al servlet o a otro jsp.
La ejecución se realiza en el servlet y se
devuelve al jsp para su presentación al
usuario.
12. 6.4. Encapsulado de las clases, beans
Inicialmente se iba a cargar el XML en la
MySQL mediante parseo pero esta opción
se dejo solo para la tabla Ed Bennett. Por
ese motivo se creó un beans por cada una
de las tablas de la base de datos que han
quedado en la version 0.9.
En la versión definitiva 1.0 se ha creado la
clase HealthTopics.java que contiene todas
las clases, los atributos y los métodos para
los tres tipos de búsqueda
13. 6.5. Encriptación
La encriptación de las claves para acceder a
la aplicación se ha realizado con MD5.
Los usuarios y las claves se han alojado en
una tabla dentro de la base de datos.
El acceso a la base de datos se hace por
medio de una clave genérica incluida en el
código (bean BBDD.java, línea 47)
14. 6.6. Bases de datos
En la base de datos MySqL se almacena la
BBDD medlinebennet.sql con las siguiente
tablas:
- Bennet: Contiene los datos del archivo .csv
con la tabla EdBennet
- Usuarios: En sus campos aparecen los
usuarios y sus claves encriptadas con el
método MD5
15. 6.7. Subida de archivos al servidor
• Se realiza mediante los archivos
importar.jsp y su correspondiente
controlador UploadFile.java
• Se utiliza un parámetro para controlar el
tamaño máximo del archivo así como el
servlet ambos incluidos y referenciados,
respectivamente en el archivo web.xml
• Ver más
16. 6.8. Búsquedas
6.8.1. Busquedas en XML.
Se lleva a cabo con los archivos MedLineView.jsp y
MedLineSearch.java
6.8.2. Busquedas en Base de Datos
Se encarga a los archivos BennettView.jsp y
BennettSearch.java
6.8.3. Busquedas mixtas
Se llevan a cabo con los archivos mixView.jsp
MixSearch.java
Llaman a los beans HealthTopics.java y Bennett.java
Ver más
17. 6.9. Templates
Se introducen para poner las imágenes y
archivos comunes comunes a las vistas,
entre ellos destacamos
Además se utilizan las librerias JSTL para
cambiar las referencias a los scriplets en:
index.jsp, medLineView.jsp, mixView.jsp,
bennetView.jsp
Ver más
18. 6.10. Control de errores
El control de errores se realiza mediante:
● error.jsp.- Captura los errores en las vistas
● MyerrorHandler.java.- Captura los errores
durante la carga del XML
ver más
19. 6.11. Control de sesión
Se utiliza para este cometido el archivo
verifyAcces.jsp de forma que no se puede
acceder a la aplicación desde los archivos
mixView.jsp, bennetView.jsp,
medLineView.jsp, index.jsp, importar.jsp
si antes realizar un inicio de sesión.
ver más sobre control de sesión
20. 7. Pruebas y bases de datos
Se incluyen los ficheros de prueba:
● testUpload.jsp con la finalidad de comprobar
la carga subida de archivos al servidor
● el archivo medlinecompleta.xml contiene los
datos en xml que se usa en las búsquedas
MedLine y las búsquedas mixtas.
● se incluye una base de datos
medlinebennett.sql con las tablas EdBennet y
la tabla de usuarios con las claves encriptadas
en MD5 para comprobar el funcionamiento
21. 8. Problemas encontrados y mejoras
En el acta nº 85 correspondiente a la reunión nº 20 del trabajo se
decide cambiar para realizar las busquedas de MedLine contra el
XML
Una nueva clase generada mediante el XSD usando JAXB
(HealthTopics.java) y un JSP de prueba (testjaxb.jsp) para que el
equipo vea cómo se ejecuta una consulta contra XML utilizando
JAXB.
Finalmente el grupo decide hacer las búsquedas contra el XML en
vez de con mySQL por motivos de eficiencia para el usuario.