Está en la página 1de 4

Prctica PEW

Aplicaciones Web con ASP, Ajax y Java Applets


Introduccin
En esta prctica vamos a desarrollar una aplicacin Web para una Agencia de iajes !ue permita la consulta y
reserva de viajes "n#line$ %a Web dispondr de una &ona accesible a cual!uier usuario, con in'ormacin de la
empresa, ubicacin, imagen corporativa, b(s!ueda de vuelos !ue cumplen una condicin, etc) y otra &ona,
accesible (nicamente tras llevar a cabo un proceso de identi'icacin, !ue permitir a un usuario consultar las
reservas reali&adas$
Para el desarrollo de la parte *esttica+ del sitio emplearemos xhtml y css, mientras !ue para la parte dinmica
emplearemos Javascript y la tecnolog,a ASP con lenguaje VBScript$
%a aplicacin emplear una sencilla base de datos, desarrollada en -irebird cuya plantilla bsica est disponible
en la .eb y a la !ue progresivamente le iremos a/adiendo 'uncionalidad$ El acceso deber reali&arse a trav0s de
"123$ 4odos los drivers y ejecutables necesarios se encuentran disponibles en la .eb$ 1ispondr (nicamente de
las siguientes tablas5
Ciudad5 3on in'ormacin de las di'erentes ciudades desde las !ue y hacia las !ue se pueden reali&ar
vuelos$ 1ebe almacenar al menos el precio asociado a las tasas de aeropuerto de dic6a ciudad$
Compania5 In'ormacin de las compa/,as a0reas con las !ue opera la empresa$
Vuelo5 3ontiene toda la in'ormacin relacionada con los vuelos5 Ciudad origen, Destino, Fecha y hora
de salida, Compaa, duracin del vuelo, N plazas disponibles, Avin, )
Avion5 4abla en la !ue se registran los di'erentes modelos de avin !ue incluir como m,nimo el nmero
de plazas del mismo y el precio base del vuelo$
Reserva5 3ontiene un registro de las solicitudes de reserva de vuelo !ue se reali&an$ 3ada nuevo registro
deber generar un n(mero identi'icativo (nico del nmero de reserva, Nombre y Apellidos de la
persona, DN!, "uelo, N de Asientos reservados,)
Hotel5 In'ormacin de 7oteles en cada ciudad con los siguientes datos5 Ciudad, Categora, Precio por
noche, om!re, Servicios del hotel, )
Se debern incluir los campos !ue sean necesarios en base a las especi'icaciones !ue se detallan a continuacin,
as, como cual!uier otro !ue consider0is interesante$
Parte obligatoria
1esarrollo de la inter'a& bsica 89 puntos:
El sitio debe permitir5
# Consultar vuelos disponibles mostrando un 'ormulario de consulta$ ;ing(n dato es obligatorio, por lo !ue
si se dejan en blanco la aplicacin deber devolver una lista con todos los vuelos !ue cumplan las
condiciones expresadas, o todos si no se especi'ica ninguna$ Se debe mostrar el precio del vuelo seg(n
se detalla en el (ltimo punto$
# Reali"ar una reserva sobre alguno de los vuelos locali&ados5
o Se deber comprobar !ue !uedan pla&as su'icientes y actuali&ar el n(mero de pla&as disponibles
tras reali&ar la reserva$
o Se devolver al usuario un identi#icador $nico de la reserva reali"ada para posteriores
consultas y se le indicar el precio tras seleccionar el n$mero de asientos$
o 4ras seleccionar el vuelo se pedir al usuario !ue seleccione un 7otel en la ciudad de destino$
Primero le solicitar el n$mero de noches, y despu0s se mostrar una lista de 7oteles ordenados
por categor,a o precio y el precio total 8;(mero de noc6es < Precio 7abitacin:$ El usuario deber
elegir entre alguna de las opciones presentadas$
# Consultar reservas reali"adas 8previo acceso registrado:, a partir del 1;I y del n(mero de reserva
generado en el paso anterior$ =na ve& mostrados los datos de la reserva se debe poder cancelar, en cuyo
caso el n(mero de pla&as disponibles en el vuelo se debe incrementar$ Si 'altan menos de >? 6oras para
la salida del vuelo, la aplicacin mostrar un mensaje de error indicando !ue 6a 'inali&ado el pla&o mximo
de cancelacin$
# Precios5
o El precio del vuelo se calcular de la siguiente 'orma5 Precio = (N Plazas del avin N Plazas
disponibles)/n Plazas del avin * Precio Base del vuelo + Tasas aeropuerto$ 1e este modo el
precio se incrementa a medida !ue disminuye el n(mero de pla&as disponibles$
o El precio del 7otel se calcula5 Precio otel = Precio abitacin * N Noc!es$
o El precio total del viaje se obtendr a partir de la suma de las dos cantidades anteriores$
1e 'orma optativa, la inter'a& de consulta de vuelos podr,a mostrar tambi0n los vuelos de vuelta, permitiendo por
tanto al usuario seleccionar en su reserva dos vuelos$ En este caso, el n(mero de noc6es de 6otel podr,a
calcularse automticamente, restando las 'ec6as de vuelo de vuelta e ida respectivamente$
Inclusin de 40cnicas Ajax en la inter'a& de usuario 8@ puntos:
=na ve& 'inali&ada la primera versin de la inter'a&, se desarrollar una versin alternativa de la misma !ue
permita la b(s!ueda de vuelos empleando t0cnicas Ajax$ 1e este modo, la recarga de datos en el cuadro de lista
desplegable de ciudad de destino, se reali&ar en segundo plano, sin recargar la pgina, al cambiar la ciudad de
origen, mostrando slo a!uellas ciudades para las !ue existan vuelos$ 1el mismo modo, la tabla !ue contiene los
resultados de la b(s!ueda podr,a rellenarse en segundo plano sin necesidad de recargar la totalidad de la pgina$
Parte opcional5 1esarrollo de la inter'a& Java para el
Administrador 8A puntos:
En esta parte de la prctica vamos a desarrollar la inter'a& !ue permitir a los usuarios con per'il de
Administrador a/adir, consultar y modi'icar in'ormacin de la base de datos$ Para ello se dise/ar, empleando
java y el AW4 un applet, con un inter'a& gr'ico !ue se ejecutar en el lado del cliente y una pgina asp, !ue
recibir la in'ormacin desde el applet y se encargar de ejecutar las sentencias SB% sobre la base de datos,
empleando objetos A1"$
"bjetivos
Se debe a/adir al sitio desarrollado en el apartado anterior las siguientes pginas y clases de java5
ServApplet%asp& Pgina asp !ue recibir, en 'orma de peticiones '(), in'ormacin del applet y !ue
devolver a 0ste la in'ormacin solicitada 8si es una consulta: o se encargar de insertar o actuali&ar los
registros 8si se trata de una insercin o modi'icacin:$ %os parmetros sern5
o Accion5 con tres posibles valores5 "onsulta, #nsercion, $odi%icacion$
o om!reCampo * "alor5 %ista de campos con sus respectivos valores para insertar en la tabla de
vuelos$
3ada parmetro se separar de los dems empleando el carcter *C+, seg(n la especi'icacin del
protocolo http$
Administrador%asp& pgina a la !ue ser redirigido el usuario con per'il de Administrador cuando se
valide como tal en la base de datos y !ue (nicamente se emplear para contener el applet especi'icado a
continuacin$
CliApplet%class& Applet de java con inter'a& gr'ico para permitir al administrador insertar, consultar o
modi'icar vuelos$ Empleando botones de comandos, men(s, controles de edicin de texto, cuadros de
lista, c6ecDbox, o cual!uier otro componente disponible, debe permitir al administrador5
o Insertar un nuevo vuelo
o isuali&ar un vuelo a partir del identi'icador del mismo
o Eodi'icar cual!uiera de los campos de un vuelo 8salvo el identi'icador:
o Eantenimiento de 7oteles 8+pcional:
Ejemplo
En el siguiente cdigo ten0is un ejemplo de las clases de java necesarias para reali&ar la comunicacin entre el
applet y la pgina asp y establecer un 'lujo de datos$ Se solicita a la pgina &erv'pplet$asp toda la in'ormacin del
vuelo con #d(uelo F G 8el nombre del campo depender del dise/o de la 2$ de 1$:$ %a pgina ASP devolver,a cada
uno de los campos de la consulta en una l,nea di'erente, aun!ue pod0is implementarlo de cual!uier otra 'orma !ue
se os ocurra5 Empleando un carcter separador, etc)
%a comunicacin se reali&a empleando HE4 8aun!ue, con ligeras modi'icaciones, tambi0n podr,a 6acerse con
P"S4:, por lo !ue desde la pgina asp se deber,a acceder a los parmetros de la peticin empleando el m0todo
)uer*&trin+ del objeto ,e-uest.
En el ejemplo, la in'ormacin recibida se muestra en un Te/t'rea, en la prctica, debern rellenarse
adecuadamente los controles empleados en la inter'a&$
import java.net.*;
import java.io.*;
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class CliApplet extends Applet{
public void init(){
String hostame! application"ath! webServerStr! application#et;
int port;
$extArea ta % new $extArea( &'! (' );
add(ta);
application"ath % )ServApplet.asp*;
tr+ {
,-. host,-. % getCode/ase();
hostame % host,-..get0ost();
port % host,-..get"ort();
i1 (port %% 23)
port % 4';
webServerStr % 5http6775 8 hostame 8 565 8 port 8 application"ath;
application#et % webServerStr 8 )9* 8 ,-.:ncoder.encode(5Accion5) 8 5%5 8
,-.:ncoder.encode(5Consulta5) 8 );* 8
,-.:ncoder.encode(5<d=uelo5) 8 5%5 8
,-.:ncoder.encode(535) ;
,-. servApplet % new ,-.(application#et);
,-.Connection servAppletConnection % servApplet.openConnection();
>ata<nputStream dis % new >ata<nputStream(servAppletConnection.get<nputStream());
String input.ine;
while ((input.ine % dis.read.ine()) ?% null) {
ta.append(input.ine 8 )@n*);
A
dis.close();
A catch (Bal1ormed,-.:xception me) {
S+stem.out.println(5Bal1ormed,-.:xception6 5 8 me);
A catch (<C:xception ioe) {
S+stem.out.println(5<C:xception6 5 8 ioe);
A
A
}
;ormas de entrega
%a entrega de la prctica se 6ar en un (nico 'ic6ero &ip, !ue incluir todas las pginas implementadas, 'ic6eros
java, imgenes y memoria descriptiva del sitio desarrollado$ %a entrega se reali&ara empleando la plata'orma
Eoodle del servidor !ttp0//epsovirtual.u1!.es$
Ap0ndices
3arga dinmica de un 3uadro de lista
Para la implementacin del 'ormulario de b(s!ueda de vuelos 6abr !ue emplear varios
controles de lista desplegable$ 1ebern obtener sus datos de 'orma dinmica a partir de la
in'ormacin contenida en las correspondientes tablas$ A continuacin ten0is un ejemplo de
cmo 6acerlo5
)
DS:.:C$ AB:%5CuadroE.ista5F
DG
H-ecorreremos el -ecordSet
do while not rs$abla>atos.:CI
-esponse.Jrite(5DC"$<C =A.,:%H5 8 rs$abla>atos(5Campo>atos5) 8 5HF5)
-esponse.Jrite(rs$abla>atos(5Campo>atos5) 8 5D7C"$<CF5)
Hos desplaKamos por el -ecordSet
rs$abla>atos.Boveext
loop
GF
D7S:.:C$F

También podría gustarte