Dossier de prácticas



Documentos relacionados
Dossier de prácticas

Ejercicios - Persistencia en Android: ficheros y SQLite

Manual de usuario Noticias y Accesos Directos en Facultades ÍNDICE

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

Manual de software. Dynamic Cloud. 10/2014 MS-Dynamic_Cloud v1.2

Tutorial: Primeros Pasos con Subversion

Gestión de Retales WhitePaper Noviembre de 2009

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

UNIDAD DIDACTICA 6 PERFILES LOCALES Y MÓVILES DE USUARIO

SMS Gestión. manual de uso

Mi correo con OUTLOOK

V Manual de Portafirmas V.2.3.1

Manual del panel. Core-Admin

Guía rápida de la Oficina Virtual Área Web y Administración Electrónica

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: Fax.:

UNIDAD DIDACTICA 16 USUARIOS SAMBA EN UN CONTROLADOR DE DOMINIO LINUX SERVER

Notas para la instalación de un lector de tarjetas inteligentes.

Programa diseñado y creado por Art-Tronic Promotora Audiovisual, S.L.

efactura Online La fibra no tiene competencia

LiLa Portal Guía para profesores

MANUAL APLICACIÓN. SOFTWARE GESTIÓN DE CLÍNICAS DENTALES

GUÍA RED SOCIAL FACEBOOK

MANUAL DE USUARIO DE UNIFIED IM

Manual de configuración de Thunderbird ÍNDICE

PLANTILLAS DE DOCUMENTOS EN WORD 2007

Manual de usuario investigador

NORMA 34.14(SEPA) 05/11/2013

Guía nuevo panel de clientes Hostalia

30 de Mayo de

Manual de usuario de la aplicación de envío telemático de partes de accidente y enfermedad profesional

GVisualPDA Módulo de Almacén

El lenguaje de manipulación de datos (DML) es una parte fundamental de SQL.

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

MANAUAL DE MANTENIMIENTO PARA LA PÁGINA WEB DE PROYECTO ADL GESTOR DE CONTENIDOS

Manual CMS Mobincube

ENVIO SMS A TRAVÉS DE WEB

Manual de Procedimiento

PHP Perfect SQL v1.0 (SQL perfectas en PHP)

UNIDAD DIDACTICA 3 USUARIOS Y GRUPOS EN REDES WINDOWS 2003 SERVER II

DOCUCONTA Versión Septiembre 2010 MINISTERIO DE HACIENDA. Manual de instalación SECRETARÍA DE ESTADO DE PRESUPUESTOS Y GASTOS

MANUAL DE AYUDA. SAT Móvil (Movilidad del Servicio Técnico)

Manual para uso de cuentas de correo

GENERACIÓN DE TRANSFERENCIAS

Capitulo 5. Implementación del sistema MDM

Una plantilla es un documento de Word 2003 con la característica de que el tipo de documento es plantilla de documento (.dot).

GUÍA PARA INICIAR UN TRÁMITE DESDE LA OFICINA VIRTUAL

GUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE

Manual para uso de cuentas de

Manual de usuario de Parda Programa de Almacenamiento y Recuperación de Datos Automático

Uso básico desde la propia página del sitio

Recuperador datos externos

Anexo 2: Configuración del Programa en Red.

GUÍA DE USUARIO DEL CORREO

Compartir Biblio en una red local con Windows XP

Plantillas Office. Manual de usuario Versión 1.1

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin.

TUTORIAL SOBRE CÓMO CREAR Y GESTIONAR UN BLOG CON BLOGGER

Capítulo 9. Archivos de sintaxis

Escudo Movistar Guía Rápida de Instalación Para Windows

Manual para uso de cuentas de

Manual de configuración del correo electrónico Netkiamail en distintos dispositivos

Servicio de Alta, Baja, Modificación y Consulta de usuarios Medusa

Como acceder al sistema de tickets de Fabergames:

Eurowin 8.0 SQL. Manual de la FIRMA DIGITALIZADA

INSTALACIÓ N A3ERP. Informática para empresas INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

MANUAL DE USUARIO CONSEJO PUEBLA DE LECTURA A.C. Instituto Nacional de Astrofísica, Óptica y Electrónica. 01/Octubre/2009

15 CORREO WEB CORREO WEB

Manual de configuración de la red inalámbrica. eduroam. en Microsoft Windows 7

Instalación de DRIVER de mochila

GUIA DE USUARIO. CONFIGURACION CORREO ELECTRONICO

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

Región de Murcia Consejería de Educación, Ciencia e Investigación. Manual Usuario FCT

