Está en la página 1de 44

12

ANÁLISIS Y PROGRAMACIÓN EN JAVA

Desarrollo de aplicaciones
web con JSP
ÍNDICE
12 12.1 12.2 12.3 12.4 12.5

Características de Generación Acciones JSP y Utilización de El lenguaje EL y


la tecnología JSP dinámica de directivas JavaBeans la librería de
y componentes páginas. Objetos acciones
implícitos estándar JSLT
11.6

Acceso a datos
desde JSP
12.1 Características de
la tecnología JSP
y componentes

C O M E N Z A R
Características de la tecnología JSP y componentes

Páginas JSP
Al contrario que los servlets, que son clases Java que generaban
o mostraban contenido HTML, las páginas JSP son páginas
HTML con código Java incrustado en diferentes partes.

El encargado de coger la página, sustituir el código Java que


contiene por el resultado de su ejecución, y enviarla al cliente es
el contenedor JSP. De este modo se pueden diseñar fácilmente
páginas con partes fijas y partes variables.
Características de la tecnología JSP y componentes

Ejemplo

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">


<html>
<head>
<title>Mi primera página JSP</title>
</head>
<body>
<h1> Hoy es:
<%= new java.util.Date() %>
</h1>
</body>
</html>
Características de la tecnología JSP y componentes

Elementos JSP
Código: podemos "incrustar" código Java de distintos
tipos para que lo ejecute el contenedor JSP.

Directivas: permiten controlar distintos parámetros del


servlet resultante de la traducción automática del JSP

Acciones: Suelen servir para alterar el flujo normal de


ejecución de la página (p.ej. redirecciones), aunque Se pueden poner comentarios en una
tienen usos variados. página JSP entre los símbolos <%-- y --
%>, de este modo todo el contenido
entre los símbolos el contenedor JSP lo
ignorará.
12.2 Generación
dinámica de
páginas. Objetos
implícitos
C O M E N Z A R
Generación dinámica de páginas. Objetos implícitos

Insertar código Java


en una página JSP:
1 Expresiones de la forma <%= expresión %>

La expresión se evalúa, su resultado se convierte


a String y se inserta en la salida.

La forma de traducir una expresión a código de


servlet es imprimiéndola en out (mediante una
sentencia out.write(expresion)) o similar.
Generación dinámica de páginas. Objetos implícitos

Insertar código Java


en una página JSP:
1 Expresiones de la forma <%= expresión %>

2 Scriptlets de la forma <% código %>

El código se ejecuta dentro del


método _jspService del servlet generado. Los
scriplets nos van a permitir ejecutar código
arbitrario, cuyo resultado no es necesario enviar a la
salida, bastará con utilizar el objeto predefinido out.

Este tipo de código nos permite que algunas partes


de código HTML aparezcan o no en función de una
condición.
Generación dinámica de páginas. Objetos implícitos

Insertar código Java


en una página JSP:
E de
j e la
m forma
p l o <%= expresión %>
1 Expresiones
<%
X
2 Scriptlets de la forma <% código
java.util.Calendar %>= java.util.Calendar.getInstance();
ahora
int hora = ahora.get(java.util.Calendar.HOUR_OF_DAY);
El código %>se ejecuta dentro del
<b> Hola mundo,
método _jspService <i> generado. Los
del servlet
<% if ((hora>20)||(hora<6)) { %>
scriplets nos van a permitir ejecutar código
buenas noches
arbitrario, <%
cuyo} resultado no es necesario enviar a la
salida, bastará conif
else utilizar el objeto predefinido
((hora>=6)&&(hora<=12)) out.
{ %>
buenos días
Este tipo de<% código } nos permite que algunas partes
de código HTML else aparezcan
{ %> o no en función de una
buenas tardes
condición.
<% } %>
</i> </b>
Generación dinámica de páginas. Objetos implícitos

Insertar código Java


en una página JSP:
1 Expresiones de la forma <%= expresión %>

2 Scriptlets de la forma <% código %>

Otra forma es a través de un scriptlet de


asignación, que comienza por <%=, que saca
directamente a la página el valor de la expresión
que se le ponga.

Ejemplo

