Download Java Server Pages Introducción

Document related concepts
no text concepts found
Transcript
Java Server Pages
Dr. Raúl Pérez
Introducción
z
Escribir código HTML en los servlets es tedioso
y se presta a equivocarse fácilmente debido a
que hay que utilizar las instrucciones print,
println, etc. Es decir, HTML está dentro de jjava.
p
z
JSP permite invertir la visión e insertar java
dentro de HTML es decir escribir normalmente
la página HTML insertando código java en las
partes dinámicas
dinámicas.
Ejemplo
z
Los 2 ejemplos siguientes tienen
f
funcionalidades
i
lid d equivalentes,
i l t
ell primero
i
es
un servlet y el segundo un JSP.
Ejemplo de Servlet
public class ThreeParams extends HttpServlet {
public void doGet(HttpServletRequest request
request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title = "Reading Three Request Parameters";
String docType = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0”+
“Transitional//EN\">\n";
Servlet (cont…)
out.println(docType + "<HTML>\n" + "<HEAD><TITLE>" + title +
"</TITLE></HEAD>\n" +
"<H1>" + title + "</H1>\n" +
"<UL>\n" +
" <LI><B>param1</B>: "+ request.getParameter("param1") + "\n" +
" <LI><B>param2</B>: " + request.getParameter("param2") + "\n" +
" <LI><B>param3</B>: “ + request.getParameter(
request getParameter("param3")
param3 ) + "\n"
\n +
"</UL>\n" +
"</BODY></HTML>");
}
}
Ejemplo de JSP
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Reading Three Request Parameters</TITLE>
</HEAD>
<BODY>
<H1>Reading Three Request Parameters</H1>
<UL>
UL
<LI><B>param1</B>: <%= request.getParameter("param1") %>
<LI><B>param2</B>: <%= request.getParameter("param2") %>
<LI><B>param3</B>: <%= request.getParameter("param3") %>
</UL>
</BODY></HTML>
Observaciones sobre los ejemplos
z
El JSP es mas corto y simple de escribir
z
El servidor construye un servlet a partir de la página JSP.
z
Siempre que haya mucho HTML y poco java conviene mas
JSP que los servlets.
z
Cuando el código java es complejo convienen mas los servlets
que JSP.
z
Es p
posible combinar los 2 enfoques
q
–
–
Usar servlets para las operaciones complejas.
Usar JSP para la parte de presentación.
Elementos de JSP
z
Las etiquetas JSP embebidas en páginas
HTML se usan para crear servlets
l t en ell
servidor.
z
Existen 2 tipos principales de elementos
JSP:
–
–
Scripting
Directives
Directives.
JSP Scripting
z
Expresiones, se evalúan y se insertan
di t
directamente
t en la
l página.
á i
z
Scriptlets, son bloques de código java.
z
Declaraciones, se pueden declarar variables
y métodos para utilizar en la página.
Expresiones
z
z
z
z
Usan el formato <%= expresión java %> .
Las expresiones se evalúan
evalúan, se convierten en
Strings y se insertan en la página HTML.
Se utilizan con segmentos muy cortos de código
java.
java
Pueden usar 4 variables predefinidas:
–
–
–
–
request (HttpRequest),
response(HttpResponse),
session (HttpSession),
out (Printwriter)
Ejemplos de expresiones JSP
<%= request.getRemoteAddress() %>
Imprime la dirección IP del cliente
<%= new java.util.Date() %>
Imprime la hora y la fecha
Scriptlets JSP
z
La etiqueta HTML para enmarcar un Scriptlet
es <%
% código
ódi %>.
%
z
Los Scriptlets se traducen en código
insertado directamente en el servlet.
z
Generalmente son bloques extensos.
Ejemplo de Scriptlets JSP
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Color Testing</TITLE>
</HEAD>
/HEAD
<%
String bgColor = request.getParameter("bgColor");
if ((
((bgColor
g
== null)) || (bgColor.trim().equals("")))
( g
() q
( ))) {
bgColor = "WHITE";
}
%>
<BODY BGCOLOR="<%= bgColor %>">
<H2 ALIGN="CENTER">Testing a Background of "<%= bgColor %>"</H2>
</BODY></HTML>
Ejemplo
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-Example of using scriptlets to make parts of the page conditional.
Taken from Core Servlets and JavaServer Pages 2nd Edition
from Prentice Hall and Sun Microsystems Press
Press,
http://www.coreservlets.com/.
(C) 2003 Marty Hall; may be freely used or adapted.
-->
<HTML>
<HEAD>
<TITLE>Wish for the Day</TITLE>
<LINK REL=STYLESHEET
REL STYLESHEET
HREF="JSP-Styles.css"
TYPE="text/css">
</HEAD>
Ejemplo
<BODY>
<% if (Math.random() < 0.5) { %>
<H1>Have a <I>nice</I> day!</H1>
<% } else { %>
<H1>Have a <I>lousy</I> day!</H1>
<% } %>
</BODY></HTML>
Declaraciones JSP
z
Permiten definir métodos ó variables
z
No generan ninguna salida.
z
Usan el formato <%! código %>
Ejemplo de declaración JSP
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>JSP Declarations</TITLE>
</HEAD>
<BODY>
<H1>JSP
H1 JSP Declarations</H1>
D l ti
/H1
<%! private int accessCount = 0; %>
<H2>Accesses to page since server reboot:
<%= ++accessCount %></H2>
</BODY></HTML>
Directivas JSP
Una directiva JSP es información de alto
nivel
i l que afecta
f t lla estructura
t t
generall del
d l
servlet.
z La
L etiqueta
ti
t HTML correspondiente
di t es
<%@ type = attribute value %>.
z
Ejemplo
<%@ page import =“java
= java.util.
util *” %>
Directivas JSP
z
page
–
z
include
–
z
Controla la estructura del servlet
Insertar un archivo en una página JSP
taglib
–
D fi etiquetas
Define
ti
t (tags)
(t
)