Históricos Impresión de Facturas

CIF-KM. GUÍA DE LOS PRIMEROS PASOS

Login y Password. Elección de directorios confidenciales

MEJORAR EL RENDIMIENTO DEL EXPLORADOR DE INTERNET

Escudo Movistar Guía Rápida de Instalación Dispositivos Symbian

Manual del Investigador de OpenClinica

CONFIGURACION AVANZADA DE MOZILLA THUNDERBIRD

Ejercicios - Persistencia en Android: proveedores de contenidos y SharedPreferences

Gestión de cuentas de correo Gestión de cuentas de correo

MANUAL DE AYUDA PARA LA IMPORTACIÓN DE DATOS AL LIBRO REGISTRO DE OPERACIONES ECONÓMICAS

Ayuda para la instalación Componente Firma Digital INDICE. 1 Configuración previa Configuración Internet Explorer para ActiveX...

MANUAL DE USO PROGRAMA DE GESTIÓN AGENCIAS DE VIAJES

UNIDAD DIDACTICA 4 INTEGRACIÓN DE CLIENTES WINDOWS EN UN DOMINIO

APLICACIÓN DE ACCESO REMOTO PARA POCKET PC. MANUAL DE USUARIO (Release 1.42)

MANUAL DE USUARIO INTRANET

MANUAL PARA GESTIÓN DE INCIDENCIAS INFORMÁTICAS

INSTALACIÓN DE MEDPRO

Manual para conectar a la VPN del ITC en Windows Vista y acceso a los servidores de pre-explotación y explotación.

MANUAL DE PRACTICUM12 PARA CENTROS EDUCATIVOS ÁMBITO MÁSTER

MANUAL INSTALACIÓN ABOGADOS MF

Configuracion Escritorio Remoto Windows 2003

MANUAL DE AYUDA. MODULO SAT (Anexo Integración AGIL SAT)

Instalación y Registro Versiones Educativas 2013

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

Transcripción:

Dossier de prácticas Intranet / Extranet Màster d Enginyeria del Software Desenvolupament d aplicacions sobre Internet Fundació Politècnica de Catalunya Jaume Moral Ros Albert Obiols Vives

1 Dossier de prácticas Debido al crecimiento de nuestra empresa de consultoría, y la llegada de innumerables nuevos proyectos para la empresa, hemos recibido el encargo de nuestro jefe en "SC- Consulting", de montar la Intranet de la empresa. El primer objetivo es tener una agenda compartida entre los distintos empleados, que por otro lado ya no dan abasto. En esta Intranet queremos que cada uno de nuestros empleados cuando se autentifique se le muestren las reuniones que le han asignado para ese día, semana o mes. En la empresa disponemos de un PC con Windows como nuestra estación de trabajo y un servidor corporativo donde tenemos instalado el Sistema Operativo Linux, un servidor de Web con Apache y una Base de Datos Oracle, donde ya tenemos creadas las tablas con los empleados, y las tablas para la agenda. El diseño de las pantallas que tenemos para desarrollar esta Intranet, ha sido encargado a una empresa externa. La estructura de las tablas que tenos en la Base de datos es:

2 Introducción a los servlets 1.- Nuestro primer Servlet: Hello World con Plantillas En nuestro directorio de servlets tendremos el ya clásico ejemplo de Hello World, que podemos ejecutar con /servlet/hello. El objetivo de esta práctica es modificar este servlet para que funcione con plantillas. Para ello, utilizaremos la plantilla sc.html y sustituiremos la etiqueta TEXTO por el texto que nostros queramos. Recordemos que para utilizar las plantillas utilizaremos la siguiente sintaxis: import lcfib.plantilla.*;... p=new Plantilla(nombre de la plantilla); p.setlabel("texto","hello World"); out.println(p.tostring()); Donde nombre de la plantilla es el path completo del fichero plantilla. Las plantillas pueden arrojar la excepción IOException en caso de no encontrar el fichero o la PlantillaException en cualquier otro caso. Habrá que tenerlo en cuenta a la hora de compilar. Debemos asegurarnos que en nuestro classpath tenemos el fichero jsdk.jar, ya que sino el compilador no será capaz de compilar servlets. 2.- Tratando con parámetros El objetivo de nuestra segunda parte será hacer un servlet que nos enseñe los parámetros que le hemos entrado en forma de tabla. Para ello, utilizaremos la plantilla sc2.html, en la que tendremos una estructura de este tipo. @@$VARIABLES{@@...@@$NOMBRE@@...@@$VALOR @@}@@ Recordemos que para asignar los valores de dentro de una sección, primero hay que repetir la sección y después asignar las etiquetas, como por ejemplo: p.repeat("variables"); p.setlabel("nombre","parametro1"); p.setlabel("valor","valor1"); p.setlabel("nombre","parametro2"); p.setlabel("valor","valor2");

