aplicaciones web - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/modelado/aplicacionesweb.pdf · que...

142
Aplicaciones WEB

Upload: dotruc

Post on 26-Jan-2019

232 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Aplicaciones WEB

Page 2: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Proceso de una solicitud El cliente (navegador) abre un socket en el servidor

con el puerto 80 (default) El cliente envía texto ASCII por el socket seguido de

algunos encabezados HTTP, una línea vacía seguida de datos adicionales

El servidor revisa la solicitud y ubica los recursos necesarios para responder a la solcitud

El servidor escribe en el socket el resultado (normalmente un documento HTML)

El servidor cierra el socket.

Page 3: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Modelo sin estado No hay conversación entre el cliente y el servidor Cada solicitud se toma como nueva Las aplicaciones requieren información de estado Solución

Identificar las solicitudes de una misma sesión El cliente puede recordar la identificación de la sesión El cliente incluye la identificación de la sesión en cada

solicitud

Page 4: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Solicitud Web

http://www.ace.com/MiAplicacion/principal.html

Protoicolo Servidor

Ruta y nombre deldocumento

Page 5: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Formato de la solicitud

<línea de solicitud><encabezado de solicitud>

<llave> : <valor><linea vacía>

Page 6: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Formato de una solicitudLínea de solicitud

<metodo> <URI> <HTTP version>

Ejemplo:GET /MiAplicacion/index.html HTTP/1.0

Métodos

ReservadoCONNECT

ECO de solicitudes y encabezadosTRACE

¿Qué solicitudes acepta el servidor?OPTIONS

Elimina URIDELETE

Los datos se almacenan como nuevo contenido del URIPUT

Envío de datosPOST

Similar a GET pero el servidor no regresa un documento solamente líneas de estado

HEAD

Solicitud simple de un documentoGET

Page 7: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Capas de aplicaciones Web

Navegador (HTML y applets)

Servidor de aplicaciones

Servidor de bases de datos

Page 8: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Contenedores J2EE

Page 9: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Componentes J2EE Son:

Servlets Son clases java que generan código HTML Generan respuestas al cliente

JSP (Java Server Pages) Son páginas HTML que contienen código java Es una forma mas organizada

Java Beans Son clases java que se apegan a las especificaciones

de Java Beans

Page 10: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Clientes Web Páginas conteniendo texto dinámico (HTML, XML)

generado la capa web desplegado por un navegador y applets

Se les llama clientes ligeros y no: Consultan la base de datos Realizan lógica de negocios

Applets Pequeñas aplicaciones escritas en Java Requieren que la máquina virtual de Java se encuentre

cargada en el navegador Aplicaciones cliente

Programas de ventanas creados con Swing para proporcionar una interfaz mas rica para el usuario

Page 11: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Que es un servlet Es una clase java usada para extender las

capacidades del servidor. Las clases e interfaces para el desarrollo de

servlets se encuentran en los paquetes: javax.servlet javax.servlet.http

Un servlet debe implementar la interfaz Servlet Los servlets pueden derivarse de

GenericServlet HttpServlet

Diseñado para atender las solicitudes: Get, Post, etc.

Page 12: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Servlet (erjemplo)package servlets;

import java.io.*;import java.util.*;import java.sql.*;import javax.servlet.*;import javax.servlet.http.*;/** * This is a simple example of an HTTP Servlet. It responds to the GET * method of the HTTP protocol. */public class GreetingServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); response.setBufferSize(8192);

PrintWriter out = response.getWriter();

// then write the data of the response out.println("<html>" + "<head><title>Hello</title></head>");

// then write the data of the response out.println("<body bgcolor=\"#ffffff\">" + "<img src=\"duke.waving.gif\" alt=\"Duke waving\">" + "<h2>Hello, my name is Duke. What's yours?</h2>" + "<form method=\"get\">" + "<input type=\"text\" name=\"username\" size=\"25\">" + "<p></p>" + "<input type=\"submit\" value=\"Submit\">" + "<input type=\"reset\" value=\"Reset\">" + "</form>");

String username = request.getParameter("username");

if ((username != null) && (username.length() > 0)) { RequestDispatcher dispatcher = getServletContext() .getRequestDispatcher("/response");

if (dispatcher != null) { dispatcher.include(request, response); } }

out.println("</body></html>"); out.close(); }

public String getServletInfo() { return "The Hello servlet says hello."; }}

Page 13: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Que es una JSP Java Server Page Es un documento de texto que contiene

Texto estático (HTML, SVG, WML, XML) Elementos JSP

Las JSP son convertidas por el contenedor en Servlets los cuales son ejecutados por el contenedor para generar una respuesta

Page 14: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

JSP Ejemplo<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %><html><head><title>Hello</title></head><body bgcolor="white"><img src="duke.waving.gif"> <h2>Hello, my name is Duke. What's yours?</h2><form method="get"><input type="text" name="username" size="25"><p></p><input type="submit" value="Submit"><input type="reset" value="Reset"></form>

<c:if test="${fn:length(param.username) > 0}" > <%@include file="response.jsp" %></c:if></body></html>

Page 15: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Java Beans Componentes basados en la arquitectura

JavaBeans Se usan para contener la lógica de la aplicación y

pueden comunicar: Cliente y componentes J2EE J2EE y la base de edatos

Contienen propiedades y métodos para su consulta y modificación

Se deben apegar a los estándares de nomenclatura y diseño de la arquitectura JavaBeans

Page 16: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Componentes del negocio Son componentes que contienen las reglas

del negocio Se denominan Enterprise Beans

Page 17: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Soporte para servicios Web Los servicios Web son aplicaciones que atienden

