Integración de Servlets y JSP

Jesús Arias Fisteus
Curso 2007/2008


URIs relativas y absolutas

Introducción

URI absoluta

<a href="http://www.it.uc3m.es/labttlat/lab8/">...</a>

URI relativa al servidor

<a href="/labttlat/lab8/">...</a>

URI relativa

<a href="lab8/">...</a>

Ejemplo: URIs relativas

Figura que muestra cómo se
      convierte una URI relativa en absoluta en el navegador

En la figura anterior se muestra que, si en una página obtenida mediante la URI http://www.it.uc3m.es/labttlat/lab8/index.html se coloca una imagen con atributo href con valor foto.jpg, el navegador resuelve la URI completa como http://www.it.uc3m.es/labttlat/lab8/foto.jpg.

Recomendaciones de diseño

Integración de Servlets y JSP

Introducción

Modelo de funcionamiento (I)

  1. El cliente envía la petición HTTP a un servlet.
  2. El servlet procesa la petición.
  3. El servlet redirige la petición a un JSP.
  4. El JSP lee los parámetros y devuelve la respuesta formateada visualmente al usuario.

Modelo de funcionamiento (II)

Figura que ilustra lo expuesto en la
	sección anterior (redirección con forward de un servlet a un
	JSP)

Mecanismos de redirección de peticiones

Redirecciones sendRedirect

// Redirección con URI absoluta
response.sendRedirect("http://www.ejemplo.es/");

// Redirección con URI relativa a la URI de la petición actual
response.sendRedirect("otra.html");

Redirecciones forward

Redirecciones forward

Redirecciones forward con parámetros

Noticia nuevaNoticia = (...)
request.setAttribute("noticia", nuevaNoticia);
RequestDispatcher rd = request.getRequestDispatcher("/vista.jsp");
rd.forward(request, response);

Redirecciones forward con parámetros

Envío de parámetros de formularios

Envío de parámetros de formularios

Envío de parámetros de formularios

usuario=juan&clave=juanpw&ssid=7fgxc&enviar=enviar
nombre=juan%20l%C3%B3pez%20l%C3%B3pez

Envío de parámetros de formularios

GET /jaf/cgi-bin/html2xhtml.cgi?tipo=auto&html=default.html HTTP/1.1
Host: www.ejemplo.es
(...)

Envío de parámetros de formularios

POST /jaf/cgi-bin/html2xhtml.cgi HTTP/1.1
(...)
Content-Length: 27
Content-Type: application/x-www-form-urlencoded

tipo=auto&html=default.html

Envío de parámetros de formularios

Ejemplo: multipart/form-data

POST /jaf/cgi-bin/html2xhtml.cgi HTTP/1.1
(...)
Content-Type: multipart/form-data; boundary=----------2qYzCGdatrpobJh4m5rz50
Content-Length: 972

------------2qYzCGdatrpobJh4m5rz50
Content-Disposition: form-data; name="tipo"

auto
------------2qYzCGdatrpobJh4m5rz50
Content-Disposition: form-data; name="html"; filename="readme.html"
Content-Type: text/html

<html xmlns="http://www.w3.org/1999/xhtml">
(...)
</html>
------------2qYzCGdatrpobJh4m5rz50--