41
Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jes ´ us Arias Fisteus // [email protected] Computaci ´ on Web con Servlets y JSP (II)– p. 1

Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Computación Web con Servlets y JSP (II)

Computación Web (Curso 2015/2016)

Jesus Arias Fisteus // [email protected]

Computacion Web con Servlets y JSP (II)– p. 1

Page 2: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Java Server Pages (JSP)

Computacion Web con Servlets y JSP (II)– p. 2

Page 3: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Introducción

Un servlet no resulta adecuado para presentación(escribir directamente la salida HTML) porque elcódigo HTML está entremezclado dentro delcódigo Java:

Incómodo cambiar el código HTML.

No facilita la división de tareas entrediseñadores de HTML y programadores.

Alternativa: escribir directamente el código HTMLcon poco código Java incrustado.

Computacion Web con Servlets y JSP (II)– p. 3

Page 4: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Introducción

Una página JSP es una página HTML queincorpora ciertos elementos dinámicos: etiquetasespeciales y pequeños fragmentos de código.

El código HTML aparece a la salida sinmodificaciones.

Los elementos dinámicos se evalúan o ejecutanen el servidor en el momento de construcciónde la respuesta.

Computacion Web con Servlets y JSP (II)– p. 4

Page 5: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

JSP ejemplo

<%@ page language='java' contentType='text/html;charset=utf-8'%>

<%@ page import='java.util.Date' %>

<!DOCTYPE html>

<html>

<head>

<title>Hola Mundo</title>

</head>

<body>

<p>Hola, esto es una página JSP.</p>

<p>La hora del servidor es <%= new Date() %></p>

</body>

</html>

Computacion Web con Servlets y JSP (II)– p. 5

Page 6: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

JSP ejemplo: documento recibido por

el cliente

<!DOCTYPE html>

<html>

<head>

<title>Hola Mundo</title>

</head>

<body>

<p>Hola, esto es una página JSP.</p>

<p>La hora del servidor es Wed Nov 06 13:25:34 CET 2002</p>

</body>

</html>

Computacion Web con Servlets y JSP (II)– p. 6

Page 7: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

JSP como servlet

Aunque no es estrictamente obligatorio, loscontenedores de servlets suelen transformar laspáginas JSP en el código fuente de servlets, quedespués se compilan y ejecutan.

Computacion Web con Servlets y JSP (II)– p. 7

Page 8: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

JSP ejemplo transformado en un ser-

vlet

(...)

out.write("<!DOCTYPE html>\n ");

out.write("<html>\n ");

out.write(" <head>\n ");

out.write(" <title>Hola Mundo</title>\n ");

out.write(" </head>\n ");

out.write(" <body>\n <p>Hola, esto es una página JSP.</p>\n ");

out.write(" <p>La hora del servidor es ");

out.print( new Date() );

out.write("</p>\n ");

out.write(" </body>\n");

out.write("</html>\n");

(...)

Computacion Web con Servlets y JSP (II)– p. 8

Page 9: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Comentarios en JSP

Los comentarios JSP no se envían al cliente, alcontrario que los comentarios HTML.

<%-- Esto es un comentario JSP --%>

Computacion Web con Servlets y JSP (II)– p. 9

Page 10: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Directivas JSP: page

Todas las páginas JSP deberían incluirla.Atributos habituales:

language: lenguaje de programación (javapor defecto).

contenttype: tipo de contenido de la página(text/html por defecto).

isErrorPage: indica si es una página de error(false por defecto).

errorPage: página a la que dirigirse si ocurreuna excepción procesando esta página.

<%@ page language='java' contentType='text/html'

isErrorPage='false' errorPage='error.jsp' %>

Computacion Web con Servlets y JSP (II)– p. 10

Page 11: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Otras directivas JSP

include: permite incluir directamente el códigode otro fichero en el punto en que aparezca ladirectiva.

import: permite importar clases Java utilizadasen la página JSP.

<%@ include file='footer.html' %>

<%@ page import='java.util.*' %>

Computacion Web con Servlets y JSP (II)– p. 11

Page 12: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Scriptlets