solicitudes de clientes u otras aplicaciones Utilizan XML para el intercambio de información y

SOAP Se cuenta con el API para la manipulación de XML SOAP (Simple Object Transport Protocol)

Se usa para transmitir mensajes entre los clientes y los servicios WEB

Es independiente de la plataforma y ubicación WSDL (Web Service Description Languaje)

Page 18: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

¿Que es? Es un lenguaje de marcado que define contenido

(HTML define presentación) Texto plano Ideal para intercambio de información en la red Contiene la definición de los datos (semántica) Estructura jerárquica Usos

Intercambio de información entre componentes Programación dirigida por documentos

Page 19: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Ejemplo<?xml version='1.0' encoding='utf-8'?> <!-- A SAMPLE set of slides --> <slideshow   

title="Sample Slide Show"   date="Date of publication"   author="Yours Truly"   >   

<!-- TITLE SLIDE -->   <slide type="all">     

<title>Wake up to WonderWidgets!</title>   </slide>   <!-- OVERVIEW -->   <slide type="all">     

<title>Overview</title>     <item>Why <em>WonderWidgets</em> are great</item>     <item/>     <item>Who <em>buys</em> WonderWidgets</item>   

</slide </slideshow>

Page 20: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Servlets

Page 21: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

JSP (Java Service Page)

Page 22: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

JSP

Textofuente

Fuentejava

Servlet

claseCompilada

Page 23: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Elementos JSP Directivas Comentarios Expresiones Scriptles Declaraciones Acciones estándar

Page 24: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Directivas Formato

<%@ nombre [atributo="valor" …]%> Se usan para describir como se debe generar el

código Directivas

page include taglib

Page 25: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Atributos de la directiva page language

Solo se acepta java extends

para derivar una JSP de otra import

Una lista separada por comas de paquetes y clases

<%@ page import="java.io.*,java.text.*" %>

sesion true o false.- Indica si la JSP

requiere sesion buffer

Tamaño del buffer (8K por omisión) autoFlush

Indica se el buffer se vacía automáticamente o se genera una excepción

isThreadSafe true o false.- Indica si la página

puede atender solicitudes simultáneas

info Una cadena que regresa el

método getServletInfo() isErrorPage

true si esta página va a ser usada por otra como página de error

errorPage Indica el URL de una página

de error contentType

Especifica el tipo MINE pageEncoding

Indica como está codificada la página

Page 26: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Directiva include Se usa para agregar el contenido de otro

