Actualizado el 21 de Marzo del 2018 (Publicado el 18 de Enero del 2018)
893 visualizaciones desde el 18 de Enero del 2018
236,7 KB
14 paginas
Creado hace 18a (13/03/2007)
Práctica 3
PROGRAMACIÓN WEB CON SERVLETS
Tabla de contenidos
1.
Introducción a los Servlets.........................................................................1
1.1. Características de los Servlets....................................................................................................................... 1
1.2. API de los Servlets......................................................................................................................................... 2
2. Servlets HTTP .............................................................................................3
2.1. Características de los Servlets HTTP ............................................................................................................ 3
2.2. Estructura de un Servlet HTTP ..................................................................................................................... 4
2.3. Requisitos para probar servlets .................................................................................................................... 4
3. El primer Servlet .........................................................................................4
3.1. Codificación.................................................................................................................................................... 4
3.2. Prueba del Servlet.......................................................................................................................................... 6
4. Manejo de peticiones y respuestas ............................................................7
4.1. Petición (request) al Servlet HTTP................................................................................................................. 7
4.2. Respuesta (response) del Servlet HTTP ....................................................................................................... 7
4.3. Ejemplo de modelo petición/respuesta .......................................................................................................... 7
5. Ejemplo con acceso a datos.......................................................................9
5.1. Página HTML que realiza la petición al servlet.............................................................................................. 9
5.2. Definición de la base de datos....................................................................................................................... 9
5.3. Servlet que atiende las peticiones ............................................................................................................... 10
6. Gestión de sesiones HTTP........................................................................11
6.1. Métodos del objeto Session......................................................................................................................... 12
6.2. Ejemplo de sesiones.................................................................................................................................... 13
7. Ampliación de la práctica.........................................................................14
1. Introducción a los Servlets
Características de los Servlets
1.1.
(cid:131) Los servlets se utilizan para extender o implementar funcionalidades en un servidor.
(cid:131) Son módulos de software que se ejecutan dentro del entorno de un servidor y proveen
servicios de tipo petición/respuesta.
(cid:131) Son componentes escritos en Java, situados en los servidores e independientes de
cualquier protocolo y de cualquier plataforma.
(cid:131) Son los equivalentes en los servidores a los applets en el cliente. Sin embargo, a
diferencia de los applets, los servlets no tienen representación gráfica.
(cid:131) Los servlets pueden estar en muchos tipos de servidores. Pero su uso más común es en
servidores web. Existen muchos servidores web que soportan el uso de servlets (JWS,
Tomcat, JRun, Websphere, etc.).
(cid:131) Un servlet se instancia la primera vez y se mantiene en memoria esperando nuevas
invocaciones (el servidor web tiene una máquina virtual java que es la que ejecuta el
servlet).
1 de 14
(cid:131) La comunicación entre servlets es fácil porque ya están en memoria. El servidor web te da
el mecanismo para que se comuniquen entre ellos.
1.2. API de los Servlets
Las clases relacionadas con los Servlets están en el paquete javax.servlet que puede
obtenerse a través de la instalación de J2EE o ya viene incorporado en algunos servidores
web.
Un servlet debe implementar la interfaz Servlet, la cual declara métodos que administran el
servlet y su comunicación con el cliente. También se puede extender la clase GenericServlet
que implementa la interfaz Servlet de forma predeterminada.
Las clases ServletRequest y ServletResponse se encargan de recibir la información de
petición del cliente y enviar la respuesta al mismo.
Las clases ServletInputStream y ServletOutputStream se encargan de manejar los flujos de
entrada de la petición y de salida de la respuesta respectivamente.
A continuación mostramos el funcionamiento de un servlet genérico solicitado a través de un
navegador.
2 de 14
Pagina
Web
Cliente
Servidor
http:/.../servlet/tiempo?ciudad=BCN
JVM
Servlet
Ciudad
=BCN
BD
resultado
service(ServletRequest
r1, ServletResponse r2)
2. Servlets HTTP
2.1. Características de los Servlets HTTP
(cid:131) Los servlets http se cargan directamente en el servidor web y ofrecen acceso interactivo a
bases de datos y sistemas propietarios.
(cid:131) API de los Servlets http (paquete javax.servlet.http)
o HttpServlet (clase que hereda de GenericServlet)
o HttpServletRequest (hereda de ServletRequest)
o HttpServletResponse (hereda de ServletResponse)
(cid:131) Un servlet http puede extender la clase HttpServlet. El método service no hay que
programarlo directamente, pues éste en su implementación llama a los métodos doGet o
doPost para las dos formas de enviar información a través de http.
(cid:131) El método service de HttpServlet haría lo siguiente:
service(req, res) {
Si es Get
doGet()
Si es Post
doPost()
(cid:131) GET y POST son formas de enviar información a través del protocolo http.
(cid:131) GET envía dentro de la URL los parámetros para el servlet. GET permite que se llame al
servlet directamente pasándole los parámetros a través de la URL.
(cid:131) POST encapsula los parámetros en la trama que se envía por el protocolo http. Para
enviar datos a través de POST es necesario tener una página web con un formulario que
se encargue de enviar la información vía POST. Esta forma también se podría utilizar para
GET.
(cid:131) Existen otras peticiones que se pueden hacer: PUT (permite al cliente ubicar un fichero en
el servidor, es similar a enviar un fichero por ftp) y DELETE (permite al cliente eliminar un
documento o paquete del servidor web).
(cid:131) A través de las clases HttpServletRequest derivada de ServletRequest y
HttpServletResponse derivada de ServletResponse se manipula la información recibida
del cliente y la respuesta que se le enviará vía HTTP.
3 de 14
2.2. Estructura de un Servlet HTTP
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Prueba extends HttpServlet
{
}
public void doGet( HttpServletRequest request,
{
}
throws ServletException, IOException
...
HttpServletResponse response )
(cid:131)
2.3. Requisitos para probar servlets
(cid:131) Cualquier servidor web que soporte Servlets (Apache Tomcat 5.X, se encuentra en la
dirección http://tomcat.apache.org/)
Instalar Web Tools Platform (WTP) plugin a eclipse, o descargar la versión de eclipse que
lo incluye. 1
(cid:131) Poner el API de los servlets y de los JSP en el CLASSPATH. Si estamos trabajando con
Eclipse, es necesario ponerlos como jars externos del proyecto (verificar que jsp-api y
servlet-api están incluidos como jar externos).
(cid:131) Para instalar el Apache Tomcat 5.5
(cid:131)
Instalación normal (Todo por defecto)
Instale también los ejemplos
o Bajarse el fichero de http://tomcat.apache.org/download-55.cgi
o
o Probar que funciona mediante la siguiente ruta: http://127.0.0.1:8080
(cid:131) Puede visualizar los ejemplos desde: http://localhost:8080/examples/
o Para publicar en TomCat un proyecto, es necesario exportar el fichero WAR a
o Reiniciar el Tomcat (normalmente ya esta en ejecución)
la carpeta: dir_instalación\webapps\
3. El primer Servlet
3.1. Codificación
Este servlet sería el ejemplo más sencillo en el cual se solicita el servlet directamente desde el
cliente y una vez invocado, el servlet devuelve una respuesta al cliente en forma de una
página HTML.
(cid:131) Lo primero que tenemos que hacer es abrir en Eclipse un nuevo proyecto Web (Dinamic
Web Project).
1 http://www.eclipse.org/webtools/main.php
4 de 14
(cid:131) El proyecto lo llamaremos PrimerServlet.
(cid:131) En la opción Target Runtime elegimos Apache Tomcat v5.5
o Si no aparece, seleccionar New y elegirlo de la lista.
(cid:131) Las opciones siguientes, dejarlas con los valores por defecto.
(cid:131) Una vez en el entorno del nuevo proyecto, agregar un Servlet que llamaremos HolaMundo
y que NO pertenece a un paquete.
5 de 14
(cid:131) Escribimos el siguiente código en la clase HolaMundo:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HolaMundo extends HttpServlet
{
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
PrintWriter out; //v
Comentarios de: Práctica 3 - PROGRAMACIN WEB CON SERVLETS (0)
No hay comentarios