Para acceder a los parámetros, podemos buscar información sobre los siguientes métodos de la clase HttpServletRequest 3 getparameternames getparametervalues Recordemos que cada parámetro puede tener más de un valor. Hay que enseñarlos todos! 3.- Sesiones para autentificación de usuarios Queremos utilizar un sistema de autenticación de usuarios basado en sesiones. Para ello, en cada uno de nuestros servlets obtendremos una sesión y en caso de que esta sea nueva, redirigiremos al usuario hacia una servlet de que nos enseñará un formulario de login Esta servlet tendrá el siguiente funcionamiento: Si no tiene ningún parámetro, simplemente nos enseñará la pantalla de identificación Si tiene como parámetros un username y un password, comprobará que sean correctos. Si es así, nos guardaremos el username en la sesión y haremos una redirección a la página inicial, pero si no es correcto, volveremos a presentar la pantalla de login con un mensaje avisando de nuestro error. username/password cuando no tenemos sesión identificación correcta /servlet/login /servlet/hello3 Para hacer la validación del usuario simplemente comprobaremos que el username y el password sean el mismo. Posteriormente utilizaremos un método más sofisticado conectándonos a la base de datos. La página inicial de la que hemos hablado, será el Hello3, que simplemente nos mostrará el nombre del usuario de la sesión. Recordemos que si accedemos a esta pantalla sin pasar por la de login, el sistema deberá redireccionarnos automáticamente a ella al detectar que no tenemos un identificador de sesión. Opcionalmente, podemos hacer un tercer servlet que nos permita hacer un logout del sistema, es decir, invalidar la sesión.

4 Primeros pasos con la base de datos 4.- Identificación de usuarios con la base de datos Para acabar nuestra identificación de usuarios, lo que haremos es comprobar que el username y el password coinciden con el que tenemos en nuestra base de datos, utilizando JDBC. Para separar lo que son los accesos a bases de datos del código de servlet, crearemos una clase BD que encapsulará todos los accesos a bases de datos. Esta clase será la encargada de hacer todas las consultas e inserciones. En nuestro caso, lo que deberemos hacer será rellenar el contenido del método. public static void validausuario (String username, String password) {... } Para que aprovechando la conexión que ya tenemos abierta, haga la siguiente consulta a la base de datos: SELECT count(*) FROM personas WHERE password=password_entrado AND id_persona=username_entrado Y nos devuelva el valor correspondiente según el resultado La agenda En las siguientes prácticas, tendremos como objetivo realizar una agenda básica, con opciones para ver los eventos, añadirlos, modificarlos y ver las anotaciones por semana y por día 5.- Ver la lista de los eventos de la agenda Hacer un servlet que se llame VerEventos que funcione con la autenticación de usuarios mediante sesiones y que llame al método listaeventos de la clase BD, para obtener un vector de objetos evento, donde tendremos los eventos que nos afectan. Para utilizar este método, debemos pasarle el username que está haciendo la consulta y unas fechas de inicio y final, que pueden ser null. Los eventos que nos devolverá podran ser de dos tipos. 1) Eventos de tipo general, es decir, que afectan a todos los usuarios 2) Eventos que nos afectan de manera específica

5 La plantilla que usaremos para esta Servlet se llamará total.html. En esta práctica sólo sustituiremos las etiquetas NOMBRE y FECHA de la sección Eventos. El resto de las etiquetas no las tocaremos. 6.-Ver los datos de los eventos de la agenda Mostrar los datos completos de un evento cuando hacemos click sobre su nombre. Para hacer esto sustituiremos la etiqueta URL de la plantilla total, que nos permitirá escribir la URL que enseñaremos en una nueva ventana al clickar sobre el nombre del evento Esta URL será del estilo: /servlet/editarevento?id_evento=22 La servlet EditarEvento estará basada en la plantilla evento.html, en la que sustituiremos todas las etiquetas con los datos obtenidos del evento. Lógicamente, si queremos todos los datos del evento a partir de su identificador, deberemos crear un nuevo método en la clase BD que nos devuelva el objeto Evento correspondiente: public static Evento consultaevento (String id_evento) throws SQLException haciendo la consulta SELECT * FROM eventos WHERE id_evento=? Aunque esta servlet nos presenta los datos en un formulario, por ahora no permitimos hacer ninguna modificación. Todo lo que podemos hacer desde esta nueva ventana es cerrarla. 7.- Ver los eventos de hoy, de esta semana o todos. Aprovechando que nuestro método listaeventos nos permite pasar una fecha inicial y una final, queremos que las pestañas correspondientes de la plantilla nos permitan ver el día actual, siete días vista y un mes vista. Para ello, le pasaremos 3 nuevos parámetros al servlet VerEventos: la fecha inicial, la fecha final y la pestaña que queremos mostrar. En principio usaremos una plantilla distinta para cada tipo de vista, pero los datos a sustituir seran los mismos. Estas plantillas se llamaran total.html, semanal.html y diario.html.