archivo (similar a #include de C) <%@ include file="archivo" %> El contenido de archivo sustituye a la

directiva La sustitución se produce al generarse el

Servlet correspondiente

Page 27: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Comentarios Comentarios visibles solo en JSP

Se puede usar para comentar secciones de código<%-- Esto es un comentario --%>

Comentarios generados en la respuesta HTML<!– Esto se incluye en el texto HTML -->

Page 28: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Expresiones Formato

<%= exp %> Con las expresiones se puede usar el valor

de una variable java Ejemplo

<h2>La hora exacta es: <%= new java.util.Date()%></h2>

Page 29: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

scriptles Es un conjunto de instrucciones java que se

van a incluir en la función _jspService() Puede haber tantos scrptles como se desee.

Su texto se concatena el el orden de aparición

Formato <% texto java %>

Page 30: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

scriptles (ejemplo)<%@ page import="java.text.*" session="false" %><html><head>

<title> Ejemplo de scriptles </title></head/<body>

<table border="0" cellpadding="3"><tr> <th>Fahrenheit</th> <th>Celsius</th></tr>

<%NumberFormat fmt = new DecimalFormat("###.000");for(int f = 32; f < 212; f +=20) {

double c = ((f - 32) * 5)/9.0;string cs = fmt.format(c);

%><tr>

<td align ="RIGHT"> <%= f %> </td><td align ="RIGHT"> <%= f %> </td>

</tr><% } %></table></body></html>

Page 31: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Declaraciones Se usa para incluir texto java fuera de la

función _jspService() Se puede usar para definir variables de

instancia y funciones A las funciones y variables definidas en las

declaraciones se puede hacer referencia desde los scriptles

Formato:<%! texto java %>

Page 32: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Ejemplo de declaraciones

<%!private String normaliza(String valor){

StringBuffer sb = new StringBuffer();for(int i = 0; i < valor.length(); i++) {

char c = valor.charAT(i);sb.append©;if (c == ';')sb.append("<br>");

}return sb.toString();

}%>

Page 33: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Java Estándar Tag Library

JSTL

Page 34: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Que es JSTL Una biblioteca de etiquetas (tags) para

realizar operaciones comunes Aplicables a cualquier contenedor Tienen código optimizado Algunos usos

Control de flujo Acceso a bases de datos Manipulación de XML Internacionalización

Page 35: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Core JSTL

Soporte de variablesremoveset

Control de flujochoose

whenotherwise

forEachforTokensif

Manejo de URL'simport

paramredirect

paramurl

paramMiscelaneos

catchout

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

Page 36: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Tags para soporte de variables

set

<c:set var="cuenta" scope="session" value="$param.CuentaId"/>

remove

<c:remove var="cuenta" scope="session"/>

Page 37: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

if<c:if test="${!empty param.Add}">   <c:set var="bid" value="${param.Add}"/>   <jsp:useBean id="bid" type="java.lang.String" />    <sql:query var="books"      dataSource="${applicationScope.bookDS}">      select * from PUBLIC.books where id = ?      <sql:param value="${bid}" />   </sql:query>   <c:forEach var="bookRow" begin="0" items="${books.rows}">     <jsp:useBean id="bookRow" type="java.util.Map" />     <jsp:useBean id="addedBook"       class="database.BookDetails" scope="page" />   ...   <% cart.add(bid, addedBook); %> ... </c:if>

Page 38: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

choose

<c:choose>   <c:when test="${customer.category == 'trial'}" >     ...   </c:when>   <c:when test="${customer.category == 'member'}" >     ...   </c:when>     <c:when test="${customer.category == 'preferred'}" >     ...   </c:when>   <c:otherwise>     ...   </c:otherwise> </c:choose>

Page 39: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Etiquetas para iteración<c:forEach var="item" items="${sessionScope.cart.items}">   ...   <tr>      <td align="right" bgcolor="#ffffff">      ${item.quantity}    </td>   ... </tr> </c:forEach>

o

<c:foreach var="indice" begin="10" end="30" step="2">…

</c:foreach>

Page 40: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Etiquetas para URL

<c:import url="/books.xml" var="xml" /> <x:parse doc="${xml}" var="booklist"   scope="application" />

Page 41: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Etiquetas para SQL

query dateParam paramtransactionupdate dateParam param

SQLsqlsetDataSourcedatabase

PrefijoEtiquetaFunciónArea

Page 42: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

setDataSource

<sql:setDataSource dataSource="jdbc/BookDB" />

•Esta etiqueta se usa solamente para generar prototipos•La operaciones de bases de datos deberán realizarse mediante en JavaBeana

Page 43: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Etiqueta query<c:set var="sufficientInventory" value="true" /> <sql:transaction>   <c:forEach var="item" items="${sessionScope.cart.items}">     <c:set var="book" value="${item.item}" />     <c:set var="bookId" value="${book.bookId}" />     <sql:query var="books"       sql="select * from PUBLIC.books where id = ?" >       <sql:param value="${bookId}" />     </sql:query>     <jsp:useBean id="inventory"       class="database.BookInventory" />     <c:forEach var="bookRow" begin="0"       items="${books.rowsByIndex}">       <jsp:useBean id="bookRow" type="java.lang.Object[]" />       <jsp:setProperty name="inventory" property="quantity"         value="${bookRow[7]}" />       …

Page 44: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Etiquetas definidas por el usuario

Page 45: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Etiquetas de usuario Son agregados a la sintaxis de JSP

desarrollados por el usuario en un lenguaje similar a XML

El manejador de la etiqueta es una clase java La definición de varias etiquetas se pueden

almacenar en un archivo .jar Pueden distribuirse fácilmente

Page 46: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Ejemplo de definición de etiqueta

<%@ page session="false" %><%@ taglib prefix="diag" uri="WEB-INF/diagnostics.tld" %><html><head> <title>Basic example of custom tag</title> <style>h1 {font-size: 140% } </style></head><body><h1>Basic example of custom tags</h1>The server is <diag:getWebServer /></body></html>

Page 47: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Clase que implementa la etiqueta

public class GetWebServerTag extends TagSupport{

public int doStartTag() throws JspException{

try{

// Get server host and port number// from the page context

HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();

String host = request.getServerName();int port = request.getServerPort();URL url = new URL("http", host, port, "/");HttpURLConnection con = (HttpURLConnection)

url.openConnection();con.setRequestMethod("OPTIONS");String webserver = con.getHeaderField("server");JspWriter out = pageContext.getOut();out.print(webserver);

}catch (IOException e){

throw new JspException(e.getMessage());}return SKIP_BODY;

}}

Page 48: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Como funciona? Al generar el servlet

Las etiquetas <%@ page, <%@taglib proporcionan información para la traducción

Las expresiones JSP y texto HTML generan instrucciones out.print("…") en _jspService()

Los scriptlets se copian en _jspService() Las declarativas se copian fuera de _jspService() Las etiquetas estándar como <jsp:include>, <jsp:useBean>

se traducen en funciones que realizan su función Las etiquetas de usuario se expanden como llamados a los

métodos de su clase manejadora

Page 49: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Se genera código para: Crear una instancia del manajador de la

etiqueta Pasar una referencia de pageContext al

manejador Pasar una referencia a la etiqueta padre (si

hay anicamiento) Una llamada a la función correspondiente por

cada parámetro de la etiqueta Una llamada al método doStartTag

Page 50: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Interfases javax.servlet.jsp.tagext.Tag

Etiquetas simples que no operan en su cuerpo javax.servlet.jsp.tagext.IterationTag

Para etiquetas que requieren evaluar su cuerpo en forma iterativa

javax.servlet.jsp.tagext.BodyTag Para etiquetas que requieren operar sobre el

contenido de su cuerpo

Page 51: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Clases predefinidas Se usan para derivar clases que se usaran

como manejadores de etiquetas TagSupport

Implementa IterationTag, JspTag, Tag Incluye métodos predefinidos

BodyTagSupport Implementa BodyTag, IterationTag, JspTag, Tag Contiene métodos para evaluar el cuerpo de la

etiqueta

Page 52: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Bibliotecas de etiquetas Se utilizan para distribución Contienen

Manejadores de etiquetas (clases java) Clases de información adicional

Opcionales, Validar atributos Crear variables

Validador de etiquetas. Clases opcionales Usadas en tiempo de generación de los servlets

Descriptores Archivos XML que describen las propiedades de las

etiquetas

Page 53: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Definición de etiquetas Pueden tener cualquier nombre Las definiciones siempre están en un

namespace Pueden tener cualquier número de atributos Pueden crear variables que se usan

En otras etiquetas En servlets

Pueden tener etiquetas anidadas

Page 54: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Decriptor de biblioteca de etiquetas Se almacena en un .tdl Es un archivo XML que describe

Etiquetas Clases manejadoras La biblioteca misma

Page 55: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Elementos de las etiquetas tlib-version (requerido)

Version de la biblioteca "1.0", 1.3.50, … jsv-version (requerido)

Version mínima de JSP. "1.2", 2.0", … short-name

Identifica la biblioteca uri

uri que identifica la biblioteca display-name (opcional)

Nombre descriptivo de la biblioteca validator

Clase usada para verificación de sintaxis Tag Describe una etiqueta

Puede habber varias

Page 56: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Subetiquetas de tag description

Texto descriptivo de la etiqueta display-name

El nombre usado en IDE's name

El nombre usado en las JSP tag-class

Clase manejadora del tag tei-class (tag extra information)

Una clase que proporciona información acerca de variables creadas por la etiqueta y validación de atributos

body-content (opcional) Describe el contenido del cuerpo de la etiqueta Los valores son: empty, JSP, tagdependent

Page 57: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Metodos de la interfaz Tag

Se invoca a la salida de la página. Se usa para liberar recursos.

public void release()

Se invoca el llegar al final del tag. El codigo de retorno indica si el servlet deberá continuar evaluando el resto de la página(EVAL_PAGE, SKIP_PAGE)

public void doEndTag() throws JspException

Se invoca despues de establecido el contexto, el padre y los parámetros. El valor de retorno indica si el servlet debe evaluar o no cuerpo (EVAL-BODY_INCLUDE, SKIP_BODY)

public int doStartTag() throws JspException

Regresa el tag padrepublic void getParent()

Establece el tag de nivel superior. Se llama después de setPageContext

public void serParent(Tag parent)

El servlet generado invoca esta función antes que nada.ctx se debe salvar para uso posterior

public void setPageContext (PageContext ctx)

Page 58: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Ciclo del manejador de etiquetas

inicio

Obtener una instancia del manejador

Establece context y etiqueta padre

Llama a los metodos para

establecer atributos

doStartTag

rc

Procesa cuerpo de la etiqueta

Procesa fin de etiqueta

EVAL_BODY_INCLUDE

SKIP_BODY

rc

regresa

SKIP_PAGE

Continua

EVAL_PAGE

Page 59: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Atributos de etiquetas

Clase manejadorapublic class Database{

private String user;private String pw;public void setUser(String user){

this.user = user;}public void setPw(String pw){

this.pw = pw;}…

}

Descriptor<attribute>

<name>user</name><required>true</required><rtexprvalue>false</rtexprvalue>

</attribute>

JSP<db:conexión user="${usuario}" pw="${password}" />

Page 60: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Atributos simples Son evaluados por el contenedor antes de

pasarlos al manejador Tienen formato nombre="valor" Su valor puede ser unha constante de

dadena o una expresión de lenguaje (EL) o susando jsp:attribute

Ejemplo:<sc:catalog bookDB="${bookDB}" color="#cccccc">

Page 61: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Atributos de fragmento Es una porción de código pasado al

manjador Puede ser invocado varias veces Es como una plantilla con la que el

manejador produce contenido dinámico Es evaluado por el manjador de la etiqueta Se usa el atributo fragment de la directiva

attibute o el subelemento fragment

Page 62: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Atributos dinámicos No se especifica en en la definición de la

etiqueta Se usa cuando los atributos tienen el mismo

tratamiento pero se desconocen sus nombres en tiempo de desarrollo

La siguiente etiqueta acepta un número variable de atributos:<colored:colored color1="red" color2="yellow color3="blue"/>

Page 63: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

javax.servlet.jsp.targext.IterationTag

Adicionalmente contiene el método public int doAfterBody()

Se llama después de cada evaluación del tag Puede indicar si el tag se vuelve a evaluar o

se sale del ciclo. Valor de retorno

EVAL_BODY_AGAIN SKIP_BODY

Page 64: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Lenguaje expresion Tiene la forma:${nombre}

El nombre puede ser calificado${reactor.tempeartura}

Uso del atributo test<c:if test="${numeroCitas > 0}" >

El carácter de escape es el apostrofe<mistags:ejemplo titulo="Las EL tienen la forma ${'${nombre'}}"/>

Page 65: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Establecer atributos de una etiquetaAsignación<mistags:titulo empresa="$empresa.nombre}"/>

Concatenaciónmistags:dewtino domicilio="${calle}<br>${colonia}<br>${ciudad}" />

Cadenas numéricas<mistags:cuenta importe="125.50" />Nota

Las cadenas se convierten al tipo del atributo

Page 66: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Variables El contenedor busca las variables en los

ámbitos: page request session application

Si no se encuentra, su valor será null Si se trata de un objeto implícito regresa el

objeto

Page 67: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Operador[ ] La expresión expa[expb]se evalua:

1. Se evalua expa y expb en vala y valb2. Si vala o valb es nulo la expresión es nula3. Se vala es de tipo Map regresa

valz.get(valb)si no esta en el mapa regresa null

4. Si vala es un arreglo o lista, valb se convierte a entero y se usa como índice

5. Si vala es un java bean, valb se toma como el nombre de una propiedad del bean

Page 68: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Objetos implícitos pageContext a través del cual se tiene acceso a:

servletContext session request response

Otros objetos impícitos param nombre valor simple paramValues nombre arreglo de valores header header.name valor simple headerValues headerName arreglo de valaores cookie cookieName cookie simple initParam context initialization params valor simple

Page 69: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Literales Booleanas

true y false Enteros.- como en java Flotantes.- como en java Cadenas con comillas simples y dobles

símbolo secuencia de escape" \"' \'\ \\

Null: null

Page 70: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Operadores Aritméticos: +, -, *, / y % Lógicos: &&, ||, y ! Relacionales: ==, eq, !=, ne, <, lt, >, gt, <=, le,

>=, ge Empty: empty prueba por valor nulo o vacío Condicional: a ? b : c igual que en java

Page 71: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Precedencia de operadores [ ] ( ) - (unario), not ! empty *, /, %, mod +, - (binario) <, >, <=, >=, lt, gt, le, ge &&, and ||, or ? :

Page 72: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

FuncionesDefiniciónpackage mypkg;public class MyLocales {

…public static boolean equals(String s1, String s2)

return s1.equals(s2);}

}Descripción en TLD<function>

