Vous êtes sur la page 1sur 24

Taller de Programacin

II
Unidad 01
JSP y Servlets

Servlets y JSP
Java Server Pages (JSP): es una tecnologa Java que permite
generar contenido dinmico para web, en forma de
documentos HTML, XML o de otro tipo.
Esta tecnologa es un desarrollo de la compaa
Sun Microsystems. La Especificacin JSP 1.2 fue la primera
que se liber y en la actualidad est disponible la
Especificacin JSP 2.1.
Las JSP's permiten la utilizacin de cdigo Java mediante
scripts. Adems, es posible utilizar algunas acciones JSP
predefinidas mediante etiquetas. Estas etiquetas pueden ser
enriquecidas mediante la utilizacin de Bibliotecas de Etiquetas
(TagLibs o Tag Libraries) externas e incluso personalizadas.

Servlets y JSP
Arquitectura JSP
El funcionamiento general de la tecnologa JSP es que el
Servidor de Aplicaciones interpreta el cdigo contenido en la
pgina JSP para construir el cdigo Java del servlet a
generar. Este servlet ser el que genere el documento
(tpicamente HTML) que se presentar en la pantalla del
Navegador del usuario.

JSP

Servidor
de Aplicaciones
Servlets

Cliente
(Navegador)

Servlets y JSP
El cdigo fuente de una pgina JSP puede contener:
-Directivas: Indican informacin general de la pgina, como
puede ser importacin de clases, pgina a invocar ante
errores, si la pgina forma parte de una sesin, etc.
- Declaraciones: Sirven para declarar mtodos o variables.
- Scriptlets: Cdigo Java embebido.
- Expresiones: Expresiones Java que se evalan y se envan
a la salida.
- Tags JSP: Etiquetas especiales que interpreta el servidor.

Servlets y JSP

Un ejemplo simple de archivo JSP sera:


<%@page import="java.util.*"%>
<%! String cadena="Bienvenidos a JSP"; %>
<html><body><%= cadena %>
<br>
<% out.println(new Date()); %>
</body>
</html> .

Servlets y JSP
JSP tiene bastantes ventajas frente a otras
orientaciones, como ASP o PHP. Al ser JSP una
especificacin, podemos elegir entre diversas
implementaciones, comerciales o gratuitas, sin tener
que depender de un proveedor en particular. Quiz la
ventaja fundamental es que tenemos toda la potencia
del lenguaje Java a nuestro alcance, con sus ventajas
como reusabilidad, robustez, multiplataforma, etc.

Servlets y JSP
Elementos de JSP
1) Cdigo Java: Se puede insertar cdigo Java dentro de JSP
de tres formas:
* Expresiones
* Scriptlets
* Declaraciones

Servlets y JSP
Expresiones: Son fragmentos de cdigo Java, con la
forma <%= expresin %> que se evalan y se
muestran en la salida del navegador. En general, dentro
de una expresin podemos usar cualquier cosa que
usaramos dentro de un System.out.print(expr);
Ejemplos:
<%= "Tamao de cadena: "+cadena.length() %>
<%= newjava.util.Date() %>
<%= Math.PI*2 %>

Servlets y JSP
Scriplets: Son fragmentos de cdigo Java con la forma <
% cdigo %>, en general, podemos insertar cualquier
cdigo que pudiramos usar dentro de una funcin Java.
Para acceder a la salida del navegador, usamos el objeto
implcito out.

Servlets y JSP
Ejemplos:
1)<table>
<% for (int i=0;i<10;i++)
{
%>
<tr><td> <%=i%> </td></tr>
<% }
%>
</table>
2) <% out.println("<table>");
for (int i=0;i<10;i++)
out.println("<tr><td>"+i+"</td></tr>");
out.println("</table>");
%>

Servlets y JSP
Si observamos los dos ejemplos anteriores (que hacen
lo mismo), podra parecer que la segunda opcin es
ms deseable, pero en general hay que evitar el uso
de out.println() para elementos HTML. En un
proyecto en el que trabajen programadores y
diseadores conjuntamente, hay que separar
presentacin y cdigo tanto como sea posible.
Dentro de un scriptlet podemos usar cualquier librera
de Java, incluyendo las propias, lo cual hace que
resulte muy sencillo construir interfaces web de
entrada y salida para nuestras clases.

Servlets y JSP

<% String parametro1=request.getParameter("parametro1");


String parametro2=request.getParameter("parametro2");
MiClase miClase=new MiClase();
String salida=miClase.procesa(parametro1, parametro2);
%>
<%= salida %>

