Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2 de Marzo de 2011
Índice
• ¿Qué es un Servlet?
• ¿Cuándo y por qué usar Servlets?
• Estructura básica de un HttpServlet
• Servlet simple que genera texto plano
• Servlet simple que genera un HTML
• Compilación, instalación e invocación
• Ejemplo: ServletOpinion
• Ciclo de vida de los Servets
¿Qué es un Servlet?
• Programas en Java que se ejecutan en un
servidor HTTP (servidor Web)
• Actúan como capa intermedia entre:
– Petición proveniente de un Navegador Web u otro
cliente HTTP
– Bases de Datos o Aplicaciones en el servidor HTTP
Servidor Web
BD
Servlet BD
externa
Aplicación
Tareas encomendadas a un Servlet
• Leer los datos enviados por un usuario
– Usualmente de formularios en páginas Web
– Pueden venir de applets de Java o programas cliente HTTP.
• Buscar cualquier otra información sobre la petición
que venga incluida en esta
– Detalles de las capacidades del navegador, cookies, nombre
del host del cliente, etc.
• Generar los resultados
– Puede requerir consultas a Base de Datos, invocar a otras
aplicaciones, computar directamente la respuesta, etc.
• Dar formato a los resultados en un documento
– Incluir la información en una página HTML
• Establecer los parámetros de la respuesta HTTP
– Decirle al navegador el tipo de documento que se va a
devolver, establecer las cookies, etc.
• Enviar el documento al cliente
¿Cuándo y por qué usar Servlets?
• Muchas peticiones desde navegador se
satisfacen retornando documentos HTML
estáticos, es decir, que están en ficheros
• En ciertos casos, es necesario generar las
páginas HTML para cada petición:
– Página Web basada en datos enviados por el
cliente
• Motores de búsqueda, confirmación de pedidos
– Página Web derivada de datos que cambian con
frecuencia
• Informe del tiempo o noticias de última hora
– Página Web que usa información de bases de
datos corporativas u otras fuentes del la parte
del servidor
• Comercio electrónico: precios y disponibilidades
Estructura de un HttpServlet
import java.io.*;
//Se importan los paquetes con las clases para Servlets y HttpServlets
import javax.servlet.*;
import javax.servlet.http.*;
// El objeto “request” se usa para leer los “HTTP headers” que llegan
// (p.e. Cookies) y los datos de formularios HTML enviados por el usuario
out.println("Hello World");
}
}
Servlet simple que genera un HTML
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
out.flush();
out.close();
}
}
Instalación de Tomcat 6.0.16
• Realizar download de tomcat.apache.org
• Se descomprime en un directorio del
ordenador:
– C:\Archivos de programa\Apache\Tomcat 6.0
• Variables del sistema: CATALINA_HOME
– set CATALINA_HOME=C:\ Archivos de programa\
Apache\Tomcat 6.0
• Ejecución:
– Arranque del servidor: %CATALINA_HOME%\bin\
startup.bat
– Url en el navegador:
http://localhost:8080/
– Parada del servidor:
%CATALINA_HOME%\bin\shutdown.bat
Compilación
• Compilación
– Vamos a utilizar la librería de Tomcat 6
– Indicar en el CLASSPATH dónde están las clases
para que el compilador las reconozca
• Path del archivo:
%CATALINA_HOME%\lib\servlet-api.jar
– Compilar como cualquier otro código fuente Java
• Instalación
– Se entiende por instalación de un Servlet a
ponerlo disponible en el servidor para ser invocado
desde un navegador o cliente HTTP
– Se necesita un servidor de Servlets (por ejemplo,
Apache Tomcat 6.0 que es gratuito)
– Otros tipos de servidores son GlassFish, Jboss, etc.
Compilación, instalación e invocación
• Invocación de un Servlet
– Desde la barra de direcciones del navegador:
http://hostname:port/context/Nombre_Servlet
• Ejemplo: http://localhost:8080/servlet/SimpleHTML
– Desde un formulario:
• La dirección del servlet debe ir en el action
<FORM action=“http://hostname:port/context/Nombre_Servlet” method=“POST”>
...
</FORM>
• Página HTML:
– MiServlet.html
<HTML>
<HEAD>
<TITLE>Envíe su opinión</TITLE>
</HEAD>
<BODY>
<H2>Por favor, envíenos su opinión acerca de este sitio web</H2>
<FORM action="http://localhost:8080/EjemServlet/Opinion
method="POST">
Nombre: <INPUT type="text" name="nombre" size="15"><BR>
Apellidos: <INPUT type="TEXT" name="apellidos" size="30">
<P>Opinión que le ha merecido este sitio web<BR>
<INPUT type="radio" checked name="opinion" value="Buena">Buena<BR>
<INPUT type="radio" name="opinion" value="Regular">Regular<BR>
<INPUT type="radio" name="opinion" value="Mala">Mala
<P>Comentarios<BR>
<TEXTAREA name="comentarios" rows="6" cols="40"> </TEXTAREA>
<P><INPUT type="submit" name="botonEnviar" value="Enviar">
<INPUT type="reset" name="botonLimpiar" value="Limpiar">
</FORM>
</BODY>
</HTML>
Ejemplo: ServletOpinion
• Servlet:
– ServletOpinion.java -> ServletOpinion.class
• Fichero de configuración de la aplicación web:
– web.xml
…
<servlet>
<servlet-name>Ej Servlet de OPINION</servlet-name>
<servlet-class>ServletOpinion</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Ej Servlet de OPINION</servlet-name>
<url-pattern>/Opinion</url-pattern>
</servlet-mapping>
Ejemplo: ServletOpinion
• Arrancar Tomcat
– Inicio>Todos los programas>Apache Tomcat>
• Monitor Tomcat
– En la barra de tareas: Start service (para
arrancar) y Stop service (para parar)
• Tomcat Manager
– Usuario: admin y Contraseña: (en blanco)
– Arrancar /EjemServlet
Ejemplo: ServletOpinion
Ejemplo: ServletOpinion
Ejemplo: ServletOpinion
Método destroy()
•Lo llama el servidor al “apagarse”
•Cerrar procesos en curso, liberar memoria, cerrar ficheros