<name>equals</name>function-class> mypkg.MyLocales</function-class><function-signature>

boolean equals(java.lang.String, java.lang.String)</function-signature>

</function>Uso<c:when test="${f:equals(selectedLocaleString, localeString)}" >

Page 73: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Java Beans Tienen propiedades (R, W, R/W) Por cada propiedad R debe tener una

función:ClasePropiedad getPropiedad()

Por cada propiedad W debe tener una funciónsetPropiedad(ClasePropiedad)

Debe tener una constructora sin argumentos

Page 74: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Uso de java beansCreración de un objeto

<jsp:useBean id="beanName"class="nombre de la clase calificado"scope="scope" />

o con algunos parámetros

<jsp:useBean id="beanName" class="nombre de la clase calificado"scope="scope" ><jsp:setParameter …/>

</jsp:useBean>

Si existe el bean lo recupera y beanName se usará como una referencia al objeto.Si no existe se crea y se almacena en el ámbito especificado.Todos los beans deben estar contenidos en un paquete.

Page 75: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Establecer propiedades de un bean

<jsp:setProperty name="beanName"property="*" />

Propiedades con nombres iguales a los parámetros

<jsp:setProperty name="beanName"property="propName" param="paramName" />

Request Parameter

<jsp:setProperty name="beanName" property="propName"value="string constant" />