Permiten incrustar código escrito en otro lenguajede programación (normalmente Java):

<%= expresion %>: evalúa la expresión ymuestra el resultado en la página.

<% sentencias %>: ejecuta las sentencias,sin mostrar nada en la página.

<%-- los siguientes scriptlets son equivalentes --%>

<%= user.getName() %>

<% out.println(user.getName()); %>

Computacion Web con Servlets y JSP (II)– p. 12

Page 13: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Scriptlets: ejemplo

<table>

<tr><th>Product</th><th>Price</th></tr>

<%

for (Product product: catalog) {

%>

<tr>

<td>

<a href='<%= response.encodeURL("view?id="

+ product.getId()) %>'>

<%= product.getShortName() %>

</a>

</td>

<td><%= product.getPrice() %> Euros</td>

</tr>

<% } %>

</table>

Computacion Web con Servlets y JSP (II)– p. 13

Page 14: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Variables implícitas

JSP proporciona automáticamente una serie devariables adecuadamente declaradas einicializadas, utilizables por el programador:

javax.servlet.ServletContext application

javax.servlet.ServletConfig config

javax.servlet.jsp.JspWriter out

javax.servlet.jsp.PageContext pageContext

javax.servlet.http.HttpServletRequest request

javax.servlet.http.HttpServletResponse response

javax.servlet.http.HttpSession session

<%-- Sólo en páginas marcadas con isErrorPage: --%>

java.lang.Throwable exception

Computacion Web con Servlets y JSP (II)– p. 14

Page 15: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Acciones: jsp:include

La acción jsp:include invoca al servlet o JSPdado e incluye en resultado de su ejecución en elpunto actual del documento JSP desde el cual seincluya.

El control retorna finalmente a la página inicial.

Opcionalmente, se pueden pasar parámetros.

<jsp:include page='header.jsp'>

<jsp:param name='title' value='Welcome' />

</jsp:include>

Computacion Web con Servlets y JSP (II)– p. 15

Page 16: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Java Beans

Un Java Bean es una clase Java que cumple elsiguiente convenio:

Contiene propiedades (normalmente atributosde instancia privados).

El acceso a las propiedades se realizamediante métodos de acceso get, set e is.

Tiene siempre un constructor sin argumentos(aunque podría tener más constructores).

Computacion Web con Servlets y JSP (II)– p. 16

Page 17: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Java Beans: ejemplo

package foo;

public class UserInfo implements java.io.Serializable

{

private String firstName;

private boolean registered;

public String getFirstName() {

return firstName;

}

public void setFirstName(String firstName) {

this.firstName = firstName;

}

public boolean isRegistered() {

return registered;

}

public void setRegistered(boolean registered) {

this.registered = registered;

}

}

Computacion Web con Servlets y JSP (II)– p. 17

Page 18: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Java Beans en JSP

JSP proporciona instrucciones especiales paratrabajar más cómodamente con Java Beans.

La acción jsp:useBean:

Si el bean aún no existe en el contexto:Declara, crea e inicializa el bean.Crea una referencia al bean con el nombredado por id.

Si el bean ya existe en el contexto:Obtiene una referencia al mismo con elnombre dado por id.

<jsp:useBean id='user' class='foo.UserInfo' scope='session'>

<jsp:setProperty property='firstName' value='Pepe' />

</jsp:useBean>

Computacion Web con Servlets y JSP (II)– p. 18

Page 19: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Java Beans en JSP: contextos (I)

Un bean en JSP se puede almacenar en uno delos siguientes contextos:

page: asociado a la página JSP y a unapetición HTTP concreta, desaparece al finalizarel procesado de la página.

request: asociado a una petición HTTPconcreta, compartida entre todos los JSPs yservlets que atiendan dicha petición,desaparece al finalizar el procesado de lapetición.

Computacion Web con Servlets y JSP (II)– p. 19

Page 20: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Java Beans en JSP: contextos (II)

. . .

session: asociado a la sesión, compartida portodos los JSPs y servlets para todas laspeticiones de una misma sesión, desaparece alfinalizar la sesión.