Servlets y JSP
Para introducir comentarios en JSP, usaremos las marcas
<%-- comentario --%> , dentro de un
scriptlet o declaracin podemos usar comentarios
siguiendo la sintaxis de Java.
<%-- Comentario JSP --%> <!-- Comentario HTML -->
<%
// Comentario
/* Comentario */
%>

Servlets y JSP
Declaraciones: Contienen declaraciones de variables o
mtodos, con la forma <%! declaracin %>. Estas
variables o mtodos sern accesibles desde cualquier
lugar de la pgina JSP.
Hay que tener en cuenta que el servidor transforma la
pgina JSP en un servlet, y ste es usado por
mltiples peticiones, lo que provoca que las variables
conserven su valor entre sucesivas ejecuciones.

Servlets y JSP
Ejemplos:
<%! int numeroAccesos=0; %>
<html><body><%=
"La pgina ha sido accedida "+(++numeroAccesos)+
" veces desde el arranque del servidor"
%>
</body>
</html>
<%! java.util.Date primerAcceso=new java.util.Date();
%>
<html><body>El primer acceso a la pgina se realizo
en:
<%= primerAcceso %>
</body>
</html>

Servlets y JSP

Ejemplos:
<%! private String ahora()
{
return ""+new java.util.Date();
}
%>
<html><body><%= ahora() %>
</body>
</html>

Servlets y JSP
Directivas
Las directivas son elementos que proporcionan
informacin al motor JSP, e influirn en la estructura
del
servlet generado. Hay tres tipos de directivas:
* Page
* Taglib
* Include.

Servlets y JSP
Page
Se indica con la forma <%@ page atributo="valor">.
Tiene diversos usos, entre las cuales se destacan:
*Importar clases. Importar cdigo, de la misma forma
que se realiza en un programa en Java, se indica con el
atributo import.
Ejemplo:
<%@page import="java.io.*, miPackage.miClase"%>
*Indicar si la pgina tendr acceso a la sesin. Se
especifica con el atributo session.
<%@page session="true" import="java.util.ArrayList"%>

Servlets y JSP
* Gestin de errores. Permite redireccionar a una pgina
cuando se produzca un error, se indica con los
atributos errorPage y isErrorPage.
Ejemplos:
<%@page errorPage="error.jsp">
<%@page isErrorPage="yes">
<html><body>Error, contacte con el administrador [...]
</body>
</html>

Servlets y JSP
include: Permite incluir un archivo en el lugar donde se
especifique, al contrario que con la accin
<jsp:include>, la directiva include simplemente copia
el contenido del archivo byte a byte, siendo el
resultado similar a si copiramos el texto del archivo
incluido y lo
pegramos en el JSP.
Ejemplo:
<html><head><%@ include file="titulo.txt"%>
</head>
<body><%@ include file="cuerpoPagina.jsp"%>
</body>
</html>

Servlets y JSP
Taglib: Se emplea para indicar que se van a emplear
libreras de etiquetas.
Ejemplo:
<%@ taglib prefix="c"
url="http://java.sun.com/jsp/jstl/core" %>

Servlets y JSP
Acciones
Las acciones tienen la forma <jsp:accion
[parmetros]/>, y tienen diversos usos, entre los
que destacan la inclusin de pginas y transferencia de
control.
Inclusin de pginas
Se realiza con la accin <jsp:include
page="pagina.jsp">. Incluye la salida de otra pgina
JSP en la actual, al contrario que con la directiva <
%@include file="fichero.ext"%> la pgina incluida
seejecuta y su salida se inserta en la pgina que la
incluye, con la directiva se incluye el contenido del
archivo (no su salida) y se ejecuta conjuntamente con la
pgina principal.

Servlets y JSP
La pgina includa tiene acceso a los parmetros
enviados a la principal, y podemos enviarle nuevos
parmetros con la subetiqueta <jsp:param
name="nombre" value="valor"/>.
Ejemplo
<html><head><jsp:include page="cabecera.jsp"/>
</head>
<body>
<jsp:include page="cuerpo.jsp">
<jsp:param name="tipo" value="paginaPrincipal"/>
</jsp:include>
</body>
</html>

Servlets y JSP
Transferencia de control
Se realiza con la accin <jsp:forward
page="pagina.jsp"/>. La peticin es redirigida a otra
pgina, y la salida de la actual se descarta. Al igual que
con la inclusin, la pgina a la que se redirige tiene
acceso a los parmetros pasados a la actual, y es posible
el envo de nuevos parmetros.
Ejemplo:
<jsp:forward page="principal.jsp">
<jsp:param name="titulo" value="Principal"/>
</jsp:forward>

Vous aimerez peut-être aussi