String constantSintaxisorigen

Page 76: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Establecer propiedades de un bean

<jsp:setProperty name="beanName"property="propName" value="expresion" />

<jsp:setProperty name="beanName"property="propName"><jsp:attribute name="attName"> expresion</jsp:attribute><jsp:setProperty>

expresionSintaxisorigen

Page 77: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Recuperación de propiedades En expresiones${bookDB.bookDetails.title}

Usando la etiqueta getProperty<jsp:getProperty name="beanName" property="propName" />

Page 78: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Acceso a base de datos

Page 79: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

JDBC Es una API para utilizar las bases de datos

desde JAVA Un programa java usa métodos de clases Existen drivers para casi todas las BD mas

usadas Existe un manejador JDBC – ODBC El manejo de cualquier BD es similar

Page 80: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Operaciones con JDBC1. Cargar el manejador JDBC

Class.forName(nombre-manejador)2. Se usa el manejador para abrir una conexión

con = DriverManager.getConnection()3. Ejecutar comandos SQL con la conexión

Statement stmt = createStatement(sql)ResultSet rs = stmt = executeQuery

4. Procesar los resultadoswhile(rs.next() {

String name = rs.getString(“nombre”)

Page 81: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Empaquetado de la aplicación

<target name="package-bookstore" depends="build" description="Packages the JAR file"> <echo message="Packaging the JAR...."/> <mkdir dir="dist" /> <delete file="dist/${example}.jar" /> <jar jarfile="dist/${example}.jar" > <fileset dir="${build}" /> </jar> </target>

Page 82: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Datasource Es el medio a través del cual la aplicación

accesa la base de datos Contrinen una serie de propiedades

Servidor de base de datos Nombre de la base de datos Protocolo de red

Es la factoría para conexiones mediatedatasource.getConnection()

Page 83: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Tipos de manejadores Tipo 1.- Puente JDBC - ODBC

Usado si no hay mas remedio Tipo 2.- API nativo parcialmente java

Es una envoltura sobre el API nativo del proveedor de base de datos

Tipo 3.- Totalmente java usa midleware Utiliza un protocolo de red Se comunica a un servidor de midleware

Tipo 4.- Totalmente java Utilizan directamente el protocolo del administrador de BD

Page 84: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Puente JDBC - ODBC Está limitado por el ODBC

No maneja multithreading Pobre rendimiento Requiere que la biblioteca JdbcOdbc.dll se instale

en el cliente Requiere la configuración de una fuente ODBC Se recomienda usarlo solamente en pruebas Permite el acceso a una gran variedad de fuentes

Page 85: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Registro del manejadortry {

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch (ClassNotFoundException ex) {

// Reporte de la excepción}

static {PrintStream log = DriverManager.getLogStream();if (log != null)log.println("Driver cargado");MyJdbcDriver driver = new MyJdbcDriver();try {

DriverManager.registreDriver(driver);} catch (SQLException ex) {

if (log != null)log.println("No se pudo registrar");

}}

Page 86: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Obtener una conexión

Se tienen tres sobrecargas

Conection con;

con = DriverManager.getConnection(String url);

con = DriverManager.getConnection(String url, String userId, String password);

con = DriverManager.getConnection(String url,Properties prop)

•El DriverManager mantiene una lista con drivers registrados•DriverManager consulta cual de sus manejadores soporta el url

Page 87: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Formato del URL

<protocolo>:<subprotocolo>:<subnombre>

<protocolo> Siempre jdbc

<subprotocolo> Especifico del proveedor (identifica al manejador)

<subnombre> Identifica la base de datos Puede también contener parámetros

Ejemplo:

jdbc:mysql://localhost:3306/lyricnote

Page 88: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Conexión usando JNDI La clase del manejador y el URL se

almacenan en el servidor de nombres Solo se requiere el nombre de la fuente de

datos

Page 89: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Conexión con JNDI

InitialContext ic = new InitialContext();Context ctx = (Context)ic.lookup("java:comp/env");DataSource ds = (DataSource) ctx.lookup("jdbc/BookDB ");

Connection con = null;try {

con = ds.getConnection();…

} catch (Exception ex) {// Reporta error

}

Page 90: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

La interfaz Statement Operaciones

Comandos de definición de datos (CREATE TABLE, .. Modificación de datos (UPDATE, DELETE, INSERT) Consultas (SELECT)

Interfaces especializadas PreparedStatement

Usa SQL compilado CallableStatement

Para invocar procedimientos catalogados

Page 91: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Interfaz Statement

Creación mediante la conexión

Statement stmt = con.createStatement();

Métodos:

ResultSet rs = stmt.executeQuery(<sql text>);

int count = stmt.executeUpdate(<sql text>);

boolean b = stmt.execute(<sql text>);b = true.- se generó ResultSetb = false hay una cuenta de resultados (update, ..)

ResultSet rs = stmt.getResultSet()

int[] ia = stmt.executeBatch(<sql text>);

Page 92: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Enterprise Java Beans

Page 93: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Que son? Son componentes escritos en java que

encapsulan las reglas del negocio Se apegan a la especificación Enterprise

Java Beans Se ejecutan en un contenedor EJB montado

en el servidor Web El contenedor proporciona administración de

transacciones y seguridad

Page 94: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Beneficios Simplifican el desarrollo de aplicaciones

empresariales distribuidas Con los servicios que proporciona el

contenedor el desarrollador se puede concentrar en las reglas del negocio

Los desarrolladores del cliente se pueden concentrar en la calidad de la interfaz del usuario

Los EJB son reutilizables y transportables

Page 95: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Tipos de java beans Sesión

Realizan tareas para un cliente Implementa un servicio web

Entity Representan una entidad del negocio y existen

en memoria persistente Messge – Driven

Actuan como escuchas del API Java Message Service

Procesan los mensajes de forma asíncrona

Page 96: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Session java beans Un bean sesión representa un solo cliente en

el servidor El cliente invoca algún método del bean Un bean de sesión no se comparte, no

maneja concurrencia Al terminar la ejecución se rompe la

asociación con el cliente No maneja persistencia

Page 97: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Tipos de session beans Sin estado

No manejan conversaciones con los clientes Las variables de instancia solo permanecen durante la

ejecución de la función El contenedor EJB puede asignar cualquier instancia

disponible a los clientes Son más escalables

Con estado El bean conversa con el cliente Conserva el estado durante la conversación Las variables de instancia representan el estado para una

sesión

Page 98: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Uso de Session Beans Solo un cliente utiliza una instancia del bean al

mismo tiempo Su estado no es persistente El Bean implementa un servicio web Se deben usar con estado

Se requiere una conversación en estado El bean requiere conservar información del cliente entre

llamados El administrador de beans supervisa el flujo de trabajo de

varios EJB

Page 99: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Entity Bean Representan objetos del negocio persistentes en

una base de datos Correspondencia

Bean - Tabla en la base de datos Instancia del bean un renglón de la tabla

Permiten el acceso compartido Tienen una llave primaria Participan en relaciones con otros Entity Beans Persistencia manejada por el bean

Contiene el código para acceder a la base de datos Persistencia manejada por el contenedor

El contenedor lee y almacena la información en la base de datos

Page 100: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Entity Bean Acceso compartido

Puede se usado por múltiples clientes simultáneamente Deben trabajar dentro de transacciones Se deben especificar los atributos de la transacción en el

descriptor de instalación No es necesario manejar la transacción dentro del bean

Llave primaria Cada bean tiene un identificador único Si el bean representa un cliente la llave puede ser el número de

cliente La llave primaria se usa para localizar el bean

Page 101: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Entity Bean Relaciones

La relaciones son similares a las de la las tablas en una base de datos

El bean administra sus persistencia Relaciones implementadas en el código del bean

El contenedor administra la persistencia El contenedor maneja las relaciones Se deben especificar en el esquema abstracto del

bean que es parte del descriptor de instalación

Page 102: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Esquema abstracto Es parte del descriptor de distribución Define los campos persistentes y relaciones El esquema abstracto tiene un nombre En el Enterprise Java beans Query Language

(EJB QL) se hace referencia al nombre del esquema abstrato.

Para los Entity Beans con persistencia manejada por el contenedor se debe definir una búsqueda EJB QL para las consultas

Page 103: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Campos persistentes Son almacenados en la base de datos Constituyen el estado del bean El contenedor sincroniza los campos

persistentes con la base de datos ClienteBean: nombre, domicilio, teléfono, etc Persistencia manejada por el contenedor

Son virtuales (no son variables de instancia) se manejan por métodos de acceso (getters y

setters)

Page 104: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Campos de realción Son como llaves foránas Identifican un bean relacionado Son virtuales No representan el estado del bean

Page 105: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Relaciones Cardinalidad

Uno a uno Uno a muchos Mochos a uno Muchos a muchos

Direccion Unidireccional Bidireccional

Page 106: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Message-Driven Bean Procesa mensajes de manera asíncrona Actua como en escucha Recibe mensajes JMS en vez de eventos El mensaje puede ser enviado por cualquier

componente J2EE No tiene estado No maneja conversaciones Todas las instancias son equivalentes Maneja concurrencia Se ejecutan al recibir un mensaje

Page 107: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Interfaces Se aplican solamente a:

Entity Beans Session Beans

Los clientes invocan los métodos solo a través de interfaces

Tipo de acceso de los clientes Remoto Local Web

Page 108: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Interfaz remota Define los métodos del negocio Se derivan de javax.ejb.EJBObject EJBObject se deriva de java.rmi.Remote EJBObject define las funciones:

getEJBHome() getHandle() getPrimaryKey() isIdentical() remove()

Page 109: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Clientes remotos Un cliente remoto puede

Correr en equipo o máquina virtual diferente Ser un componente web, un cliente de aplicación

u otro bean empresarial Para el cliente la ubicación es transparente Un Enterprise Bean con acceso remoto requiere

Interface remota Define los métodos del negocio (Depósito, pagoCheque, …

home interface Ciclo de vida del bean (create y remove) Métodos de búsqueda (Entity beans)

Page 110: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Interfaces remotas

Page 111: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Beans con acceso remoto Se definen dos interfaces

Interfaz remota (remote interface) Define las reglas del negocio (deposito, cheque)

Interfaz doméstica (home interface) Define los métodos para su ciclo de vida (create,

remove, …) Para Entity beans en la interfaz doméstica se definen:

Métodos de búsqueda Métodos domésticos (Home methods)

Page 112: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Beans con acceso remoto

Page 113: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Clientes locales Deben correr en la misma máquina virtual Puede ser un componente web u otro bean

empresarial La ubicación no es transparente para el cliente Puede ser un Entity Bean cuyas relaciones son

manejadas por en contenedor con otro Entity Bean Se requiere definir dos interfaces:

Interfaz doméstica Interfaz doméstica local

Page 114: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Interfaces locales

Los beans a que se hace referenciadebe tener interfaz local

Page 115: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Contenidode un Enterprise Bean Descriptor de distribución

Archivo XML Entreprise bean class

Implementa los métodos de las interfaces Interfaces

Remotas Interfaces remotas y home

Acceso local Interfaces local y local home

Clases de ayuda Excepción y utilería

Page 116: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Convención de nombres

Page 117: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Ciclo de vida de un EJB de sesión con estado

Cliente

Contenedor

Page 118: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Ciclo de vida de un EJB de sesión sin estado

Page 119: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Ciclo de vida de un Entity EJB

Contenedor

Cliente Cliente

Contenedor

Page 120: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

JavaServer Faces

Page 121: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Tecnología JavaServer Faces Integrada por:

API para representar componentes de interfaz de usuario

Librería de etiquetas de usuario Proporciona capacidad para:

Manejo de eventos del cliente en el servidor Ligar componentes de UI con datos en el servidor Construir componentes de UI reutilizables Salvar y recuperar el estado de componentes UI

Page 122: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Ventajas de JavaServer Faces Separación clara entre presentación y

comportamiento Mapeo de solicitudes HTML a manejadores de

eventos específicos Mantenimiento del estado en los componentes de

UI Facilita el procesamiento de la información de los

componentes Simplifica la validación de los datos del usuario

Page 123: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Elementos de una aplicación Páginas JSP Componentes JavaBeans Escuchas de eventos Clase de soporte en el servidor Una biblioteca de etiquetas de usuario para presentar

componentes UI Una biblioteca de etiquetas de usuario para representar:

validadores, manejadores de eventos Componentes de UI con estado en el servidor Beans de respaldo con las propiedades y comportamiento de UI Validadores, convertidores, escuchas de eventos, manejadores Un archivo de configuración de recursos

Page 124: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Desarrollo de aplicaciones Creación de páginas con componentes de UI

y etiquetas Definición de la navegación entre páginas en

el archivo de configuración de la aplicación Desarrollo de beans de soporte Agregar las declaraciones de beans en el

archivo de configuración

Page 125: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Ejemplo<HTML> <HEAD> <title>Hello</title> </HEAD> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <body bgcolor="white"> <f:view> <h:form id="helloForm" > <h2>Hi. My name is Duke. I'm thinking of a number from <h:outputText value="#{UserNumberBean.minimum}"/> to <h:outputText value="#{UserNumberBean.maximum}"/>. Can you guess it?</h2> <h:graphicImage id="waveImg" url="/wave.med.gif" alt="Duke waving" /> <h:inputText id="userNo" value="#{UserNumberBean.userNumber}"> <f:validateLongRange minimum="#{UserNumberBean.minimum}"

maximum="#{UserNumberBean.maximum}" /> </h:inputText>

<h:commandButton id="submit" action="success" value="Submit" /> <p>

<h:message style="color: red; font-family: 'New Century Schoolbook', serif; font-style: oblique; text-decoration: overline" id="errors1" for="userNo"/>

</h:form> </f:view></HTML>

Page 126: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Especificación de navegación<navigation-rule> <description> The decision rule used by the NavigationHandler to determine which view must be displayed after the current view, greeting.jsp is processed. </description> <from-view-id>/greeting.jsp</from-view-id> <navigation-case> <description>

Indicates to the NavigationHandler that the response.jsp view must be displayed if the Action referenced by a UICommand component on the greeting.jsp view returns the outcome "success". </description> <from-outcome>success</from-outcome> <to-view-id>/response.jsp</to-view-id> </navigation-case> </navigation-rule>

Page 127: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Generación del resultado

<h:commandButton id="submit" action="success" value="Submit" />

<h:commandButton id="submit" action="#(useNumberBean.getOrderStatus)t" value="Submit" />

Page 128: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Beans de soporte Contienen propiedades y métodos asociados con UI Métodos para realizar funciones para los

componentes para: Validar información Manejo de eventos

Las propiedades del bean se ligan con los componentes de UI mediante el atributo "value" del componente.

Una instancia de un componente se liga a una propiedad del bean mediante el atributo "binding" del componente.

Page 129: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Beans - JSP

public class UserNumberBean { Integer userNumber = null; Integer randomInt = null;

<HTML> <HEAD> <title>Hello</title> </HEAD> <%@ taglib uri="http://java.sun. <%@ taglib uri="http://java.sun.com/ <body bgcolor="white">

JSP

Backing bean

Page 130: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Declaración de beans <managed-bean> <description> The backing bean that backs up the guessNumber Web application </description> <managed-bean-name>UserNumberBean</managed-bean-name> <managed-bean-class>guessNumber.UserNumberBean</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> <managed-property> <property-name>minimum</property-name> <property-class>long</property-class> <value>0</value> </managed-property> <managed-property> <property-name>maximum</property-name> <property-class>long</property-class> <value>10</value> </managed-property> </managed-bean>

Page 131: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Componentes JavaServer Faces UI Son:

Configurables Reutilizables

Su arquitectura contiene Clases para especificar estado y comportamiento de los

componentes Un modelo de presentación para componentes Un modelo para el manejo de eventos Un modelo de conversión Un modelo de validación

Page 132: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Componentes de Interfaz de UsuarioUIColumn.- Columna de datos simplesUICommand.- Control que dispara acciones al activarseUIData.- Una liga de datos a una colección representada por una instancia

del DataModelUIForm.- Agrupa un conjunto de controles (similar a la etiqueta FORM)UIGraphic.- Presenta una imagenUIInput.- Campo de entrada del usuarioUIMessage.- Despliega un conjunto de mensajesUIOutput.- Despliega datos en la formaUIPanel.- Administra la distribución de los componentes que contieneUIParameter.- Representa parámetros de sustituciónUISelectBoolean.- Permite al usuario establecer un valor booleano al

seleccionar un componenteUISelectItem.- Representa un solo item en un conjuntoUISelectedItems.- Representa un conjunto de itemsUISelectOne.- Permite la selección de un item dentro de un conjuntoUIViewRoot.- Representa la raíz del árbol de compenentes

Page 133: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Interfaces de comportamiento ActionSource

El componente puede disparar eventos EditableValueHolder

Extiende ValueHolder Características adicionales para componentes editables

Validación Disparar eventos de cambio de valor

Naming-container Obliga a todos los componentes descendientes tengan un id

único StateHoloder

El componente tiene un estado válido entre solicitudes ValueHolder

El componente mantiene un valor local

Page 134: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Modelo de presentación Clase del componente

Define el comportamiento del componente Un presentador (renderer)

Define la presentación del componente Ventajas

Múltiples presentaciones En una página se pueden elegir diferentes presentaciones

Ejemplo: UISelectOne Conjunto de dadio buttons Combo box List box

Cada combinación clase – presentador tiene una etiqueta

Page 135: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Modelo de conversión

<h:inputText id="userNo" value="#{UserNumberBean.userNumber}">

Integer userNumber = null; public void setUserNumber(Integer un) { userNumber = un; }

public Integer getUserNumber() { return userNumber; }

JSP clase java de soporte

Page 136: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Modelo de manejo de eventos Objeto Evento

Identifica el componente que dispara el evento Almacena información relativa al evento

La aplicación que desea ser notificada Proporciona una implementación de Listener La registra en el componente que dispara el

evento Cuando ocurre el evento

Se invoca el método listener que prcesa el evento

Page 137: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Tipos de eventos Action event

Cuando el usuario activa un componente que implementa ActionSource (botones, hiperligas)

Cambio de valor El usuario cambia el valor de un componente que

implementa: UIInput, UISelectOne, UISelectMany, UISelectBoolean

data – model – event Cuando se selecciona una nueva fila de un

componente UIData

Page 138: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Modelo de validación La validación se realiza antes de actualizar el

modelo de datos Se cuenta con clases estándar para validaciones

comunes Se tienen las etiquetas para invocar estas

validaciones Dos formas de validaciones personalizadas

Implementar la interfaz Validator Registrar la implmentación Crear una etiqueta de usuario

Escribir un método en el bean de respaldo

Page 139: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Modelo de navegación Definición de reglas en el archivo de

configuración de recursos de la aplicación. Hacer referencia a la cadena resultante de

un componente de acción (botón, hiperlink) Proporcionar uno o más métodos de acción

cuyo resultado determina la navegación

Page 140: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Proceso de navegación Click en un botón o liga El componente asociado dispara un evento de acción El evento es manejado por una instancia de del ActionListener

estándar El ActionListener invoca el método de acción aludido por el

componente que disparó el evento El método de acción está en el bean de soporte

Regresa una cadena de resultado El ActionListener pasa el resultado y referencia al método de

acción al NavigationHandlet estándar El NavigationHandler selecciona la página comparando el

resultado o la referencia del método contra las reglas de navegación

Page 141: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Beans de soporte Define las propiedades de componentes UI Contienen métodos asociados a los

componentes Validación Manejo de eventos Proceso de navegación

Para ligar los valores de componentes de UI con las propiedades se usa EL de la forma

#{expresion}

Page 142: Aplicaciones WEB - newton.uam.mxnewton.uam.mx/xgeorge/hmoncayo/Modelado/AplicacionesWEB.pdf · Que es una JSP Java Server Page Es un documento de texto que contiene Texto estático

Ejemplo

<h:inputText id="userNo"value="#{UserNumberBean.userNumber}"validator="#{UserNumberBean.validate}" />