application: asociado al contexto de laaplicación Web, compartido por todos losservlets y JSPs de la aplicación en todas laspeticiones.

Computacion Web con Servlets y JSP (II)– p. 20

Page 21: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

La acción jsp:getProperty

Se evalúa al valor de una propiedad de un bean.

<jsp:getProperty name='user' property='firstName' />

Computacion Web con Servlets y JSP (II)– p. 21

Page 22: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

La acción jsp:setProperty

Establece el valor de una propiedad de un bean.

Convierte, si es necesario, el valor de la propiedaddesde una cadena de texto al tipo de datoscorrespondiente.

Proporciona un atajo para establecer valores depropiedades a partir de los parámetros de lapetición, si ambos tienen el mismo nombre.

<jsp:setProperty name='user' property='firstName'

value='<%= request.getParameter("firstName") %>' />

<%-- si 'firstName' es un parámetro de la petición --%>

<jsp:setProperty name='user' property='firstName' />

<%-- todos los parámetros de la petición cuyo nombre

coincida con propiedades --%>

<jsp:setProperty name='user' property='*' />

Computacion Web con Servlets y JSP (II)– p. 22

Page 23: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Algunas referencias

Marty Hall, Core Servlets and JavaServer Pages.Prentice Hall (2000).

http://www.oracle.com/technetwork/

java/javaee/jsp/

Computacion Web con Servlets y JSP (II)– p. 23

Page 24: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Arquitectura de una aplicación con Servlets yJSP

Computacion Web con Servlets y JSP (II)– p. 24

Page 25: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Patrón Modelo Vista Controlador

(MVC)

Patrón de arquitectura del software que divide laaplicación en tres partes:

Modelo: almacenamiento y manipulación de losdatos de la aplicación.

Vista: presentación del modelo que permita alusuario interaccionar con él (interfaz deusuario).

Controlador: recibe la entrada del usuario,solicita acciones sobre el modelo y controla lavista.

Computacion Web con Servlets y JSP (II)– p. 25

Page 26: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Aplicaciones web Java y MVC

Patrón MVC en una aplicación web Java:

Modelo: gestiona el almacenamiento,recuperación y manipulación de los datos de laaplicación (típicamente mediante base dedatos).

Vista: produce la salida, normalmente HTML,que se envía al usuario (típicamente JSP).

Controlador: recibe las peticiones HTTP, actúasobre el modelo y controla el funcionamiento dela vista (típicamente servlets).

Computacion Web con Servlets y JSP (II)– p. 26

Page 27: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Modelo de funcionamiento (I)

1. El cliente envía la petición HTTP a un controlador(servlet).

2. El controlador procesa la petición.

Si es necesario, interacciona con el modelo.

3. El controlador redirige la petición a una vista(JSP).

Si es necesario, añade beans comoparámetros.

4. La vista lee los parámetros y construye larespuesta HTTP que se envía al cliente.

Computacion Web con Servlets y JSP (II)– p. 27

Page 28: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Modelo de funcionamiento (II)

petición HTTP

Base dedatos

Controlador(servlet)

Vista(JSP)

respuesta HTTP

forw

ard bean

bean

navegador Modelo

JD

BC

Computacion Web con Servlets y JSP (II)– p. 28

Page 29: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Mecanismos de redirección de peticio-

nes

Hay dos formas de redirigir una petición a otrorecurso:

Redirecciones HTTP (sendRedirect):El servidor envía una respuesta al cliente conun código 3xx y la URI a la que este debeenviar la petición.

Redirecciones internas en el servidor (forward):Se redirige la petición de un recurso a otrodentro de la misma aplicación Web.El recurso de la última redirección devuelveal cliente la respuesta HTTP.La redirección es transparente para el cliente.

Computacion Web con Servlets y JSP (II)– p. 29

Page 30: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Redirecciones sendRedirect

Fuerza el envío de una respuesta HTTP deredirección al cliente.

El cliente envía la petición a la URI recibida en larespuesta.

// 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");

Computacion Web con Servlets y JSP (II)– p. 30

Page 31: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Redirecciones forward