Hoy es <%= new java.util.Date() %>


Generación dinámica de páginas. Objetos implícitos

Insertar código Java


en una página JSP:
1 Expresiones de la forma <%= expresión %>

2 Scriptlets de la forma <% código %>

3 Declaraciones de la forma <% código %>

Se insertan en el cuerpo del servlet generado, fuera de sus métodos.


Las declaraciones nos permiten definir variables o métodos que se van a insertar dentro del cuerpo del
servlet generado, así vamos a poder sobreescribir los métodos jspInit y jspDestroy.
Las variables declaradas conservarán su valor entre sucesivas llamadas a la página, ya que son variables
miembro del servlet y no locales al método jspService. Esto nos permite, por ejemplo, crear un contador
de accesos a la página:

<%! private int accesos = 0; %>


<h1> Visitas: <%= ++accesos %> </h1>
Generación dinámica de páginas. Objetos implícitos

Objetos implícitos JSP


En cualquiera de estas tres formas, se puede Objeto Tipo
hacer referencia a una serie de objetos out JspWriter (para enviar la salida al cliente)
implícitos, concretamente 9, que son creados
por el contenedor web disponibles para todas request HttpServletRequest (Asociado con la petición)
las páginas jsp.
response HttpServletResponse (Asociado con la respuesta)

config ServletConfig (empleado para leer parámetros de


inicialización)
application ServletContext (común a todos los servlets de la
aplicación web)
session HttpSession (Asociado con la petición actual)

pageContext PageContext (Para acceder desde un único objeto a


todos los demás objetos implícitos)
page Object (pensada para el caso en que se utilizara un
lenguaje de programación distinto a java)
exception Throwable
Generación dinámica de páginas. Objetos implícitos

Objetos implícitos JSP


index.jsp
<html>
<body>
<% out.print("Today is:"+java.util.Calendar.getInstance().getTime()); %>
</body>
</html>
12.3 Acciones JSP y
directivas
C O M E N Z A R
Acciones JSP y directivas

Directivas
Las directivas jsp son mensajes que le indican al contenedor web
cómo traducir una página JSP al servlet correspondiente.

Hay tres tipos de directivas:

Pa g e Include Ta g l i b
directive directive directive

Sintaxis de la directiva JSP

<%@ directive attribute="value" %>


LECTURA

Tipos de directivas
TIEMPO ESTIMADO
10 min
TIEMPO ESTIMADO DE LECTURA
10 min

https://drive.google.com/file/d/1-3Aypc7mG3UBpjHu5ah4xRZtVxC5nsX_/preview
Acciones JSP y directivas

Acciones
Permite insertar la salida de otra página JSP. Esta acción incluye en
1 La acción <jsp:include>
una página la salida generada por otra perteneciente a la misma
aplicación web. La petición se redirige a la página incluida, y la
2 La acción <jsp:plugin> respuesta que genera se incluye en la generada por la principal.

3 La acción <jsp:plugin>
Sintaxis
<jsp:include page="URL relativa" flush="true|false"/>
Acciones JSP y directivas

Acciones
1 La acción <jsp:include>

Esta etiqueta se usa cuando se necesita un plugin para


2 La acción <jsp:plugin>
ejecutar una clase de Bean o un Applet.

3 La acción <jsp:plugin>
Acciones JSP y directivas

Acciones
1 La acción <jsp:include>

2 La acción <jsp:plugin>

La acción <jsp:plugin> Esta acción se utiliza para redirigir la petición hacia otra página JSP
3
que esté en la misma aplicación web que la actual.

Sintaxis

<jsp:forward page="URL de la otra página estática, JSP


O Servlet" />
12.4 Utilización de
JavaBeans

C O M E N Z A R
Utilización de JavaBeans

Introducción

Bean se refiere a un componente. Los componentes


1
son elementos que se pueden reutilizar.

Un componente reutilizable se denomina JavaBean


en JSP. Un Java Bean es una clase estándar de Java
2
con atributos, setters y getters para representar un
formulario de usuario específico en el servidor.

Un JavaBean en JSP es una clase de Java que sigue


3
un conjunto de pautas.
Utilización de JavaBeans

