Download Práctica 8: Servlets - TECNUN:Campus Tecnológico de la
Document related concepts
no text concepts found
Transcript
Práctica 8: Servlets En esta práctica, primero se creará y se instalará en el servidor de aplicaciones Apache Tomcat, el servlet “HelloWorld”. Después se instalará un segundo servlet al cual se le harán una serie de modificaciones. Finalmente se comenzará a crear la aplicación de gestión de servlets en entorno Web. Ejercicio 8.1: Instalación de Tomcat y primer servlet Este primer ejercicio consiste en seguir los pasos que se describen a continuación para instalar y ejecutar el servlet “HelloWorld”. Pasos a realizar para la puesta en funcionamiento del servidor Tomcat: 1. Copiar el directorio Q:\Java\apache-tomcat-5.5.12 al directorio G:\ 2. 2.Definir las variables de entorno en una consola de MS-DOS: SET JAVA_HOME=Q:\JAVA\jdk1.6.0_04 SET CATALINA_HOME=G:\apache-tomcat-5.5.12 SET PATH=%JAVA_HOME%\bin;%CATALINA_HOME%\bin;%PATH% SET CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\common\lib\servlet-api.jar; %CATALINA_HOME%\common\lib\Jama-1.0.2.jar; . (se deben escribir estas dos últimas líneas en una sola línea) De esta forma se tendrá acceso a los comandos startup y shutdown de la aplicación tomcat y a las clases de los servlets. Pasos a realizar para realizar el primer servlet: 3. Crea los directorios de la aplicación “primerServlet” en el subdirectorio webapps de la instalación del tomcat. Crear la carpeta primerServlet en webapps Crear la carpeta WEB-INF en el subdirectorio webapps\primerServlet Crear la carpeta classes en el subdirectorio webapps\primerServlet\WEB-INF 4. En el directorio webapps\primerServlet\WEB-INF\classes crear el código fuente de HelloWorld.java: import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println("Hello World"); } } Compilarlo con el comando: javac HelloWorld.java 5. Crear el fichero web.xml en el directorio CAMPUS TECNOLÓGICO DE LA UNIVERSIDAD DE NAVARRA. NAFARROAKO UNIBERTSITATEKO CAMPUS TEKNOLOGIKOA Paseo de Manuel Lardizábal 13. 20018 Donostia-San Sebastián. Tel.: 943 219 877 Fax: 943 311 442 www.tecnun.es informacion@tecnun.es 30 Informática II G:\apache-tomcat-5.5.12\webapps\primerServlet\WEB-INF con el contenido: <?xml version="1.0" encoding="ISO-8859-1"?> <web-app> <servlet> <servlet-name>primer</servlet-name> <servlet-class>HelloWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>primer</servlet-name> <url-pattern>/primer.html</url-pattern> </servlet-mapping> </web-app> 6. Arranca el servidor de servlets con el comando: startup 7. Arranca el navegador y solicita la página con la dirección: http://localhost:8080/primerServlet/primer.html Ejercicio 8.2: Instalación de ServletOpinion En este segundo ejercicio se instalará el servlet ServletOpinion, descrito en el libro. Pasos a realizar para la puesta en funcionamiento de ServletOpinion en Tomcat: 1. Tomcat se encuentra instalado según las instrucciones del ejercicio 1. 2. Descomprimir en el subdirectorio webapps de la instalación de tomcat el fichero ServletOpinion.zip. Al descomprimirse creará ya el subdirectorio de la nueva aplicación ServletOpinion y la estructura de directorios (WEB-INF y classes). El fichero MiServlet.html se debe encontrar en webapps\ServletOpinion El fichero web.xml en el subdirectorio webapps\ServletOpinion\WEB-INF El fichero ServletOpinion.java debe estar en el subdirectorio webapps\ServletOpinion\WEB-INF\classes 3. La dirección a la que debe llamar el formulario de MiServlet.html es: opinion 4. En el directorio webapps \ServletOpinion\WEB-INF\classes compila el código fuente java con el comando: javac ServletOpinion.java 5. El contenido del fichero web.xml debe ser: <?xml version="1.0" encoding="ISO-8859-1" ?> <web-app> <servlet> <servlet-name>Opinion</servlet-name> <servlet-class>ServletOpinion</servlet-class> </servlet> <servlet-mapping> <servlet-name>Opinion</servlet-name> <url-pattern>/opinion</url-pattern> </servlet-mapping> </web-app> 6. Arranca el servidor de servlets con el comando: startup 7. Arranca el navegador y solicita la página MiServlet.html. con al URL: http://localhost:8080/ServletOpinion/MiServlet.html 8. Rellenar los distintos campos del formulario y pulsar enviar. El servlet responde con “Valores recogidos del formulario: “. Prácticas 31 En el servlet ServletOpinion es necesario fijarse en la función doGet() y algunos de los métodos que utiliza, en concreto: • getParameter(), método de la clase HttpServletRequest, que devuelve el valor enviado por el formulario, para el elemento cuyo nombre se introduce como argumento. Con esta función se recupera cada uno de los valores que el usuario ha introducido en los distintos elementos del formulario. Este método siempre devuelve el valor como String, por lo que si se quiere utilizar de forma numérica, habrá que convertirlo de la forma habitual (por ejemplo a entero con el método: Integer.parseInt(String). • setContentType(), método de la clase HttpServletResponse, que indica que el contenido va a ser una página Html, esta sentencia se incluirá al comienzo de la salida de todos los servlets. • getWriter(), método de la clase HttpServletResponse, que devuelve un objeto de tipo PrintWriter (como System.out o para escribir en un fichero) de forma que se pueden utilizar los métodos print() y println(), iendo dicha salida al navegador del usuario que realizó la petición. Esta sentencia se incluye junto a la anterior al comienzo de la salida del servlet. • Los métodos flush() y close() de PrintWriter se ponen al final de la salida para asegurar el envío d la página. • El método devolverPaginaHTML, no es estrictamente necesario, es simplemente por la organización de este servlet en particular, pero se podría eliminar la utilización de esta clase e incluir su contenido directamente en el método doGet(). Ejercicio 8.3: Servlet menú de aplicación Basado en el servlet primerServlet, crear un nuevo directorio en webapps de nombre “matrices”, y crear la estructura de carpetas para contener un servlet (directorios WEB-INF y classes y fichero web.xml). Realizar 2 páginas web estáticas, una conteniendo el menú de la aplicación y otra un formulario como respuesta a la primera opción del menú. Este formulario preguntará por el número de filas y columnas de la matriz que se desea crear. El aspecto de estas páginas puede ser similar al que se muestra a continuación. 32 Informática II Crear 3 servlets: 1. El servlet Celdas.java, crea un formulario con el número de celdas indicadas en el formulario anterior. El formulario que crea este servlet llama al servlet CrearMatriz.java. 2. El servlet CrearMatriz.java guarda los valores introducidos en el formulario en un objeto de Jama.Matrix y muestra la matriz creada. Para guardar y compartir las matrices se crea una clase con una variable estática de Vector<Matrix> que contiene todas las matrices. Dicha clase de puede definir de la siguiente forma y es accesible por las otros servlets. import java.util.*; import Jama.*; public class MatrixVector { public static Vector<Matrix> v = new Vector<Matrix>(); } 3. El servlet MostrarMatrices.java, es la respuesta a la segunda opción del menú y muestra todas las matrices creadas. El resultado de ambos servlets se muestra a continuación: Servlet CrearMatriz Servlet MostrarMatrices