6 8.- Insertar nuestras propias anotaciones. Utilizando el mismo formulario de ver los datos, haremos que se puedan insertar nuevas anotaciones y modificar las ya existentes. Para ello, deberemos crear una nueva servlet, llamada GuardaEvento, a la que llamaremos con el botón de Actualizar Datos y que hará lo siguiente: 1) Crear un objeto evento a partir de los parámetros que nos llegan. 2) Guardarlo en la base de datos con la función creada a tal efecto. Esta función hará un UPDATE si el objeto evento tiene ya un identificador y un INSERT si no lo tiene. La función Guardar Evento se basará en la plantilla cerrar.html en la cual no tenemos ninguna etiqueta a sustituir. En el código de esta plantilla hay Javascript que nos permitirá cerrar la ventana y recargar la ventana principal sin tener que preocuparnos. Para crear nuevas anotaciones, tenemos un botón a tal efecto en las plantillas de ver eventos. Al pulsar este botón, llamaremos a la servlet EditarEvento sin parámetros, de forma que nos mostrará la plantilla vacía y al actualizar los datos se creará un objeto Evento sin identificador que la servlet GuardarEvento añadirá a la tabla con un INSERT. 9.- Borrar anotaciones en la agenda Para borrar anotaciones, habilitaremos el tercer botón que tenemos al ver la información completa de un evento. Deberemos implementar una nueva función de la clase BD para borrar eventos dado un identificador. public static void borraevento(string id_evento) lógicamente, la sentencia SQL será DELETE FROM eventos WHERE id_evento=? La forma más sencilla de implementar el borrado es considerar que se trata de una función más que nos ofrece GuardarEvento. Si encontramos que hay un campo parámetro llamado borrar que no es null, querrá decir que hemos llegado a esta servlet dándole al botón de borrar y que por lo tanto deberemos llamar a BD.borraEvento. Una vez borrado el evento, podemos mostrar como antes la plantilla cerrar.html La agenda compartida Las dos últimas prácticas convierten nuestra agenda básica en una verdadera agenda compartida con nuestros usuarios de la Intranet. 10.- Insertar reuniones con otras personas La idea es poder introducir eventos que son reuniones con otros usuarios de nuestra intranet y que los otros usuarios verán cuando se conecten a ella. Para ello, lo que deberemos hacer es:

añadir un nuevo botón al la plantilla de ver eventos que nos abra un nuevo servlet llamado EditarReunion. Este servlet se diferenciará de EditarEvento en que podremos seleccionar los asistentes a la reunión de una lista desplegable con todas las personas de nuestra empresa, que obtendremos con la función BD.listaPersonas; Las reuniones no se pueden borrar, ya que se supone que las personas implicadas ya han estado avisadas. Para anularlas, podemos hacerlo cambiando el tipo de reunión a reunión anulada. Los asistentes a la reunión deberán verse al mostrar los datos del evento, pero tampoco podrán cambiarse. Podremos obtenerlos con BD.listaAsistentesReunion, junto con la información de si han confirmado o no. Para dar de alta la reunión necesitaremos otra servlet GuardarReunion que funcionará de la misma forma que GuardarEvento, pero que necesitará también la lista de personas convocadas y el convocante para poder guardar la información en la base de datos. 11.- Confirmar la asistencia a reuniones Si nos han convocado a una reunión, al entrar a nuestra intranet debería aparecernos una lista de reuniones a las que nos han convocado junto con dos botones para decir SI o NO. Para conseguir esto deberemos modificar las plantillas de ver eventos y crear una nueva servlet: ConfirmarReunion, que actualizará los datos correspondientes para que conste que hemos contestado afirmativamente o negativamente a la reunión. Los datos de las reuniones a las que no hemos dicho nada los obtendremos con BD.listaReunionesPendientes. 7