Se aplican las siguientes reglas:

La clase debe ser pública, no definitiva, y abstracta.

Se recomienda que se implemente de manera serializable.

Se requiere un constructor de parámetros directo/indirecto.

Deben utilizarse variables miembro privadas y no estáticas.

Cada propiedad de bean debe tener un método setter y


getter con el modificador público.
Utilización de JavaBeans

El método setter agrega datos a una propiedad de bean,


mientras que el método getter lee datos de él.

El uso de beans en páginas JSP ofrece diversas ventajas con


respecto al uso directo de código Java:

Al emplear etiquetas con sintaxis XML en lugar de sintaxis Java


se puede separar más fácilmente el trabajo de programadores y
diseñadores web.

Se simplifica la creación y uso de objetos compartidos entre


varias páginas.

Se simplifica la creación de objetos a partir de los parámetros de


la petición.
Utilización de JavaBeans

Un JavaBean en JSP puede mezclar muchos datos simples en


un objeto y enviarlos de un recurso a otro o de una capa a otra.
Por ejemplo, podemos usar un bean Java para mantener los datos del
formulario en un solo objeto.

Un Java Bean es una clase de Java específicamente diseñada,


escrita en Java y se adhiere a la definición de la API de Java Beans.
Utilización de JavaBeans

Uso de beans desde páginas JSP

Para interactuar con un bean desde una página JSP


primero debemos asignarle un nombre y especificar
qué clase Java lo define. Una vez hecho esto, se puede
acceder a sus propiedades y darles nuevos valores.
Utilización de JavaBeans

1 2 3 4

Acceso al bean

Para hacer accesible un bean a una página JSP se emplea la etiqueta


jsp:useBean.
Su sintaxis es:
<jsp:useBean id="nombreBean" class="paquete.Clase"/>
Utilización de JavaBeans

1 2 3 4

Acceso al bean Acceso a las


propiedades del bean

El acceso a una propiedad se realiza mediante la etiqueta jsp:getProperty.


Su sintaxis es:
<jsp:getProperty name="nombreBean" property="nombrePropiedad"/>
Utilización de JavaBeans

1 2 3 4

Acceso al bean Acceso a las Asignación de valores


propiedades del bean a las propiedades del
bean

Se realiza mediante la etiqueta jsp:setProperty. Esta etiqueta requiere tres


parámetros: name (el id del bean, definido anteriormente mediante alguna etiqueta
jsp:useBean), property (el nombre de la propiedad) y value (el valor que se desea
dar a la propiedad).

Ejemplo

<jsp:setProperty name="usuario" property="visitas" value="1"/>

En este ejemplo se da a la propiedad “visitas” del bean usuario el valor 1.


Utilización de JavaBeans

1 2 3 4

Acceso al bean Acceso a las Asignación de valores Inicialización de un


propiedades del bean a las propiedades del bean
bean

Cuando sea necesario inicializar un bean antes de empezar a usarlo no podremos hacerlo directamente con
la etiqueta jsp:useBean, ya que no admite parámetros. Para solucionar el problema, en el cuerpo de la
etiqueta jsp:useBean podemos introducir etiquetas jsp:setProperty que inicialicen las propiedades.
Además, se pueden colocar scriptlets y código HTML.

Ejemplo
<jsp:useBean id="usuario" class="beans.usuarioBean">
<b> inicializando datos de usuario </b>
<jsp:setProperty name="usuario" property="ultimaVisita"
value="<%= new java.util.Date() %>"/>
</jsp:useBean>
12.5 El lenguaje EL y
la librería de
acciones
estándar JSLT
C O M E N Z A R
E l l e n g u a j e E L y l a l i b r e r í a d e a c c i o n e s e s t á n d a r J S LT

EL (Expression Language) en JSPs


1 2
En las páginas JSP se utiliza EL Combinado con la librería JSTL
(Expression Language) para Core (JavaServer Pages
interactuar con los datos Standard Tag Library) nos
(JavaBeans) servidos (Servlet) permite construir toda la lógica
por parte del servidor, sin de las páginas JSP de una forma
importar el alcance de los mucho más versátil.
atributos (request, session,
application).
4
No es necesario hacer Con EL no se pueden modificar
ninguna declaración especial los atributos de los Javabeans
3 en los JSP. El único requisito (métodos setters) únicamente se
es que sea un archivo JSP pueden leer sus atributos
válido (e.j. page.jsp). (métodos getters).
E l l e n g u a j e E L y l a l i b r e r í a d e a c c i o n e s e s t á n d a r J S LT

