Está en la página 1de 9
6.4, Despliegue de Servlets En esta préetien desarrollaremos tina. aplicacién hasada en Serulets y la desplegaremos en el servidor Tomeat. 1. Creacién de una aplicacién HolaMundo. 1.1. Inicia sesién en el equipo DesarrolloW7XX y arrace Eelipsc. 1.2. Kn Ketipse, crea nn nuevo Dynamic Web Project de nombre HolaMundo. Marca la opeién de crear un descriptor de despliegue de Ia aplicacién, Figura 6.25. Web Module @ Configure web module sting. asia CContetroct —HoloMlundo Content directors WebContent [Plcenetevebaml deplymentdesertor Figura 6.25: Crear descriptor de despliegue de la aplieacién 1.8, Si observas la estructura de enrpetas del proyecto excado, Figura 6.26. 4 HolaMundo. 2 JAX-WS Web Services > {a Deployment Descriptor Holaundo > 23 Java Resources > BA JaveScript Resources & build 4G WebContent 4 @ META.INE (>| MANIFEST.MF 4 WEB-INF Sib [8 webaml Figura 6.26: Estructura carpetas proyecto Pods ver los sign antes elementos: « Deployment Descriptor. Acceso al descriptor de despliegue guardado en el fichero WEB-INF\ web.xiul. '* Carpeta WebContent. Donde colocaremos todos los recursos Web, como ficheros HTML, JSPs, imdyenes, ele. Los ficheros no colocados en este directorio, o en algdin subdirectorio del mismo, no estarn disponibles cuando la aplicacién se ejecute en ol eorvidor. Todor lor fichoror fuora de esto diractorio ea coneideran archivos de desarrollo, no de produceién. Por ejemplo ficheros java, sql, ete. 108 Capitulo 6. Aplicaciones JavaEE = Carpeta WebContent\META-INF. Contiene el fichero MANIFEST.ME, utili zadlo para mapeat elases de ficheros JAR existentes en otros proyectos pertenecientes, al mismo Enterprise Application project. = Carpeta WebContent\WEB-INF. Este directorio contiene el descriptor de des- pliegue de la aplicacién, web.xml. + Carpeta Java Resources. Donde colocaremos nuestros Servlets y nuestros ficheros java, ‘Ahora afiade una pagina HolaMundo.html a nuestro proyecto y editala para inchuir el mensaje Hola Mundo. Bin vor de ajecutar dirartamenta ol prayecta on ol servider Tomeat que tenemes regin- trado en Eclipse, vamos a exportarlo como un archivo war, Web archives, Figuras 6.27 y 6.28. Puedes guardar el fichero exportado en cualquier ubicacién. CETTE [ie cae Serer Seesh Prt far_Winden Help Nw mesmen by 9 1 ifr ee @ om cute Sl sone sma canes 2) ath 5 ohm our a Igor, =) Figura 6.27: Exportar proyecto 169 Despliegue dle Aplicaciones Web 170 16, Ly, 18, 1.9, Lo. Select A ‘ipo Web Meduleinto en oterel WA file eg Saletan export estination [ope tere © Sent tou Sem » lmeee on 2 tanaespuene ° eames tome totem temo (G wai > eonasence om, Caneel Figura 6.28: Exportar proyecto Inicia ahora el servidor Tomeat, ejecutando el seript startup, situada en CATATT- NA_HOME\bin. Para desplegar el proyecto en Tomeat, copia el fichero HolaMundo.war en la carpeta CATALINA HOME\webapps. Automaticamente se desplegaré el proyecto. ‘A continuacién accede a la direccién http: //Locathost:8080/HolaKundo/Holaltundo, html desde el navegador. En Belipse, renombra el fichero HolaMundo-html, llaméndolo index.html y vuelve ‘a exportar y desplegar el proyecto. Comprueba cémo ahora puedes acceder también con Ins rls = http: //Locathost :8080/Holatundo/index. html = http: //Localhost:8080/HoLatundo Para finalizar observa e6mo en el directorio CATALINA-HOME\webapps se ha creado autométicamente un directorio HolaMundo con todos los componentes del proyecto, Figura 6.20 Capitulo 6. Aplicaciones JavaBE 41, ochetomes7227 * emi rdew Geer | wen Be ) index 1 eg | tone + eat dea rBearoie 2 adie a LL METAANF + wen 3 ee sw Figura 6.29: Proyecto desplegado 2. Creacién de un servlet HolaMundo. 2.1. Bn Belipse, en el mismo proyecto, colécate sobre ol directorio Java Resources\sre y aiiade un nuevo serulet llamado HolaMundoServlet, Figura 6.30. No crearemos ningin paqueto, simplemente se crearé en el paquete por defecto. ee Fie 668 Nadie Sench ge far Window Hep oe open ypeechy ory Qed Name souce esi xDES @ee OR Heeoee a Figura 6.30; Nuevo servlet im Despliegue de Aplicaciones Web Utiliza el siguiente eédigo para el serulet: impoc jarnsiots import javax.serviet.+; import javax.sorvlet. http. public class HolaMundoServlet extends HttpServiet { coverride public void doGet (HttpServietRequest request, IttpServletResponse response) ‘throws IOException, ServietException { // Bstablece el tipo MIME del mensaje de respuesta response. setUontentiype("text/ntal”); // Crea un flujo de salida para escribir 1a respuesta a la peticién dol cliente Printiriter out = response.getliriter(); UI Bacribe el mens: wy ¢ out printin('"); out. printin("'Hole Mundo"); out printin(*"); // dice hola 1 Nuestra informacién de 1a peticién del cliente out. printin(*

Raquest URI: " + request.getRequestURI() + "

"); out printIn(*

Protocolo: "+ request. getProtocol() + "

"); out printIn("

Direccién remota: " + request.getRenotesddr() + "

"); // Genera un minero alestorio para cada peticién out.printIn("

iiiaero aleatorio: ” + Math.randoa() + "

‘out .printIn(""); } finaly £ fout.close(); // Cierra el flujo de salida je de reepuesta en una pégina htsl. y y } 2.2. Desde Belipse vamos a editar el descriptor de despliegue, web.xml, de la aplicacién introdu- ciendo el siguiente contenido. HolaNundoServlet HoLatundo /Dillolac/url-pattern> Para editar el descriptor de despliogue web.xml seleccionaremos la pestaiia Source, Figura 631. Ten en cuenta que para cada serulet tendrés que indicar un elemento servlet y un elemento servlet-mapping que compartan el serulet-name. 172 Capitulo 6. Aplicaciones JavaBE = Se oe ome Sica peicis ae Desi Se ei poe ‘ Jwelcore-File-List> Breen fe Se Sve en PE aa | Batya one sanz. | eaaiesarceerwotngia wuts SEAT ran ae re a se eer ge we eck wart at mit Titer erat = Bean 2.3, Para todas las précticns, es aconsejable copiar el e6digo del fichero pdf un editor de texto plano, como el bloc de notas, y de aqui a Eclipse. Asf evitaremos errores debidos a caracteres presentes en el pdf que pueden provocar errores. 2.4. A continuacién exportamos el proyecto a un archivo .war y lo desplegamos en el servidor. 2.5, Para acceder al Servlet utilizaremos la direceién http: //Localhost :8080/HolaMundo/Diliola yy veremos el resultado mastrado en la Figura 6.32. Request URE Alana Dh Protocolo HTTP Diecin remote 127.001 ‘Nimes: 0.03855902296670222 Figura 6.32: Servlet HolaMundo 2.6, En la siguiente figura podemos ver el resumen de funcionamiento desde la peticién por parte dol cliente a la ejecucién del servlet, Figura 6.33. 173 Despliegue de Aplicaciones Web Servidor Tomeat en hostname:port Clientes Http (avegado) POV bttp/mostname:port/HolaMundo/DiHola: HolaMundo | weesne |— Classes HolaMundoServiet.class ‘web.xml -tiolatfundo iiolafundoserviet ‘iol afundo ‘/DsHolac/azi-pattera> Figura 6.33: Servlet HolaMundo 2.7, Para finalizar comprucha cémo en la carpet CATALINA HOME webapps\HolaMundo\WEB- INF\classes aparece el fichero HolaMundoServlet.class correspondiente al fichero Hola- ‘MundoSer-viet.java que ereamos en Eclipse, Figura 6.34 4.) apcretomen 7027 = Nontie . in bes te Mera 2), BANE cles (vatandesene cs Figura 6.94: Serulet HolaMundo 174 Capitulo 6. Aplicaciones JavaEE 6.5. Servlet con acceso a base de datos con JDBC En esta practica desarrollaremos una aplicacién basada en un Servlet que accederé a una base de datos MySQL mediante un conector JDBC. 1. Instalacién de MySQL. Este apartado no es necesario si realizaste la Practica 5.1 - Instalacién de un servidor WAMP, donde se instalé un servidor MySQL. 1.1. Inieia sesién en el equipo DesarrolloW7XX. 1.2, Para simplificar la instalacién descarga el instalador para Windows de MySQL de la siguiente direccién http: //dev. mysql. con/dovnloads/installer/. 1.3, También necesitarés el instalador independiente de Microsoft .NET Framework 4, que puedes descargar de la direccion: http: //swu microsoft .con/en-us/download/details -aspx?id=17718. 1.4, Ejecuta el instalador de Microsoft .NET Framework 4. 15. A continuacién ejecuta el instalador de MySQL, eligiendo las siguientes opciones: + Tipo de instalacién: Server only + Instalation Path: C:\MySQUA, « MYSQL Server configuration: Developer Machine. + Enable TCP/IP Networking: Port Number 9306. + Create Windows Service, Windows Service Name: MySQLSS: + MySQL Root Password: despliegue 1.6. Una vex concluida la instalacién comprueba en Panel de control, Servicios, que el servicio MySQLS5 esté iniciado. 2. Creaci in de la base de datos Tiendali 2.1, Inicia sesién en MySQL con el comando: C:\MySOL\bin> mysql -u root -p e introduce el password que establecimos en la instalacién, 2.2. Para crear la base de datos TiendaLibros y la tabla libros, crea el siguiente script en el fichero C:\MySQL\TiendaLibros.txt: create database TiendaLitros; use TiendaLibros; create table Libros ( id int, eitule varchar(60), autor varchar (60) , precio float cantidad int, primary key (id); insert into Libros value: (4001, *Servicies fe Internet’, ‘Alvaro Garcia’, 25, 100); 175 Despliegue de Aplicaciones Web 176 insert into Libros value! (1002, *Apache Toncat 7°, *Aleksa Vukotic?, 22.22, 22); insert into libros value: (1003, *Beginning JSP, JSF,and Tomcat eb Development’, "Giulio Zambon’, 33.33, 33); Angert into Libros values (4004, *Toncat, the definitive guide’, ‘Jason Brittain’, 65.65, 55); Angert into Libros values (4005, *Profesional Apache Tomcat’, "Vivek Chopra’, 65.66, 65); select * from Libros; 1233, tyecuta el script con el comando: source C:\MySQL\TiendaLibros.txt |. Descarga del conector JDBC. JDBC es un API de Java para ejecutar sentencias SQL. Esta formado por un conjunto de clases ¢ interfaces programadas eon el propio Java. Permite interactuar con bases de datos, de forma transparente al tipo de In misma. Es decir, es una forma tiniea de programar el acceso a bases de datos desde Java, independiente del tipo de Ia base de datos. Puedes ampliar In informacién sobre JDBC en la http: // java.sun.con/ javase/technologies/ database/ index. jsp 3.1. Bn nuestro caso vamos a utilizar un driver nativo JDBC que permite la conectiv dad entre Java y MySQL. Puedes descargarlo de http: //www.mysql. com/products/ connector/, Figura 6.35. MySQL Connectors Seen ae a casei EReee SE Sad over for ys Commerc) caer tor msec emseion 8 Comecter er Opener Figura 6.35: Driver JDBC para MySQL 3.2. En conereto, descarga el archivo .2ip con el conector. En el momento de hacer esta doc ‘mentaci6n era mysql-connector-java-5.1.2U.zip. Una vez descargado descomprimelo y comprueba que esté el archivo mysql-connector-java-5.1,20-bin,jar que contiene ‘el conector.

También podría gustarte