JSPJSPJSPJSP
Java Server Pages
Java Server Pages
Java Server Pages
Java Server Pages
César Acebal
César Acebal
cesaracebal.com
cesaracebal.com
[email protected]
[email protected]
¿Qué es JSP?
¿Qué es JSP?
¿Qué es JSP?
¿Qué es JSP?
Una tecnología para crear páginas Web dinámicas
Una tecnología para crear páginas Web dinámicas
Contiene código HTML normal junto elementos especiales de JSP
Están construidas sobre
Están construidas sobre servlets
servlets
Internamente, el servidor de aplicaciones las compilará a un servlet
Vienen a resolver el problema de aquéllos (que era el mismo
Vienen a resolver el problema de aquéllos (que era el mismo
Vienen a resolver el problema de aquéllos (que era el mismo
Vienen a resolver el problema de aquéllos (que era el mismo
que con CGI), es decir:
que con CGI), es decir:
Que la creación de la página Web se haga generando HTML directamente
por código, en un lenguaje de programación
Esto dificulta enormemente la separación de tareas
desarrollo, entre diseñadores
diseñadores y programadores
programadores
separación de tareas en el equipo de
Introduccióón a JSP
Introducci
n a JSP
César Acebal
César Acebal
22
Insertar JSP en páginas HTML
Insertar JSP en páginas HTML
Insertar JSP en páginas HTML
Insertar JSP en páginas HTML
JSP (como ASP) aborda el problema a la inversa:
JSP (como ASP) aborda el problema a la inversa:
En vez de insertar HTML en código de programación,
podremos insertar ciertos elementos de código en las páginas
HTML
Introduccióón a JSP
Introducci
n a JSP
César Acebal
César Acebal
33
Ejemplo de página JSP
Ejemplo de página JSP
Ejemplo de página JSP
Ejemplo de página JSP
<html>
<head>
<title>Saludo personalizado con JSP</title>
</head>
<body>
<% java.util.Date hora = new java.util.Date(); %>
<% if (hora.getHours() < 12) { %>
<h1>¡Buenos días!</h1>
<h1>¡Buenos días!</h1>
<% } else if (hora.getHours() < 21) { %>
<h1>¡Buenas tardes!</h1>
<% } else { %>
<h1>¡Buenas noches!</h1>
<% } %>
<p>Bienvenido a nuestro sitio Web, abierto las 24 horas del
día.</p>
</body>
</html>
Introduccióón a JSP
Introducci
n a JSP
César Acebal
César Acebal
44
Para este viaje… ¿hacen falta tantas
Para este viaje… ¿hacen falta tantas
Para este viaje… ¿hacen falta tantas
Para este viaje… ¿hacen falta tantas
alforjas?
alforjas?
alforjas?
alforjas?
Lo cierto es que incluir mucha lógica de
Lo cierto es que incluir mucha lógica de
programación en una página Web no es que sea
programación en una página Web no es que sea
mucho mejor que generar el HTML por programa
mucho mejor que generar el HTML por programa
Pero JSP proporciona los elementos de acción
Pero JSP proporciona los elementos de acción
Pero JSP proporciona los elementos de acción
Pero JSP proporciona los elementos de acción
((action elements
action elements) que son como etiquetas HTML pero
) que son como etiquetas HTML pero
que representan código reutilizable
que representan código reutilizable
Además, podríamos llamar a otras clases Java del
Además, podríamos llamar a otras clases Java del
servidor, a componentes (Javabeans
servidor, a componentes (
Javabeans o o EJBEJB)…)…
Introduccióón a JSP
Introducci
n a JSP
César Acebal
César Acebal
55
Separación de presentación y lógica
Separación de presentación y lógica
Separación de presentación y lógica
Separación de presentación y lógica
En definitiva, lo que permite JSP (bien utilizado) es
En definitiva, lo que permite JSP (bien utilizado) es
una mayor separación entre la presentación de la
una mayor separación entre la presentación de la
página y la lógica de la aplicación, que iría aparte
página y la lógica de la aplicación, que iría aparte
(Desde la página JSP únicamente llamaríamos, de diferentes
formas, a ese código)
formas, a ese código)
Introduccióón a JSP
Introducci
n a JSP
César Acebal
César Acebal
66
Despliegue de una páágina JSP
Despliegue de una p
Despliegue de una p
Despliegue de una páágina JSP
gina JSP
gina JSP
Crear una p
Crear una páágina JSP que muestre la fecha actual
gina JSP que muestre la fecha actual
<html>
<head>
<title>Fecha actual con JSP</title>
</head>
<body>
<p>Hoy es <%= new java.util.Date(); %>
<p>
</body>
</html>
Introduccióón a JSP
Introducci
n a JSP
César Acebal
César Acebal
77
Despliegue de una páágina JSP
Despliegue de una p
Despliegue de una p
Despliegue de una páágina JSP
gina JSP
gina JSP
Crear la estructura b
Crear la estructura báásica de directorios
sica de directorios
ejemplos
WEB-INF
classes
Y éste (el directorio
raíz de la aplicación)
iría en el directorio de
despliegue del
servidor de
aplicaciones
(Tomcat, en nuestro
caso)
lib
........................
web.xml
web.xml
Introduccióón a JSP
Introducci
n a JSP
César Acebal
César Acebal
Las clases
compiladas de Java
(servlets,
JavaBeans, etc.)
Cualquier fichero
.jar necesario para
la aplicación
Descriptor de
despliegue (cómo
llamar a los servlet,
seguridad, etc.)
88
Despliegue de una páágina JSP
Despliegue de una p
Despliegue de una p
Despliegue de una páágina JSP
gina JSP
gina JSP
Lo guardamos como
Lo guardamos como index.jsp
la aplicaci
la aplicacióónn
index.jsp en el directorio ra
en el directorio raííz de
z de
Debe tener extensión jspjsp
Introduccióón a JSP
Introducci
n a JSP
César Acebal
César Acebal
99
Primer ejemplo
Primer ejemplo
Primer ejemplo
Primer ejemplo
Una vez desplegada la aplicación en Tomcat, vamos
Una vez desplegada la aplicación en Tomcat, vamos
a probarla
a probarla
Introducir en el navegador el siguiente URL:
Introducir en el navegador el siguiente URL:
http://localhost:8080/ejemplos--jsp/index.jsp
http://localhost:8080/ejemplos
jsp/index.jsp
Debería mostrarnos la siguiente página:
Debería mostrarnos la siguiente página:
Introduccióón a JSP
Introducci
n a JSP
César Acebal
César Acebal
1010
Resultado de la ejecución
Resultado de la ejecución
Resultado de la ejecución
Resultado de la ejecución
Para ver esta película, debe
Para ver esta película, debe
disponer de QuickTime™ y de
un descompresor TIFF (LZW).
Introduccióón a JSP
Introducci
n a JSP
César Acebal
César Acebal
1111
Establecer la página inicial
Establecer la página inicial
Establecer la página inicial
Establecer la página inicial
En el ejemplo anterior era necesario indicar
En el ejemplo anterior era necesario indicar
explícitamente cuál era la página predeterminada
explícitamente cuál era la página predeterminada
Aquélla que deberá devolver el servidor cuando sólo se le
indique un directorio
Por ejemplo, ante:
Por ejemplo, ante:
http://localhost:8080/ejemplos
http://localhost:8080/ejemplos--jspjsp
Podemos cambiar esto en el fichero web.xml:
Podemos cambiar esto en el fichero web.xml:
<welcome
<welcome--file
file--list>
list>
<welcome
<welcome--file>index.jsp</welcome
file>index.jsp</welcome--file>
file>
</welcome
</welcome--file
file--list>
list>
Introduccióón a JSP
Introducci
n a JSP
César Acebal
César Acebal
1212
¿Un servlet?
¿Un servlet?
¿Un servlet?
¿Un servlet?
Efectivamente, las páginas JSP no son más que otra interfaz
Efectivamente, las páginas JSP no son más que otra interfaz
que se le ofrece al programador de la misma tecnología
que se le ofrece al programador de la misma tecnología
Otra manera de hacer lo mismo
De hecho, ya hemos dicho que el servidor de aplicaciones las
De hecho, ya hemos dicho que el servidor de aplicaciones las
compilará internamente a un servlet
compilará internamente a un
servlet
Incluso en este caso, que sólo hay código HTML, debido a la extensión
(.jsp.jsp)
Podemos comprobarlo yendo al directorio
Podemos comprobarlo yendo al directorio
work/Catalina/localhost/ejemplos--
work/Catalina/localhost/ejemplos
jsp/org/apache/jsp/ dentro de
dentro de Tomcat
jsp/org/apache/jsp/
fichero generado index_jsp.java
fichero generado
index_jsp.java
Tomcat y examinado el
y examinado el
Además, nótese cómo la primera vez que pedimos la página tarda un poco
(es porque está compilando la página)
Introduccióón a JSP
Introducci
n a JSP
César Acebal
César Acebal
1313
Servlet generado por Tomcat
Servlet generado por Tomcat
Servlet generado por Tomcat
Servlet generado por Tomcat
import oracle.jsp.runtime.*;
package org.apache.jsp;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent {
private static java.util.List _jspx_dependants;
public Object getDependants() {
return _jspx_dependants;
}
public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException, ServletException {
JspFactory _jspxFactory = null;
PageContext pageContext = null;
HttpSession session = null;
ServletContext application = null;
ServletConfig config = null;
JspWriter out = null;
Object page = this;
JspWriter _jspx_out = null;
PageContext _jspx_page_context = null;
Introduccióón a JSP
Introducci
n a JSP
César Acebal
César Acebal
1414
Servlet generado por Tomcat
Servlet generado por Tomcat
Servlet generado por Tomcat
Servlet generado por Tomcat
try {
_jspxFactory = JspFactory.getDefaultFactory();
response.setContentType("text/html");
pageContext = _jspxFactory.getPageContext(this, request, response,
null, true, 8192, true);
_jspx_page_context = pageContext;
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
session = pageContext.getSession();
out = pageContext.getOut();
_jspx_out = out;
out.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n");
out.write("<!DOCTYPE html PUBLI
Comentarios de: JSP (Java Server Pages) (0)
No hay comentarios