Variables en Expression Language


Para obtener el valor de cualquier variable, sea del tipo que sea,
debemos escribir su nombre entre ${}.

Para acceder a sus propiedades con EL desde el JSP debemos escribir el


nombre del objeto, seguido de punto, y el nombre de la propiedad.
<c:out value=”${persona.nombre}”/>
<c:out value=”${persona.edad}”/>

Si queremos acceder a un javabean con sus propiedades, getters y setters,


EL automáticamente trata de obtener la propiedad utilizando los
estándares (getNombre) de un javabean clásico.

Utilizaremos la misma sintaxis para acceder a atributos compartidos


mediante objetos implícitos.
E l l e n g u a j e E L y l a l i b r e r í a d e a c c i o n e s e s t á n d a r J S LT

Operadores en Expression Language

Las expresiones EL se evalúan cuando se ejecuta el


archivo JSP en el servidor a continuación, el resultado
de dicha expresión es reemplazado en el lugar donde
está colocada la expresión.

Finalmente, este resultado se envía al cliente, junto con


el HTML del JSP. Al poder operar con los datos extraídos
de los JavaBeans las expresiones permiten generar
contenido más dinámico.
E l l e n g u a j e E L y l a l i b r e r í a d e a c c i o n e s e s t á n d a r J S LT

Introducción a las librerías de tags


Las librerías de tags son conjuntos de etiquetas HTML
personalizadas que permiten encapsular determinadas acciones,
mediante un código Java subyacente.

Para poder utilizar JSTL en nuestro proyecto debemos incluir la


librería “jstl- 1.2.jar”, (para la versión 1.2 en este ejemplo
concreto) en el directorio WEB-INF/lib de nuestra aplicación e
incluir esta directiva al principio de los ficheros .jsp donde
vayamos a utilizar JSTL.

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>


E l l e n g u a j e E L y l a l i b r e r í a d e a c c i o n e s e s t á n d a r J S LT

JSTL

JSTL (JavaServer Pages Standard Tag Library) es


una librería de tags estándar que encapsula, en
forma de tags, muchas funcionalidades comunes
en aplicaciones JSP, esto permite que en lugar
que tener que recurrir a varias librerías de tags
de distintos distribuidores, sólo necesitaremos
tener presente esta librería.
E l l e n g u a j e E L y l a l i b r e r í a d e a c c i o n e s e s t á n d a r J S LT

Uso de JSTL
JSTL contiene gran variedad de tags que permiten hacer distintos tipos de tareas.

Librería EL:

AREA URI PREFIJO


Core. Contiene tags principalmente para http://java.sun.com/jsp/ jstl/core c
manipular datos, establecer condiciones o
iterar entre los elementos.
XML. Incluye tags para la manipulación de http://java.sun.com/jsp/ jstl/xml x
datos en formato XML.
Fmt. Permite dar formato a cadenas de texto y http://java.sun.com/jsp/ jstl/fmt fmt
utilización de I18N (Internationalization)
SQL. Permite ejecutar consultas a una BD. http://java.sun.com/jsp/ jstl/sql sql
12.6 Acceso a datos
desde JSP

C O M E N Z A R
Acceso a datos desde JSP

La base de datos
se utiliza para almacenar varios tipos de datos
que son enormes y tienen una capacidad de
almacenamiento en gigabytes.

JSP puede conectarse con tales bases de datos para


crear y administrar los registros.
LECTURA

Ejemplo de acceso a datos


desde JSP
TIEMPO ESTIMADO
5 min
TIEMPO ESTIMADO DE LECTURA
10 min

https://drive.google.com/file/d/15B7g5R09cvoCri5bLEIhFKgjfFCT9Itr/preview
hemos
terminado
¡EXCELENTE TRABAJO!

También podría gustarte