Un Servlet o JSP reenvía la petición a otro recurso(Servlet, JSP, HTML) de la misma aplicación Web.

El cliente no se entera de la redirección (p.e., elnavegador muestra la URI original de la petición,no la redirigida).

El control retorna al finalizar el método forward,por lo que conviene que sea lo último que seejecuta.

Computacion Web con Servlets y JSP (II)– p. 31

Page 32: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Redirecciones forward

Forward desde un Servlet:RequestDispatcher rd = request.getRequestDispatcher("vista.jsp");

rd.forward(request, response);

Computacion Web con Servlets y JSP (II)– p. 32

Page 33: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Redirecciones forward con parámetros

El objeto de la petición (ServletRequest) de losrecursos origen y destino de la redirección es elmismo:

Se pueden añadir parámetros como atributos ala petición.

Noticia nuevaNoticia = (...)

request.setAttribute("noticia", nuevaNoticia);

RequestDispatcher rd = request.getRequestDispatcher("vista.jsp");

rd.forward(request, response);

Computacion Web con Servlets y JSP (II)– p. 33

Page 34: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Redirecciones forward con parámetros

Recogida de parámetros desde un Servlet:Noticia noticia = (Noticia) request.getAttribute("noticia");

Recogida de parámetros desde un JSP:<%-- Alternativa 1: con useBean --%>

<jsp:useBean id="noticia" class="beans.Noticia"

scope="request" />

<%-- Alternativa 2: con scriptlet --%>

<% Noticia noticia =

(Noticia) request.getAttribute("noticia"); %>

Computacion Web con Servlets y JSP (II)– p. 34

Page 35: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

URIs relativas y absolutas

Computacion Web con Servlets y JSP (II)– p. 35

Page 36: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Introducción

En HTML, en un hiperenlace, imagen, etc. esnecesario especificar una URI.

El navegador necesita la URI completa para seguirel hiperenlace, cargar la imagen, etc.

Una URI se puede especificar como:

URI absoluta.

URI relativa a un servidor.

URI relativa.

Computacion Web con Servlets y JSP (II)– p. 36

Page 37: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

URI absoluta

Se especifica directamente la URI completa delrecurso.

En HTTP, incluye el identificador de protocolo,servidor, ruta en el servidor y parámetros.

El navegador simplemente toma la URI.

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

Computacion Web con Servlets y JSP (II)– p. 37

Page 38: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

URI relativa al servidor

Se especifica de forma absoluta la ruta del recurso(comenzando por “/”), pero no se indica protocoloni servidor.

El navegador toma el protocolo y servidor delrecurso en el cual está el enlace, imagen, etc.

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

Computacion Web con Servlets y JSP (II)– p. 38

Page 39: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

URI relativa

Se especifica sólo la ruta del recurso relativa (nocomienza por “/”), pero no se indica protocolo niservidor, ni parte inicial de la ruta.

El navegador toma el protocolo, servidor y parteinicial de la ruta del recurso en el cual está elenlace, imagen, etc.

Para calcular la ruta, se toma la ruta del recursoactual excepto su último nivel (similar a la formade nombrar ficheros en un sistema de ficheros).

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

Computacion Web con Servlets y JSP (II)– p. 39

Page 40: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Ejemplo: URIs relativas

<html> <head> (...) </head> <body> <p> <img src="foto.jpg" alt="Una foto" /> </p> </body></html>

http://www.it.uc3m.es/labttlat/lab8/index.html

http://www.it.uc3m.es/labttlat/lab8/foto.jpg

Computacion Web con Servlets y JSP (II)– p. 40

Page 41: Computación Web con Servlets y JSP (II) …Edited with emacs + LAT E X+ prosper Computación Web con Servlets y JSP (II) Computación Web (Curso 2015/2016) Jesus Arias Fisteus

Edited

with

em

acs

+LA

T EX

+pro

sper

Recomendaciones de diseño

Es recomendable utilizar rutas relativas siempreque sea posible:

Se puede cambiar la aplicación de servidor oruta sin necesidad de cambiar ninguna URI enlos servlets, JSP, HTML, etc.

Computacion Web con Servlets y JSP (II)– p. 41