informtica iii

Anuncio
Práctica 7: 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.
Ejercicio 7.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 primer servlet en Tomcat:
1. Copiar el directorio Q:\Java\apache-tomcat-5.5.12 al directorio G:\
2. 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
3. 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;.
De esta forma se tendrá acceso a los comandos startup y shutdown de la aplicación tomcat y a
las clases de los servlets.
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
G:\apache-tomcat-5.5.12\webapps\primerServlet\WEB-INF con el contenido:
2
Informática II
<?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 7.2: Instalación de SurveyServlet
En este segundo ejercicio se instalará un servlet y se comprobará su funcionamiento, para
posteriormente realizar las modificaciones que se solicitan. El servlet con el que se trabajará será el
ejemplo SurveyServlet.java que introduce los datos de una encuesta en un fichero.
Primero se debe realizar la instalación y configuración del servlet en el servidor de servlets
instalado en el ejercicio 1. Para ello se dispone de los ficheros JdcSurvey.html,
SurveyServlet.java y web.xml comprimidos en el fichero Practica07.zip, que se encuentra en
la página de material de la web de la asignatura. Descarga el fichero y descomprímelo en el
directorio practicaServlet del subdirectorio webapps de Tomcat..
Modificar JdcSurvey.html para que el formulario envíe los datos al servlet
SurveyServlet.java del propio directorio y comprobar el funcionamiento viendo que inserta los
datos correctamente en el fichero especificado.
Se debe intentar realizar este ejercicio con las explicaciones vistas en el primer ejercicio y los
ficheros de Practica07.zip. Si se encuentran dificultades se puede encontrar ayuda en el siguiente
apartado que muestra los pasos a realizar.
Pasos a realizar para la puesta en funcionamiento de SurveyServlet en Tomcat:
1. Tomcat se encuentra instalado según las instrucciones del ejercicio 1.
2. Crear un nuevo directorio de trabajo (practicaServlet) en el subdirectorio webapps de la
instalación de tomcat y descomprimir allí el fichero Practica07.zip.
El fichero html se debe encontrar en webapps\practicaServlet
El fichero web.xml se debe situar en el subdirectorio webapps\practicaServlet\WEB-INF
El fichero java se debe situar en el subdirectorio webapps \practicaServlet \WEB-INF\classes
3. Modifica el texto “Thank you” por “Gracias” las dos veces que aparece en el fichero
SurveyServlet.java en las líneas 101 y 102. De esta forma sabrás si el servlet al que se está
llamando es el propio.
4. Modifica el título de la página HTML a “Mi página JdcSurvey” en el fichero JdcSurvey.html.
5.
La dirección a la que debe llamar el formulario es:
http://localhost:8080/practicaServlet/survey
6. En el directorio webapps \practicaServlet\WEB-INF\classes compila el código fuente java con el
comando:
javac SurveyServlet.java
7. Comprobar el contenido del fichero web.xml:
<?xml version="1.0" encoding="ISO-8859-1" ?>
Anexo 1. Introducción a SQL
3
<web-app>
<servlet>
<servlet-name>Survey</servlet-name>
<servlet-class>SurveyServlet</servlet-class>
<init-param>
<param-name>resultsDir</param-name>
<param-value>G:\apache-tomcat-5.5.12\webapps\practicaServlet\tmp</paramvalue>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Survey</servlet-name>
<url-pattern>/survey</url-pattern>
</servlet-mapping>
</web-app>
8. Los resultados se escriben en el fichero Survey01Results.txt que se crea en el directorio:
G:\apache-tomcat-5.5.12\webapps\practicaServlet\tmp
(este directorio debe estar creado previamente).
9.
Arranca el servidor de servlets con el comando:
startup
10. Arranca el navegador y solicita la página JdcSurvey.html. con al URL:
http://localhost:8080/practicaServlet/JdcSurvey.html
11. Selecciona una opción referente al tamaño de la compañía, introduce un comentario e indicar
un IDE. Pulsa el botón “Submit Query”. Comprobar que el resultado que se obtiene tiene el
título “Gracias” y el mensaje “Gracias por su participación" (es decir, se está usando el servlet
que hemos modificado). En el servidor de servlets se debe haber impreso la línea:
SurveyServlet: INIT
12. Comprobar que se ha escrito el siguiente fichero:
G:\apache-tomcat-5.5.16\webapps\practicaServlet\tmp \Survey01Results.txt
Ejercicio 7.3:Modificaciones en SurveyServlet
A continuación realizar las modificaciones oportunas en el servlet SurveyServlet.java para
que este presente los datos que se han introducido en la respuesta al cliente de la forma mostrada
en la Figura 7.1.
Figura 7.1. Salida del servlet SurveyServlet.java
4
Informática II
Ejercicio 7.4:Otra modificación de SurveyServlet
El servlet SurveyServlet.java sólo imprime una de las opciones elegidas de IDE. En el caso
de seleccionar varias, para imprimir todas se debe sustituir el código que se muestra en la siguiente
tabla (se recomienda crear un nuevo servlet: SurveyServletNew.java):
SurveyServlet.java
SurveyServletNew.java
while(values.hasMoreElements()) {
String name = (String)values.nextElement();
String value =
req.getParameterValues(name)[0];
if(name.compareTo("submit") != 0) {
toFile.println(name + ": " + value);
}
}
while(values.hasMoreElements()) {
String name = (String)values.nextElement();
String[] valueArray =
req.getParameterValues(name);
for (int i=0;i<valueArray.length;i++) {
String value = valueArray[i];
if(name.compareTo("submit") != 0) {
toFile.println(name + ": " + value);
}
}
}
Puede ocurrir que no se reconozca la máquina que hace de servidor de servlets, en este caso el
ordenador local, cuando el formulario envía la información:
<FORM action=”http://localhost:8080/servlet/survey” method=”POST”>
Entonces se debe modificar el nombre que aparece actualmente “localhost” por:
•
el número de IP de la máquina en la que se está trabajando, por ejemplo:
193.145.251.42:8080
•
el nombre de la máquina
A01.tecnun.es:8080.
en
la
que
se
está
trabajando,
por
ejemplo:
Lo habitual es colocar el número propio de IP que se puede obtener con el comando
“ipconfig”. El nombre de la máquina en la que se está trabajando o “host” se obtiene con el
comando “ipconfig /all”.
Descargar