Arquitectura de Aplicaciones J2EE - Java

55
Arquitectura de Aplicaciones J2EE Lenguaje de Programación III 1 SEMANA 1: Arquitectura de Aplicaciones J2EE - Ing. Orlando Pihue Montoya

description

Arquitectura de Aplicaciones J2EE

Transcript of Arquitectura de Aplicaciones J2EE - Java

Arquitectura de Aplicaciones J2EE

Lenguaje de Programacioacuten III

1SEMANA 1 Arquitectura de Aplicaciones

J2EE - Ing Orlando Pihue Montoya

2

ProgramaSEMANA 1 Arquitectura de Aplicaciones J2EE Sesioacuten 1 1Introduccioacuten y motivaciones de J2EE 2Servicios ofrecidos por un contenedor J2EE 3Versiones de J2EE 4Capas J2EE 5Empaquetado y despliegue de aplicaciones J2EE 6Descriptores de despliegue

Sesioacuten 2 Creacioacuten de Servlets 7Contenedor de servlets 8Ciclo de vida de un Servlet 9Despliegue de Servlets 10Escribir compilar instalar y ejecutar un Java Servlet 11Servlet container y servlet API 12Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

3SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya

ProgramaSesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

Tecnologiacuteas y lenguajes Web

Java ASPNET PHP Perl Ruby Python

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

4

Introduccioacuten JEE

5SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya

CLIENTES

Vendedores

Servicios en Linea Web

Services CORBA Portales

Presentacion

JSPJSFStrust

Reportes en linea

BI Business Intellegence

JasperReport Crystal Report

ProduccionVentasPresupuesto

Missed orders

Retornar

Orden

Modificar

Orden

Ventas MarketingGerencia

VP BU

Proyectos

CIO

Servicios en Linea

Web Services EJBs

Portales

INDUSTRIALES

SERVICIOS

COMERCIAL

Internet Information

Services o IIS

JBoss

IBM WebSphere

Application Server

ndash EJBs RMI JNDI

Servicio Cliente

Nuevos Usuarios

Nuevos Usuarios

Nuevos Usuarios

Business Intelligence

RMI

Java EE (Java Enterprise Edition) Plataforma Java para el desarrollo de aplicaciones empresariales

Interaccioacuten con diversas fuentes de datos Interaccioacuten con otros sistemas (actuales yo legados) Acceso Web (jsp y servlet) Concurrencia Alta carga de procesamiento Usuarios con diferentes perfiles Requerimientos de seguridad Provee un ambiente de ejecucioacuten y un conjunto de

APIs Servlets JSP JSF EJB JMS JDBC JPA JNDIJavaMail JAXB JAXP JAX-WS etc

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

6

Java EE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya7

Versiones

Arquitectura multi-nivel(multi-tier)

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

8

Arquitectura multi-nivel(multi-tier)

Define una infraestructura comuacuten baacutesica para el acceso a bases de datos gestioacuten de la persistencia control de seguridad gestion de transacciones

Separacioacuten clara entre presentacioacuten (interfaz) modelo (loacutegica) de negocio y datos

Plataforma basada en componentes Entes (objetos) intercambiables que residen en un servidor

de aplicaciones y son gestionados por el httpjavasuncomjavaee

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

9

Componentes de Arquitectura

Clientes de la aplicacioacuten clientes web [navegador] clientes de escritorio Java [swing awt] clientes de escritorio no Java

Componentes Web servelts paginas JSP (Java Server Pages) JSF(Java Server Faces)

Se ejecutan en el contenedor Web Responsables de componer la presentacioacuten de datos en

formato HTML Suelen apoyarse en el uso de componentes Java Beans

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

10

Componentes de Arquitectura

Componentes de negocio EBJ (Enterprise Java Beans) y entidades JPA (Java Persistence API )

Se ejecutan en el contenedor de EBJs Componentes (objetos Java) responsables de implementar

la loacutegica de la aplicacioacuten EBJ gestionan interacciones con los clientes e implementan

reglas de negocio Entidades Java objetos persistentes que representan los

datos de la capa EIS

Capa EIS (Enterprise Information Systems) Capa de datos gestiona la informacioacuten permanente del

sistema Bases de datos o aplicaciones empresariales rdquoheredadasrdquo

(legacy systems) que actuacutean como almacenes de datos

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

11

Componentes de Arquitectura

En general se entiende por componente un objeto Java con restricciones se ensambla y ejecuta dentro de un

servidor de aplicaciones Java EE(contenedor)

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

12

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya13

Contenedores

ContenedoresSimplifican el desarrollo de los componentes ocultando los detalles complejosSus tareas concretas depende de la capa a la que pertenezcanOfrecen servicios a los componentes actuando como interfaz entre un componente y los aspectos de bajo nivel de cada plataforma

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

14

ContenedoresUn contenedor permite a los componentes interactuar con los servicios brindados por el servidor de aplicaciones

Seguridad Acceso a datos Transacciones Acceso a recursos Comunicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

15

Tipos de contenedores Java EE

Servidor de Aplicaciones Java EE entorno de ejecucioacuten de aplicaciones JEE

Proporciona el contenedor Web yo el contenedor de EBJs

Contenedor EBJ (Enterprise Java Beans) gestiona la ejecucioacuten (ciclo de vida) de los EJBs

Da soporte a los componentes que implementan la capa de loacutegica de negocio

Ofrece servicios de control de acceso y seguridad control de transacciones y ejecucioacuten concurrente etc

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

16

Tipos de contenedores Java EE

ndash Contenedor Web gestiona la ejecucioacuten de los servlets y paginas JSP

bull Da soporte a los componentes que implementan la capa Web

bull API de Servlets APIs JSP JSTL JSF JavaBeans

bull Ejemplos libres Tomcat Jettyndash Contenedor aplicacioacuten cliente ofrece la

infraestructura necesaria para la ejecucioacuten del cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

17

Empaquetado de Aplicaciones JEE - Archivos

EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

18

Los archivos EAR (Enterprise Archive) es un formato utilizado en la arquitectura JEE para desplegar de manera coherente y simultaacutenea varios moacutedulos en un servidor de aplicaciones

Contiene archivos XML denominados descriptores de despliegue que describen como desplegar los moacutedulos contenidos en el paquete EAR

Aplicacioacutenes web java empaquetadas en WAR

+

Objetos distribuidos

EJB empaquetad

os en JAR

=

Aplicacioacuten empresarial JEE (Archivo

EAR)

Estructura EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

19

Descriptores JEE Descriptores de

despliegue JEE (JEE deployment descriptor) configuran las opciones de despliegue de cualquier componente de Java Empresarial

Descriptores de despliegue del entorno de ejecucioacuten (runtime deployment descriptor) configuran opciones del entorno de ejecucioacuten de nuestra aplicacioacuten empresarial tales como las opciones de cacheacute en el servidor

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

20

Despliegue de Aplicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

21

API Java EE - Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

22

Java EE APIs in the Web Container

API Java EE - Web Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

23

API Java EE - EJB Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

24

API Java EE - Application Client Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

25

Ciclo de vida de una aplicacioacuten web

El proceso para desarrollar empaquetar y ejecutar una aplicacioacuten web se puede resumir en

1 Desarrollar el coacutedigo de los componentes web2 Desarrollar un descriptor de despliegue (si fuera

necesario)3 Compilar los componentes de la aplicacioacuten web y

clases de ayuda referenciadas por estos componentes

4 Empaquetar la aplicacioacuten en una unidad desplegable (opcional)

5 Desplegar la aplicacioacuten en un contenedor web6 Acceder a la url que referencia la aplicacioacuten web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

26

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

2

ProgramaSEMANA 1 Arquitectura de Aplicaciones J2EE Sesioacuten 1 1Introduccioacuten y motivaciones de J2EE 2Servicios ofrecidos por un contenedor J2EE 3Versiones de J2EE 4Capas J2EE 5Empaquetado y despliegue de aplicaciones J2EE 6Descriptores de despliegue

Sesioacuten 2 Creacioacuten de Servlets 7Contenedor de servlets 8Ciclo de vida de un Servlet 9Despliegue de Servlets 10Escribir compilar instalar y ejecutar un Java Servlet 11Servlet container y servlet API 12Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

3SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya

ProgramaSesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

Tecnologiacuteas y lenguajes Web

Java ASPNET PHP Perl Ruby Python

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

4

Introduccioacuten JEE

5SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya

CLIENTES

Vendedores

Servicios en Linea Web

Services CORBA Portales

Presentacion

JSPJSFStrust

Reportes en linea

BI Business Intellegence

JasperReport Crystal Report

ProduccionVentasPresupuesto

Missed orders

Retornar

Orden

Modificar

Orden

Ventas MarketingGerencia

VP BU

Proyectos

CIO

Servicios en Linea

Web Services EJBs

Portales

INDUSTRIALES

SERVICIOS

COMERCIAL

Internet Information

Services o IIS

JBoss

IBM WebSphere

Application Server

ndash EJBs RMI JNDI

Servicio Cliente

Nuevos Usuarios

Nuevos Usuarios

Nuevos Usuarios

Business Intelligence

RMI

Java EE (Java Enterprise Edition) Plataforma Java para el desarrollo de aplicaciones empresariales

Interaccioacuten con diversas fuentes de datos Interaccioacuten con otros sistemas (actuales yo legados) Acceso Web (jsp y servlet) Concurrencia Alta carga de procesamiento Usuarios con diferentes perfiles Requerimientos de seguridad Provee un ambiente de ejecucioacuten y un conjunto de

APIs Servlets JSP JSF EJB JMS JDBC JPA JNDIJavaMail JAXB JAXP JAX-WS etc

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

6

Java EE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya7

Versiones

Arquitectura multi-nivel(multi-tier)

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

8

Arquitectura multi-nivel(multi-tier)

Define una infraestructura comuacuten baacutesica para el acceso a bases de datos gestioacuten de la persistencia control de seguridad gestion de transacciones

Separacioacuten clara entre presentacioacuten (interfaz) modelo (loacutegica) de negocio y datos

Plataforma basada en componentes Entes (objetos) intercambiables que residen en un servidor

de aplicaciones y son gestionados por el httpjavasuncomjavaee

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

9

Componentes de Arquitectura

Clientes de la aplicacioacuten clientes web [navegador] clientes de escritorio Java [swing awt] clientes de escritorio no Java

Componentes Web servelts paginas JSP (Java Server Pages) JSF(Java Server Faces)

Se ejecutan en el contenedor Web Responsables de componer la presentacioacuten de datos en

formato HTML Suelen apoyarse en el uso de componentes Java Beans

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

10

Componentes de Arquitectura

Componentes de negocio EBJ (Enterprise Java Beans) y entidades JPA (Java Persistence API )

Se ejecutan en el contenedor de EBJs Componentes (objetos Java) responsables de implementar

la loacutegica de la aplicacioacuten EBJ gestionan interacciones con los clientes e implementan

reglas de negocio Entidades Java objetos persistentes que representan los

datos de la capa EIS

Capa EIS (Enterprise Information Systems) Capa de datos gestiona la informacioacuten permanente del

sistema Bases de datos o aplicaciones empresariales rdquoheredadasrdquo

(legacy systems) que actuacutean como almacenes de datos

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

11

Componentes de Arquitectura

En general se entiende por componente un objeto Java con restricciones se ensambla y ejecuta dentro de un

servidor de aplicaciones Java EE(contenedor)

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

12

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya13

Contenedores

ContenedoresSimplifican el desarrollo de los componentes ocultando los detalles complejosSus tareas concretas depende de la capa a la que pertenezcanOfrecen servicios a los componentes actuando como interfaz entre un componente y los aspectos de bajo nivel de cada plataforma

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

14

ContenedoresUn contenedor permite a los componentes interactuar con los servicios brindados por el servidor de aplicaciones

Seguridad Acceso a datos Transacciones Acceso a recursos Comunicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

15

Tipos de contenedores Java EE

Servidor de Aplicaciones Java EE entorno de ejecucioacuten de aplicaciones JEE

Proporciona el contenedor Web yo el contenedor de EBJs

Contenedor EBJ (Enterprise Java Beans) gestiona la ejecucioacuten (ciclo de vida) de los EJBs

Da soporte a los componentes que implementan la capa de loacutegica de negocio

Ofrece servicios de control de acceso y seguridad control de transacciones y ejecucioacuten concurrente etc

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

16

Tipos de contenedores Java EE

ndash Contenedor Web gestiona la ejecucioacuten de los servlets y paginas JSP

bull Da soporte a los componentes que implementan la capa Web

bull API de Servlets APIs JSP JSTL JSF JavaBeans

bull Ejemplos libres Tomcat Jettyndash Contenedor aplicacioacuten cliente ofrece la

infraestructura necesaria para la ejecucioacuten del cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

17

Empaquetado de Aplicaciones JEE - Archivos

EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

18

Los archivos EAR (Enterprise Archive) es un formato utilizado en la arquitectura JEE para desplegar de manera coherente y simultaacutenea varios moacutedulos en un servidor de aplicaciones

Contiene archivos XML denominados descriptores de despliegue que describen como desplegar los moacutedulos contenidos en el paquete EAR

Aplicacioacutenes web java empaquetadas en WAR

+

Objetos distribuidos

EJB empaquetad

os en JAR

=

Aplicacioacuten empresarial JEE (Archivo

EAR)

Estructura EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

19

Descriptores JEE Descriptores de

despliegue JEE (JEE deployment descriptor) configuran las opciones de despliegue de cualquier componente de Java Empresarial

Descriptores de despliegue del entorno de ejecucioacuten (runtime deployment descriptor) configuran opciones del entorno de ejecucioacuten de nuestra aplicacioacuten empresarial tales como las opciones de cacheacute en el servidor

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

20

Despliegue de Aplicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

21

API Java EE - Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

22

Java EE APIs in the Web Container

API Java EE - Web Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

23

API Java EE - EJB Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

24

API Java EE - Application Client Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

25

Ciclo de vida de una aplicacioacuten web

El proceso para desarrollar empaquetar y ejecutar una aplicacioacuten web se puede resumir en

1 Desarrollar el coacutedigo de los componentes web2 Desarrollar un descriptor de despliegue (si fuera

necesario)3 Compilar los componentes de la aplicacioacuten web y

clases de ayuda referenciadas por estos componentes

4 Empaquetar la aplicacioacuten en una unidad desplegable (opcional)

5 Desplegar la aplicacioacuten en un contenedor web6 Acceder a la url que referencia la aplicacioacuten web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

26

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

3SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya

ProgramaSesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

Tecnologiacuteas y lenguajes Web

Java ASPNET PHP Perl Ruby Python

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

4

Introduccioacuten JEE

5SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya

CLIENTES

Vendedores

Servicios en Linea Web

Services CORBA Portales

Presentacion

JSPJSFStrust

Reportes en linea

BI Business Intellegence

JasperReport Crystal Report

ProduccionVentasPresupuesto

Missed orders

Retornar

Orden

Modificar

Orden

Ventas MarketingGerencia

VP BU

Proyectos

CIO

Servicios en Linea

Web Services EJBs

Portales

INDUSTRIALES

SERVICIOS

COMERCIAL

Internet Information

Services o IIS

JBoss

IBM WebSphere

Application Server

ndash EJBs RMI JNDI

Servicio Cliente

Nuevos Usuarios

Nuevos Usuarios

Nuevos Usuarios

Business Intelligence

RMI

Java EE (Java Enterprise Edition) Plataforma Java para el desarrollo de aplicaciones empresariales

Interaccioacuten con diversas fuentes de datos Interaccioacuten con otros sistemas (actuales yo legados) Acceso Web (jsp y servlet) Concurrencia Alta carga de procesamiento Usuarios con diferentes perfiles Requerimientos de seguridad Provee un ambiente de ejecucioacuten y un conjunto de

APIs Servlets JSP JSF EJB JMS JDBC JPA JNDIJavaMail JAXB JAXP JAX-WS etc

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

6

Java EE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya7

Versiones

Arquitectura multi-nivel(multi-tier)

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

8

Arquitectura multi-nivel(multi-tier)

Define una infraestructura comuacuten baacutesica para el acceso a bases de datos gestioacuten de la persistencia control de seguridad gestion de transacciones

Separacioacuten clara entre presentacioacuten (interfaz) modelo (loacutegica) de negocio y datos

Plataforma basada en componentes Entes (objetos) intercambiables que residen en un servidor

de aplicaciones y son gestionados por el httpjavasuncomjavaee

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

9

Componentes de Arquitectura

Clientes de la aplicacioacuten clientes web [navegador] clientes de escritorio Java [swing awt] clientes de escritorio no Java

Componentes Web servelts paginas JSP (Java Server Pages) JSF(Java Server Faces)

Se ejecutan en el contenedor Web Responsables de componer la presentacioacuten de datos en

formato HTML Suelen apoyarse en el uso de componentes Java Beans

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

10

Componentes de Arquitectura

Componentes de negocio EBJ (Enterprise Java Beans) y entidades JPA (Java Persistence API )

Se ejecutan en el contenedor de EBJs Componentes (objetos Java) responsables de implementar

la loacutegica de la aplicacioacuten EBJ gestionan interacciones con los clientes e implementan

reglas de negocio Entidades Java objetos persistentes que representan los

datos de la capa EIS

Capa EIS (Enterprise Information Systems) Capa de datos gestiona la informacioacuten permanente del

sistema Bases de datos o aplicaciones empresariales rdquoheredadasrdquo

(legacy systems) que actuacutean como almacenes de datos

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

11

Componentes de Arquitectura

En general se entiende por componente un objeto Java con restricciones se ensambla y ejecuta dentro de un

servidor de aplicaciones Java EE(contenedor)

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

12

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya13

Contenedores

ContenedoresSimplifican el desarrollo de los componentes ocultando los detalles complejosSus tareas concretas depende de la capa a la que pertenezcanOfrecen servicios a los componentes actuando como interfaz entre un componente y los aspectos de bajo nivel de cada plataforma

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

14

ContenedoresUn contenedor permite a los componentes interactuar con los servicios brindados por el servidor de aplicaciones

Seguridad Acceso a datos Transacciones Acceso a recursos Comunicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

15

Tipos de contenedores Java EE

Servidor de Aplicaciones Java EE entorno de ejecucioacuten de aplicaciones JEE

Proporciona el contenedor Web yo el contenedor de EBJs

Contenedor EBJ (Enterprise Java Beans) gestiona la ejecucioacuten (ciclo de vida) de los EJBs

Da soporte a los componentes que implementan la capa de loacutegica de negocio

Ofrece servicios de control de acceso y seguridad control de transacciones y ejecucioacuten concurrente etc

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

16

Tipos de contenedores Java EE

ndash Contenedor Web gestiona la ejecucioacuten de los servlets y paginas JSP

bull Da soporte a los componentes que implementan la capa Web

bull API de Servlets APIs JSP JSTL JSF JavaBeans

bull Ejemplos libres Tomcat Jettyndash Contenedor aplicacioacuten cliente ofrece la

infraestructura necesaria para la ejecucioacuten del cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

17

Empaquetado de Aplicaciones JEE - Archivos

EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

18

Los archivos EAR (Enterprise Archive) es un formato utilizado en la arquitectura JEE para desplegar de manera coherente y simultaacutenea varios moacutedulos en un servidor de aplicaciones

Contiene archivos XML denominados descriptores de despliegue que describen como desplegar los moacutedulos contenidos en el paquete EAR

Aplicacioacutenes web java empaquetadas en WAR

+

Objetos distribuidos

EJB empaquetad

os en JAR

=

Aplicacioacuten empresarial JEE (Archivo

EAR)

Estructura EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

19

Descriptores JEE Descriptores de

despliegue JEE (JEE deployment descriptor) configuran las opciones de despliegue de cualquier componente de Java Empresarial

Descriptores de despliegue del entorno de ejecucioacuten (runtime deployment descriptor) configuran opciones del entorno de ejecucioacuten de nuestra aplicacioacuten empresarial tales como las opciones de cacheacute en el servidor

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

20

Despliegue de Aplicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

21

API Java EE - Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

22

Java EE APIs in the Web Container

API Java EE - Web Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

23

API Java EE - EJB Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

24

API Java EE - Application Client Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

25

Ciclo de vida de una aplicacioacuten web

El proceso para desarrollar empaquetar y ejecutar una aplicacioacuten web se puede resumir en

1 Desarrollar el coacutedigo de los componentes web2 Desarrollar un descriptor de despliegue (si fuera

necesario)3 Compilar los componentes de la aplicacioacuten web y

clases de ayuda referenciadas por estos componentes

4 Empaquetar la aplicacioacuten en una unidad desplegable (opcional)

5 Desplegar la aplicacioacuten en un contenedor web6 Acceder a la url que referencia la aplicacioacuten web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

26

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Tecnologiacuteas y lenguajes Web

Java ASPNET PHP Perl Ruby Python

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

4

Introduccioacuten JEE

5SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya

CLIENTES

Vendedores

Servicios en Linea Web

Services CORBA Portales

Presentacion

JSPJSFStrust

Reportes en linea

BI Business Intellegence

JasperReport Crystal Report

ProduccionVentasPresupuesto

Missed orders

Retornar

Orden

Modificar

Orden

Ventas MarketingGerencia

VP BU

Proyectos

CIO

Servicios en Linea

Web Services EJBs

Portales

INDUSTRIALES

SERVICIOS

COMERCIAL

Internet Information

Services o IIS

JBoss

IBM WebSphere

Application Server

ndash EJBs RMI JNDI

Servicio Cliente

Nuevos Usuarios

Nuevos Usuarios

Nuevos Usuarios

Business Intelligence

RMI

Java EE (Java Enterprise Edition) Plataforma Java para el desarrollo de aplicaciones empresariales

Interaccioacuten con diversas fuentes de datos Interaccioacuten con otros sistemas (actuales yo legados) Acceso Web (jsp y servlet) Concurrencia Alta carga de procesamiento Usuarios con diferentes perfiles Requerimientos de seguridad Provee un ambiente de ejecucioacuten y un conjunto de

APIs Servlets JSP JSF EJB JMS JDBC JPA JNDIJavaMail JAXB JAXP JAX-WS etc

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

6

Java EE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya7

Versiones

Arquitectura multi-nivel(multi-tier)

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

8

Arquitectura multi-nivel(multi-tier)

Define una infraestructura comuacuten baacutesica para el acceso a bases de datos gestioacuten de la persistencia control de seguridad gestion de transacciones

Separacioacuten clara entre presentacioacuten (interfaz) modelo (loacutegica) de negocio y datos

Plataforma basada en componentes Entes (objetos) intercambiables que residen en un servidor

de aplicaciones y son gestionados por el httpjavasuncomjavaee

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

9

Componentes de Arquitectura

Clientes de la aplicacioacuten clientes web [navegador] clientes de escritorio Java [swing awt] clientes de escritorio no Java

Componentes Web servelts paginas JSP (Java Server Pages) JSF(Java Server Faces)

Se ejecutan en el contenedor Web Responsables de componer la presentacioacuten de datos en

formato HTML Suelen apoyarse en el uso de componentes Java Beans

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

10

Componentes de Arquitectura

Componentes de negocio EBJ (Enterprise Java Beans) y entidades JPA (Java Persistence API )

Se ejecutan en el contenedor de EBJs Componentes (objetos Java) responsables de implementar

la loacutegica de la aplicacioacuten EBJ gestionan interacciones con los clientes e implementan

reglas de negocio Entidades Java objetos persistentes que representan los

datos de la capa EIS

Capa EIS (Enterprise Information Systems) Capa de datos gestiona la informacioacuten permanente del

sistema Bases de datos o aplicaciones empresariales rdquoheredadasrdquo

(legacy systems) que actuacutean como almacenes de datos

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

11

Componentes de Arquitectura

En general se entiende por componente un objeto Java con restricciones se ensambla y ejecuta dentro de un

servidor de aplicaciones Java EE(contenedor)

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

12

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya13

Contenedores

ContenedoresSimplifican el desarrollo de los componentes ocultando los detalles complejosSus tareas concretas depende de la capa a la que pertenezcanOfrecen servicios a los componentes actuando como interfaz entre un componente y los aspectos de bajo nivel de cada plataforma

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

14

ContenedoresUn contenedor permite a los componentes interactuar con los servicios brindados por el servidor de aplicaciones

Seguridad Acceso a datos Transacciones Acceso a recursos Comunicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

15

Tipos de contenedores Java EE

Servidor de Aplicaciones Java EE entorno de ejecucioacuten de aplicaciones JEE

Proporciona el contenedor Web yo el contenedor de EBJs

Contenedor EBJ (Enterprise Java Beans) gestiona la ejecucioacuten (ciclo de vida) de los EJBs

Da soporte a los componentes que implementan la capa de loacutegica de negocio

Ofrece servicios de control de acceso y seguridad control de transacciones y ejecucioacuten concurrente etc

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

16

Tipos de contenedores Java EE

ndash Contenedor Web gestiona la ejecucioacuten de los servlets y paginas JSP

bull Da soporte a los componentes que implementan la capa Web

bull API de Servlets APIs JSP JSTL JSF JavaBeans

bull Ejemplos libres Tomcat Jettyndash Contenedor aplicacioacuten cliente ofrece la

infraestructura necesaria para la ejecucioacuten del cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

17

Empaquetado de Aplicaciones JEE - Archivos

EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

18

Los archivos EAR (Enterprise Archive) es un formato utilizado en la arquitectura JEE para desplegar de manera coherente y simultaacutenea varios moacutedulos en un servidor de aplicaciones

Contiene archivos XML denominados descriptores de despliegue que describen como desplegar los moacutedulos contenidos en el paquete EAR

Aplicacioacutenes web java empaquetadas en WAR

+

Objetos distribuidos

EJB empaquetad

os en JAR

=

Aplicacioacuten empresarial JEE (Archivo

EAR)

Estructura EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

19

Descriptores JEE Descriptores de

despliegue JEE (JEE deployment descriptor) configuran las opciones de despliegue de cualquier componente de Java Empresarial

Descriptores de despliegue del entorno de ejecucioacuten (runtime deployment descriptor) configuran opciones del entorno de ejecucioacuten de nuestra aplicacioacuten empresarial tales como las opciones de cacheacute en el servidor

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

20

Despliegue de Aplicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

21

API Java EE - Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

22

Java EE APIs in the Web Container

API Java EE - Web Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

23

API Java EE - EJB Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

24

API Java EE - Application Client Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

25

Ciclo de vida de una aplicacioacuten web

El proceso para desarrollar empaquetar y ejecutar una aplicacioacuten web se puede resumir en

1 Desarrollar el coacutedigo de los componentes web2 Desarrollar un descriptor de despliegue (si fuera

necesario)3 Compilar los componentes de la aplicacioacuten web y

clases de ayuda referenciadas por estos componentes

4 Empaquetar la aplicacioacuten en una unidad desplegable (opcional)

5 Desplegar la aplicacioacuten en un contenedor web6 Acceder a la url que referencia la aplicacioacuten web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

26

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Introduccioacuten JEE

5SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya

CLIENTES

Vendedores

Servicios en Linea Web

Services CORBA Portales

Presentacion

JSPJSFStrust

Reportes en linea

BI Business Intellegence

JasperReport Crystal Report

ProduccionVentasPresupuesto

Missed orders

Retornar

Orden

Modificar

Orden

Ventas MarketingGerencia

VP BU

Proyectos

CIO

Servicios en Linea

Web Services EJBs

Portales

INDUSTRIALES

SERVICIOS

COMERCIAL

Internet Information

Services o IIS

JBoss

IBM WebSphere

Application Server

ndash EJBs RMI JNDI

Servicio Cliente

Nuevos Usuarios

Nuevos Usuarios

Nuevos Usuarios

Business Intelligence

RMI

Java EE (Java Enterprise Edition) Plataforma Java para el desarrollo de aplicaciones empresariales

Interaccioacuten con diversas fuentes de datos Interaccioacuten con otros sistemas (actuales yo legados) Acceso Web (jsp y servlet) Concurrencia Alta carga de procesamiento Usuarios con diferentes perfiles Requerimientos de seguridad Provee un ambiente de ejecucioacuten y un conjunto de

APIs Servlets JSP JSF EJB JMS JDBC JPA JNDIJavaMail JAXB JAXP JAX-WS etc

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

6

Java EE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya7

Versiones

Arquitectura multi-nivel(multi-tier)

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

8

Arquitectura multi-nivel(multi-tier)

Define una infraestructura comuacuten baacutesica para el acceso a bases de datos gestioacuten de la persistencia control de seguridad gestion de transacciones

Separacioacuten clara entre presentacioacuten (interfaz) modelo (loacutegica) de negocio y datos

Plataforma basada en componentes Entes (objetos) intercambiables que residen en un servidor

de aplicaciones y son gestionados por el httpjavasuncomjavaee

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

9

Componentes de Arquitectura

Clientes de la aplicacioacuten clientes web [navegador] clientes de escritorio Java [swing awt] clientes de escritorio no Java

Componentes Web servelts paginas JSP (Java Server Pages) JSF(Java Server Faces)

Se ejecutan en el contenedor Web Responsables de componer la presentacioacuten de datos en

formato HTML Suelen apoyarse en el uso de componentes Java Beans

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

10

Componentes de Arquitectura

Componentes de negocio EBJ (Enterprise Java Beans) y entidades JPA (Java Persistence API )

Se ejecutan en el contenedor de EBJs Componentes (objetos Java) responsables de implementar

la loacutegica de la aplicacioacuten EBJ gestionan interacciones con los clientes e implementan

reglas de negocio Entidades Java objetos persistentes que representan los

datos de la capa EIS

Capa EIS (Enterprise Information Systems) Capa de datos gestiona la informacioacuten permanente del

sistema Bases de datos o aplicaciones empresariales rdquoheredadasrdquo

(legacy systems) que actuacutean como almacenes de datos

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

11

Componentes de Arquitectura

En general se entiende por componente un objeto Java con restricciones se ensambla y ejecuta dentro de un

servidor de aplicaciones Java EE(contenedor)

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

12

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya13

Contenedores

ContenedoresSimplifican el desarrollo de los componentes ocultando los detalles complejosSus tareas concretas depende de la capa a la que pertenezcanOfrecen servicios a los componentes actuando como interfaz entre un componente y los aspectos de bajo nivel de cada plataforma

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

14

ContenedoresUn contenedor permite a los componentes interactuar con los servicios brindados por el servidor de aplicaciones

Seguridad Acceso a datos Transacciones Acceso a recursos Comunicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

15

Tipos de contenedores Java EE

Servidor de Aplicaciones Java EE entorno de ejecucioacuten de aplicaciones JEE

Proporciona el contenedor Web yo el contenedor de EBJs

Contenedor EBJ (Enterprise Java Beans) gestiona la ejecucioacuten (ciclo de vida) de los EJBs

Da soporte a los componentes que implementan la capa de loacutegica de negocio

Ofrece servicios de control de acceso y seguridad control de transacciones y ejecucioacuten concurrente etc

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

16

Tipos de contenedores Java EE

ndash Contenedor Web gestiona la ejecucioacuten de los servlets y paginas JSP

bull Da soporte a los componentes que implementan la capa Web

bull API de Servlets APIs JSP JSTL JSF JavaBeans

bull Ejemplos libres Tomcat Jettyndash Contenedor aplicacioacuten cliente ofrece la

infraestructura necesaria para la ejecucioacuten del cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

17

Empaquetado de Aplicaciones JEE - Archivos

EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

18

Los archivos EAR (Enterprise Archive) es un formato utilizado en la arquitectura JEE para desplegar de manera coherente y simultaacutenea varios moacutedulos en un servidor de aplicaciones

Contiene archivos XML denominados descriptores de despliegue que describen como desplegar los moacutedulos contenidos en el paquete EAR

Aplicacioacutenes web java empaquetadas en WAR

+

Objetos distribuidos

EJB empaquetad

os en JAR

=

Aplicacioacuten empresarial JEE (Archivo

EAR)

Estructura EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

19

Descriptores JEE Descriptores de

despliegue JEE (JEE deployment descriptor) configuran las opciones de despliegue de cualquier componente de Java Empresarial

Descriptores de despliegue del entorno de ejecucioacuten (runtime deployment descriptor) configuran opciones del entorno de ejecucioacuten de nuestra aplicacioacuten empresarial tales como las opciones de cacheacute en el servidor

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

20

Despliegue de Aplicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

21

API Java EE - Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

22

Java EE APIs in the Web Container

API Java EE - Web Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

23

API Java EE - EJB Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

24

API Java EE - Application Client Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

25

Ciclo de vida de una aplicacioacuten web

El proceso para desarrollar empaquetar y ejecutar una aplicacioacuten web se puede resumir en

1 Desarrollar el coacutedigo de los componentes web2 Desarrollar un descriptor de despliegue (si fuera

necesario)3 Compilar los componentes de la aplicacioacuten web y

clases de ayuda referenciadas por estos componentes

4 Empaquetar la aplicacioacuten en una unidad desplegable (opcional)

5 Desplegar la aplicacioacuten en un contenedor web6 Acceder a la url que referencia la aplicacioacuten web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

26

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Java EE (Java Enterprise Edition) Plataforma Java para el desarrollo de aplicaciones empresariales

Interaccioacuten con diversas fuentes de datos Interaccioacuten con otros sistemas (actuales yo legados) Acceso Web (jsp y servlet) Concurrencia Alta carga de procesamiento Usuarios con diferentes perfiles Requerimientos de seguridad Provee un ambiente de ejecucioacuten y un conjunto de

APIs Servlets JSP JSF EJB JMS JDBC JPA JNDIJavaMail JAXB JAXP JAX-WS etc

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

6

Java EE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya7

Versiones

Arquitectura multi-nivel(multi-tier)

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

8

Arquitectura multi-nivel(multi-tier)

Define una infraestructura comuacuten baacutesica para el acceso a bases de datos gestioacuten de la persistencia control de seguridad gestion de transacciones

Separacioacuten clara entre presentacioacuten (interfaz) modelo (loacutegica) de negocio y datos

Plataforma basada en componentes Entes (objetos) intercambiables que residen en un servidor

de aplicaciones y son gestionados por el httpjavasuncomjavaee

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

9

Componentes de Arquitectura

Clientes de la aplicacioacuten clientes web [navegador] clientes de escritorio Java [swing awt] clientes de escritorio no Java

Componentes Web servelts paginas JSP (Java Server Pages) JSF(Java Server Faces)

Se ejecutan en el contenedor Web Responsables de componer la presentacioacuten de datos en

formato HTML Suelen apoyarse en el uso de componentes Java Beans

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

10

Componentes de Arquitectura

Componentes de negocio EBJ (Enterprise Java Beans) y entidades JPA (Java Persistence API )

Se ejecutan en el contenedor de EBJs Componentes (objetos Java) responsables de implementar

la loacutegica de la aplicacioacuten EBJ gestionan interacciones con los clientes e implementan

reglas de negocio Entidades Java objetos persistentes que representan los

datos de la capa EIS

Capa EIS (Enterprise Information Systems) Capa de datos gestiona la informacioacuten permanente del

sistema Bases de datos o aplicaciones empresariales rdquoheredadasrdquo

(legacy systems) que actuacutean como almacenes de datos

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

11

Componentes de Arquitectura

En general se entiende por componente un objeto Java con restricciones se ensambla y ejecuta dentro de un

servidor de aplicaciones Java EE(contenedor)

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

12

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya13

Contenedores

ContenedoresSimplifican el desarrollo de los componentes ocultando los detalles complejosSus tareas concretas depende de la capa a la que pertenezcanOfrecen servicios a los componentes actuando como interfaz entre un componente y los aspectos de bajo nivel de cada plataforma

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

14

ContenedoresUn contenedor permite a los componentes interactuar con los servicios brindados por el servidor de aplicaciones

Seguridad Acceso a datos Transacciones Acceso a recursos Comunicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

15

Tipos de contenedores Java EE

Servidor de Aplicaciones Java EE entorno de ejecucioacuten de aplicaciones JEE

Proporciona el contenedor Web yo el contenedor de EBJs

Contenedor EBJ (Enterprise Java Beans) gestiona la ejecucioacuten (ciclo de vida) de los EJBs

Da soporte a los componentes que implementan la capa de loacutegica de negocio

Ofrece servicios de control de acceso y seguridad control de transacciones y ejecucioacuten concurrente etc

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

16

Tipos de contenedores Java EE

ndash Contenedor Web gestiona la ejecucioacuten de los servlets y paginas JSP

bull Da soporte a los componentes que implementan la capa Web

bull API de Servlets APIs JSP JSTL JSF JavaBeans

bull Ejemplos libres Tomcat Jettyndash Contenedor aplicacioacuten cliente ofrece la

infraestructura necesaria para la ejecucioacuten del cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

17

Empaquetado de Aplicaciones JEE - Archivos

EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

18

Los archivos EAR (Enterprise Archive) es un formato utilizado en la arquitectura JEE para desplegar de manera coherente y simultaacutenea varios moacutedulos en un servidor de aplicaciones

Contiene archivos XML denominados descriptores de despliegue que describen como desplegar los moacutedulos contenidos en el paquete EAR

Aplicacioacutenes web java empaquetadas en WAR

+

Objetos distribuidos

EJB empaquetad

os en JAR

=

Aplicacioacuten empresarial JEE (Archivo

EAR)

Estructura EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

19

Descriptores JEE Descriptores de

despliegue JEE (JEE deployment descriptor) configuran las opciones de despliegue de cualquier componente de Java Empresarial

Descriptores de despliegue del entorno de ejecucioacuten (runtime deployment descriptor) configuran opciones del entorno de ejecucioacuten de nuestra aplicacioacuten empresarial tales como las opciones de cacheacute en el servidor

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

20

Despliegue de Aplicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

21

API Java EE - Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

22

Java EE APIs in the Web Container

API Java EE - Web Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

23

API Java EE - EJB Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

24

API Java EE - Application Client Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

25

Ciclo de vida de una aplicacioacuten web

El proceso para desarrollar empaquetar y ejecutar una aplicacioacuten web se puede resumir en

1 Desarrollar el coacutedigo de los componentes web2 Desarrollar un descriptor de despliegue (si fuera

necesario)3 Compilar los componentes de la aplicacioacuten web y

clases de ayuda referenciadas por estos componentes

4 Empaquetar la aplicacioacuten en una unidad desplegable (opcional)

5 Desplegar la aplicacioacuten en un contenedor web6 Acceder a la url que referencia la aplicacioacuten web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

26

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya7

Versiones

Arquitectura multi-nivel(multi-tier)

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

8

Arquitectura multi-nivel(multi-tier)

Define una infraestructura comuacuten baacutesica para el acceso a bases de datos gestioacuten de la persistencia control de seguridad gestion de transacciones

Separacioacuten clara entre presentacioacuten (interfaz) modelo (loacutegica) de negocio y datos

Plataforma basada en componentes Entes (objetos) intercambiables que residen en un servidor

de aplicaciones y son gestionados por el httpjavasuncomjavaee

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

9

Componentes de Arquitectura

Clientes de la aplicacioacuten clientes web [navegador] clientes de escritorio Java [swing awt] clientes de escritorio no Java

Componentes Web servelts paginas JSP (Java Server Pages) JSF(Java Server Faces)

Se ejecutan en el contenedor Web Responsables de componer la presentacioacuten de datos en

formato HTML Suelen apoyarse en el uso de componentes Java Beans

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

10

Componentes de Arquitectura

Componentes de negocio EBJ (Enterprise Java Beans) y entidades JPA (Java Persistence API )

Se ejecutan en el contenedor de EBJs Componentes (objetos Java) responsables de implementar

la loacutegica de la aplicacioacuten EBJ gestionan interacciones con los clientes e implementan

reglas de negocio Entidades Java objetos persistentes que representan los

datos de la capa EIS

Capa EIS (Enterprise Information Systems) Capa de datos gestiona la informacioacuten permanente del

sistema Bases de datos o aplicaciones empresariales rdquoheredadasrdquo

(legacy systems) que actuacutean como almacenes de datos

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

11

Componentes de Arquitectura

En general se entiende por componente un objeto Java con restricciones se ensambla y ejecuta dentro de un

servidor de aplicaciones Java EE(contenedor)

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

12

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya13

Contenedores

ContenedoresSimplifican el desarrollo de los componentes ocultando los detalles complejosSus tareas concretas depende de la capa a la que pertenezcanOfrecen servicios a los componentes actuando como interfaz entre un componente y los aspectos de bajo nivel de cada plataforma

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

14

ContenedoresUn contenedor permite a los componentes interactuar con los servicios brindados por el servidor de aplicaciones

Seguridad Acceso a datos Transacciones Acceso a recursos Comunicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

15

Tipos de contenedores Java EE

Servidor de Aplicaciones Java EE entorno de ejecucioacuten de aplicaciones JEE

Proporciona el contenedor Web yo el contenedor de EBJs

Contenedor EBJ (Enterprise Java Beans) gestiona la ejecucioacuten (ciclo de vida) de los EJBs

Da soporte a los componentes que implementan la capa de loacutegica de negocio

Ofrece servicios de control de acceso y seguridad control de transacciones y ejecucioacuten concurrente etc

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

16

Tipos de contenedores Java EE

ndash Contenedor Web gestiona la ejecucioacuten de los servlets y paginas JSP

bull Da soporte a los componentes que implementan la capa Web

bull API de Servlets APIs JSP JSTL JSF JavaBeans

bull Ejemplos libres Tomcat Jettyndash Contenedor aplicacioacuten cliente ofrece la

infraestructura necesaria para la ejecucioacuten del cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

17

Empaquetado de Aplicaciones JEE - Archivos

EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

18

Los archivos EAR (Enterprise Archive) es un formato utilizado en la arquitectura JEE para desplegar de manera coherente y simultaacutenea varios moacutedulos en un servidor de aplicaciones

Contiene archivos XML denominados descriptores de despliegue que describen como desplegar los moacutedulos contenidos en el paquete EAR

Aplicacioacutenes web java empaquetadas en WAR

+

Objetos distribuidos

EJB empaquetad

os en JAR

=

Aplicacioacuten empresarial JEE (Archivo

EAR)

Estructura EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

19

Descriptores JEE Descriptores de

despliegue JEE (JEE deployment descriptor) configuran las opciones de despliegue de cualquier componente de Java Empresarial

Descriptores de despliegue del entorno de ejecucioacuten (runtime deployment descriptor) configuran opciones del entorno de ejecucioacuten de nuestra aplicacioacuten empresarial tales como las opciones de cacheacute en el servidor

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

20

Despliegue de Aplicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

21

API Java EE - Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

22

Java EE APIs in the Web Container

API Java EE - Web Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

23

API Java EE - EJB Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

24

API Java EE - Application Client Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

25

Ciclo de vida de una aplicacioacuten web

El proceso para desarrollar empaquetar y ejecutar una aplicacioacuten web se puede resumir en

1 Desarrollar el coacutedigo de los componentes web2 Desarrollar un descriptor de despliegue (si fuera

necesario)3 Compilar los componentes de la aplicacioacuten web y

clases de ayuda referenciadas por estos componentes

4 Empaquetar la aplicacioacuten en una unidad desplegable (opcional)

5 Desplegar la aplicacioacuten en un contenedor web6 Acceder a la url que referencia la aplicacioacuten web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

26

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Arquitectura multi-nivel(multi-tier)

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

8

Arquitectura multi-nivel(multi-tier)

Define una infraestructura comuacuten baacutesica para el acceso a bases de datos gestioacuten de la persistencia control de seguridad gestion de transacciones

Separacioacuten clara entre presentacioacuten (interfaz) modelo (loacutegica) de negocio y datos

Plataforma basada en componentes Entes (objetos) intercambiables que residen en un servidor

de aplicaciones y son gestionados por el httpjavasuncomjavaee

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

9

Componentes de Arquitectura

Clientes de la aplicacioacuten clientes web [navegador] clientes de escritorio Java [swing awt] clientes de escritorio no Java

Componentes Web servelts paginas JSP (Java Server Pages) JSF(Java Server Faces)

Se ejecutan en el contenedor Web Responsables de componer la presentacioacuten de datos en

formato HTML Suelen apoyarse en el uso de componentes Java Beans

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

10

Componentes de Arquitectura

Componentes de negocio EBJ (Enterprise Java Beans) y entidades JPA (Java Persistence API )

Se ejecutan en el contenedor de EBJs Componentes (objetos Java) responsables de implementar

la loacutegica de la aplicacioacuten EBJ gestionan interacciones con los clientes e implementan

reglas de negocio Entidades Java objetos persistentes que representan los

datos de la capa EIS

Capa EIS (Enterprise Information Systems) Capa de datos gestiona la informacioacuten permanente del

sistema Bases de datos o aplicaciones empresariales rdquoheredadasrdquo

(legacy systems) que actuacutean como almacenes de datos

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

11

Componentes de Arquitectura

En general se entiende por componente un objeto Java con restricciones se ensambla y ejecuta dentro de un

servidor de aplicaciones Java EE(contenedor)

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

12

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya13

Contenedores

ContenedoresSimplifican el desarrollo de los componentes ocultando los detalles complejosSus tareas concretas depende de la capa a la que pertenezcanOfrecen servicios a los componentes actuando como interfaz entre un componente y los aspectos de bajo nivel de cada plataforma

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

14

ContenedoresUn contenedor permite a los componentes interactuar con los servicios brindados por el servidor de aplicaciones

Seguridad Acceso a datos Transacciones Acceso a recursos Comunicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

15

Tipos de contenedores Java EE

Servidor de Aplicaciones Java EE entorno de ejecucioacuten de aplicaciones JEE

Proporciona el contenedor Web yo el contenedor de EBJs

Contenedor EBJ (Enterprise Java Beans) gestiona la ejecucioacuten (ciclo de vida) de los EJBs

Da soporte a los componentes que implementan la capa de loacutegica de negocio

Ofrece servicios de control de acceso y seguridad control de transacciones y ejecucioacuten concurrente etc

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

16

Tipos de contenedores Java EE

ndash Contenedor Web gestiona la ejecucioacuten de los servlets y paginas JSP

bull Da soporte a los componentes que implementan la capa Web

bull API de Servlets APIs JSP JSTL JSF JavaBeans

bull Ejemplos libres Tomcat Jettyndash Contenedor aplicacioacuten cliente ofrece la

infraestructura necesaria para la ejecucioacuten del cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

17

Empaquetado de Aplicaciones JEE - Archivos

EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

18

Los archivos EAR (Enterprise Archive) es un formato utilizado en la arquitectura JEE para desplegar de manera coherente y simultaacutenea varios moacutedulos en un servidor de aplicaciones

Contiene archivos XML denominados descriptores de despliegue que describen como desplegar los moacutedulos contenidos en el paquete EAR

Aplicacioacutenes web java empaquetadas en WAR

+

Objetos distribuidos

EJB empaquetad

os en JAR

=

Aplicacioacuten empresarial JEE (Archivo

EAR)

Estructura EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

19

Descriptores JEE Descriptores de

despliegue JEE (JEE deployment descriptor) configuran las opciones de despliegue de cualquier componente de Java Empresarial

Descriptores de despliegue del entorno de ejecucioacuten (runtime deployment descriptor) configuran opciones del entorno de ejecucioacuten de nuestra aplicacioacuten empresarial tales como las opciones de cacheacute en el servidor

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

20

Despliegue de Aplicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

21

API Java EE - Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

22

Java EE APIs in the Web Container

API Java EE - Web Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

23

API Java EE - EJB Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

24

API Java EE - Application Client Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

25

Ciclo de vida de una aplicacioacuten web

El proceso para desarrollar empaquetar y ejecutar una aplicacioacuten web se puede resumir en

1 Desarrollar el coacutedigo de los componentes web2 Desarrollar un descriptor de despliegue (si fuera

necesario)3 Compilar los componentes de la aplicacioacuten web y

clases de ayuda referenciadas por estos componentes

4 Empaquetar la aplicacioacuten en una unidad desplegable (opcional)

5 Desplegar la aplicacioacuten en un contenedor web6 Acceder a la url que referencia la aplicacioacuten web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

26

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Arquitectura multi-nivel(multi-tier)

Define una infraestructura comuacuten baacutesica para el acceso a bases de datos gestioacuten de la persistencia control de seguridad gestion de transacciones

Separacioacuten clara entre presentacioacuten (interfaz) modelo (loacutegica) de negocio y datos

Plataforma basada en componentes Entes (objetos) intercambiables que residen en un servidor

de aplicaciones y son gestionados por el httpjavasuncomjavaee

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

9

Componentes de Arquitectura

Clientes de la aplicacioacuten clientes web [navegador] clientes de escritorio Java [swing awt] clientes de escritorio no Java

Componentes Web servelts paginas JSP (Java Server Pages) JSF(Java Server Faces)

Se ejecutan en el contenedor Web Responsables de componer la presentacioacuten de datos en

formato HTML Suelen apoyarse en el uso de componentes Java Beans

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

10

Componentes de Arquitectura

Componentes de negocio EBJ (Enterprise Java Beans) y entidades JPA (Java Persistence API )

Se ejecutan en el contenedor de EBJs Componentes (objetos Java) responsables de implementar

la loacutegica de la aplicacioacuten EBJ gestionan interacciones con los clientes e implementan

reglas de negocio Entidades Java objetos persistentes que representan los

datos de la capa EIS

Capa EIS (Enterprise Information Systems) Capa de datos gestiona la informacioacuten permanente del

sistema Bases de datos o aplicaciones empresariales rdquoheredadasrdquo

(legacy systems) que actuacutean como almacenes de datos

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

11

Componentes de Arquitectura

En general se entiende por componente un objeto Java con restricciones se ensambla y ejecuta dentro de un

servidor de aplicaciones Java EE(contenedor)

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

12

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya13

Contenedores

ContenedoresSimplifican el desarrollo de los componentes ocultando los detalles complejosSus tareas concretas depende de la capa a la que pertenezcanOfrecen servicios a los componentes actuando como interfaz entre un componente y los aspectos de bajo nivel de cada plataforma

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

14

ContenedoresUn contenedor permite a los componentes interactuar con los servicios brindados por el servidor de aplicaciones

Seguridad Acceso a datos Transacciones Acceso a recursos Comunicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

15

Tipos de contenedores Java EE

Servidor de Aplicaciones Java EE entorno de ejecucioacuten de aplicaciones JEE

Proporciona el contenedor Web yo el contenedor de EBJs

Contenedor EBJ (Enterprise Java Beans) gestiona la ejecucioacuten (ciclo de vida) de los EJBs

Da soporte a los componentes que implementan la capa de loacutegica de negocio

Ofrece servicios de control de acceso y seguridad control de transacciones y ejecucioacuten concurrente etc

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

16

Tipos de contenedores Java EE

ndash Contenedor Web gestiona la ejecucioacuten de los servlets y paginas JSP

bull Da soporte a los componentes que implementan la capa Web

bull API de Servlets APIs JSP JSTL JSF JavaBeans

bull Ejemplos libres Tomcat Jettyndash Contenedor aplicacioacuten cliente ofrece la

infraestructura necesaria para la ejecucioacuten del cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

17

Empaquetado de Aplicaciones JEE - Archivos

EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

18

Los archivos EAR (Enterprise Archive) es un formato utilizado en la arquitectura JEE para desplegar de manera coherente y simultaacutenea varios moacutedulos en un servidor de aplicaciones

Contiene archivos XML denominados descriptores de despliegue que describen como desplegar los moacutedulos contenidos en el paquete EAR

Aplicacioacutenes web java empaquetadas en WAR

+

Objetos distribuidos

EJB empaquetad

os en JAR

=

Aplicacioacuten empresarial JEE (Archivo

EAR)

Estructura EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

19

Descriptores JEE Descriptores de

despliegue JEE (JEE deployment descriptor) configuran las opciones de despliegue de cualquier componente de Java Empresarial

Descriptores de despliegue del entorno de ejecucioacuten (runtime deployment descriptor) configuran opciones del entorno de ejecucioacuten de nuestra aplicacioacuten empresarial tales como las opciones de cacheacute en el servidor

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

20

Despliegue de Aplicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

21

API Java EE - Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

22

Java EE APIs in the Web Container

API Java EE - Web Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

23

API Java EE - EJB Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

24

API Java EE - Application Client Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

25

Ciclo de vida de una aplicacioacuten web

El proceso para desarrollar empaquetar y ejecutar una aplicacioacuten web se puede resumir en

1 Desarrollar el coacutedigo de los componentes web2 Desarrollar un descriptor de despliegue (si fuera

necesario)3 Compilar los componentes de la aplicacioacuten web y

clases de ayuda referenciadas por estos componentes

4 Empaquetar la aplicacioacuten en una unidad desplegable (opcional)

5 Desplegar la aplicacioacuten en un contenedor web6 Acceder a la url que referencia la aplicacioacuten web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

26

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Componentes de Arquitectura

Clientes de la aplicacioacuten clientes web [navegador] clientes de escritorio Java [swing awt] clientes de escritorio no Java

Componentes Web servelts paginas JSP (Java Server Pages) JSF(Java Server Faces)

Se ejecutan en el contenedor Web Responsables de componer la presentacioacuten de datos en

formato HTML Suelen apoyarse en el uso de componentes Java Beans

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

10

Componentes de Arquitectura

Componentes de negocio EBJ (Enterprise Java Beans) y entidades JPA (Java Persistence API )

Se ejecutan en el contenedor de EBJs Componentes (objetos Java) responsables de implementar

la loacutegica de la aplicacioacuten EBJ gestionan interacciones con los clientes e implementan

reglas de negocio Entidades Java objetos persistentes que representan los

datos de la capa EIS

Capa EIS (Enterprise Information Systems) Capa de datos gestiona la informacioacuten permanente del

sistema Bases de datos o aplicaciones empresariales rdquoheredadasrdquo

(legacy systems) que actuacutean como almacenes de datos

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

11

Componentes de Arquitectura

En general se entiende por componente un objeto Java con restricciones se ensambla y ejecuta dentro de un

servidor de aplicaciones Java EE(contenedor)

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

12

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya13

Contenedores

ContenedoresSimplifican el desarrollo de los componentes ocultando los detalles complejosSus tareas concretas depende de la capa a la que pertenezcanOfrecen servicios a los componentes actuando como interfaz entre un componente y los aspectos de bajo nivel de cada plataforma

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

14

ContenedoresUn contenedor permite a los componentes interactuar con los servicios brindados por el servidor de aplicaciones

Seguridad Acceso a datos Transacciones Acceso a recursos Comunicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

15

Tipos de contenedores Java EE

Servidor de Aplicaciones Java EE entorno de ejecucioacuten de aplicaciones JEE

Proporciona el contenedor Web yo el contenedor de EBJs

Contenedor EBJ (Enterprise Java Beans) gestiona la ejecucioacuten (ciclo de vida) de los EJBs

Da soporte a los componentes que implementan la capa de loacutegica de negocio

Ofrece servicios de control de acceso y seguridad control de transacciones y ejecucioacuten concurrente etc

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

16

Tipos de contenedores Java EE

ndash Contenedor Web gestiona la ejecucioacuten de los servlets y paginas JSP

bull Da soporte a los componentes que implementan la capa Web

bull API de Servlets APIs JSP JSTL JSF JavaBeans

bull Ejemplos libres Tomcat Jettyndash Contenedor aplicacioacuten cliente ofrece la

infraestructura necesaria para la ejecucioacuten del cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

17

Empaquetado de Aplicaciones JEE - Archivos

EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

18

Los archivos EAR (Enterprise Archive) es un formato utilizado en la arquitectura JEE para desplegar de manera coherente y simultaacutenea varios moacutedulos en un servidor de aplicaciones

Contiene archivos XML denominados descriptores de despliegue que describen como desplegar los moacutedulos contenidos en el paquete EAR

Aplicacioacutenes web java empaquetadas en WAR

+

Objetos distribuidos

EJB empaquetad

os en JAR

=

Aplicacioacuten empresarial JEE (Archivo

EAR)

Estructura EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

19

Descriptores JEE Descriptores de

despliegue JEE (JEE deployment descriptor) configuran las opciones de despliegue de cualquier componente de Java Empresarial

Descriptores de despliegue del entorno de ejecucioacuten (runtime deployment descriptor) configuran opciones del entorno de ejecucioacuten de nuestra aplicacioacuten empresarial tales como las opciones de cacheacute en el servidor

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

20

Despliegue de Aplicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

21

API Java EE - Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

22

Java EE APIs in the Web Container

API Java EE - Web Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

23

API Java EE - EJB Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

24

API Java EE - Application Client Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

25

Ciclo de vida de una aplicacioacuten web

El proceso para desarrollar empaquetar y ejecutar una aplicacioacuten web se puede resumir en

1 Desarrollar el coacutedigo de los componentes web2 Desarrollar un descriptor de despliegue (si fuera

necesario)3 Compilar los componentes de la aplicacioacuten web y

clases de ayuda referenciadas por estos componentes

4 Empaquetar la aplicacioacuten en una unidad desplegable (opcional)

5 Desplegar la aplicacioacuten en un contenedor web6 Acceder a la url que referencia la aplicacioacuten web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

26

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Componentes de Arquitectura

Componentes de negocio EBJ (Enterprise Java Beans) y entidades JPA (Java Persistence API )

Se ejecutan en el contenedor de EBJs Componentes (objetos Java) responsables de implementar

la loacutegica de la aplicacioacuten EBJ gestionan interacciones con los clientes e implementan

reglas de negocio Entidades Java objetos persistentes que representan los

datos de la capa EIS

Capa EIS (Enterprise Information Systems) Capa de datos gestiona la informacioacuten permanente del

sistema Bases de datos o aplicaciones empresariales rdquoheredadasrdquo

(legacy systems) que actuacutean como almacenes de datos

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

11

Componentes de Arquitectura

En general se entiende por componente un objeto Java con restricciones se ensambla y ejecuta dentro de un

servidor de aplicaciones Java EE(contenedor)

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

12

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya13

Contenedores

ContenedoresSimplifican el desarrollo de los componentes ocultando los detalles complejosSus tareas concretas depende de la capa a la que pertenezcanOfrecen servicios a los componentes actuando como interfaz entre un componente y los aspectos de bajo nivel de cada plataforma

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

14

ContenedoresUn contenedor permite a los componentes interactuar con los servicios brindados por el servidor de aplicaciones

Seguridad Acceso a datos Transacciones Acceso a recursos Comunicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

15

Tipos de contenedores Java EE

Servidor de Aplicaciones Java EE entorno de ejecucioacuten de aplicaciones JEE

Proporciona el contenedor Web yo el contenedor de EBJs

Contenedor EBJ (Enterprise Java Beans) gestiona la ejecucioacuten (ciclo de vida) de los EJBs

Da soporte a los componentes que implementan la capa de loacutegica de negocio

Ofrece servicios de control de acceso y seguridad control de transacciones y ejecucioacuten concurrente etc

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

16

Tipos de contenedores Java EE

ndash Contenedor Web gestiona la ejecucioacuten de los servlets y paginas JSP

bull Da soporte a los componentes que implementan la capa Web

bull API de Servlets APIs JSP JSTL JSF JavaBeans

bull Ejemplos libres Tomcat Jettyndash Contenedor aplicacioacuten cliente ofrece la

infraestructura necesaria para la ejecucioacuten del cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

17

Empaquetado de Aplicaciones JEE - Archivos

EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

18

Los archivos EAR (Enterprise Archive) es un formato utilizado en la arquitectura JEE para desplegar de manera coherente y simultaacutenea varios moacutedulos en un servidor de aplicaciones

Contiene archivos XML denominados descriptores de despliegue que describen como desplegar los moacutedulos contenidos en el paquete EAR

Aplicacioacutenes web java empaquetadas en WAR

+

Objetos distribuidos

EJB empaquetad

os en JAR

=

Aplicacioacuten empresarial JEE (Archivo

EAR)

Estructura EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

19

Descriptores JEE Descriptores de

despliegue JEE (JEE deployment descriptor) configuran las opciones de despliegue de cualquier componente de Java Empresarial

Descriptores de despliegue del entorno de ejecucioacuten (runtime deployment descriptor) configuran opciones del entorno de ejecucioacuten de nuestra aplicacioacuten empresarial tales como las opciones de cacheacute en el servidor

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

20

Despliegue de Aplicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

21

API Java EE - Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

22

Java EE APIs in the Web Container

API Java EE - Web Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

23

API Java EE - EJB Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

24

API Java EE - Application Client Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

25

Ciclo de vida de una aplicacioacuten web

El proceso para desarrollar empaquetar y ejecutar una aplicacioacuten web se puede resumir en

1 Desarrollar el coacutedigo de los componentes web2 Desarrollar un descriptor de despliegue (si fuera

necesario)3 Compilar los componentes de la aplicacioacuten web y

clases de ayuda referenciadas por estos componentes

4 Empaquetar la aplicacioacuten en una unidad desplegable (opcional)

5 Desplegar la aplicacioacuten en un contenedor web6 Acceder a la url que referencia la aplicacioacuten web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

26

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Componentes de Arquitectura

En general se entiende por componente un objeto Java con restricciones se ensambla y ejecuta dentro de un

servidor de aplicaciones Java EE(contenedor)

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

12

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya13

Contenedores

ContenedoresSimplifican el desarrollo de los componentes ocultando los detalles complejosSus tareas concretas depende de la capa a la que pertenezcanOfrecen servicios a los componentes actuando como interfaz entre un componente y los aspectos de bajo nivel de cada plataforma

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

14

ContenedoresUn contenedor permite a los componentes interactuar con los servicios brindados por el servidor de aplicaciones

Seguridad Acceso a datos Transacciones Acceso a recursos Comunicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

15

Tipos de contenedores Java EE

Servidor de Aplicaciones Java EE entorno de ejecucioacuten de aplicaciones JEE

Proporciona el contenedor Web yo el contenedor de EBJs

Contenedor EBJ (Enterprise Java Beans) gestiona la ejecucioacuten (ciclo de vida) de los EJBs

Da soporte a los componentes que implementan la capa de loacutegica de negocio

Ofrece servicios de control de acceso y seguridad control de transacciones y ejecucioacuten concurrente etc

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

16

Tipos de contenedores Java EE

ndash Contenedor Web gestiona la ejecucioacuten de los servlets y paginas JSP

bull Da soporte a los componentes que implementan la capa Web

bull API de Servlets APIs JSP JSTL JSF JavaBeans

bull Ejemplos libres Tomcat Jettyndash Contenedor aplicacioacuten cliente ofrece la

infraestructura necesaria para la ejecucioacuten del cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

17

Empaquetado de Aplicaciones JEE - Archivos

EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

18

Los archivos EAR (Enterprise Archive) es un formato utilizado en la arquitectura JEE para desplegar de manera coherente y simultaacutenea varios moacutedulos en un servidor de aplicaciones

Contiene archivos XML denominados descriptores de despliegue que describen como desplegar los moacutedulos contenidos en el paquete EAR

Aplicacioacutenes web java empaquetadas en WAR

+

Objetos distribuidos

EJB empaquetad

os en JAR

=

Aplicacioacuten empresarial JEE (Archivo

EAR)

Estructura EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

19

Descriptores JEE Descriptores de

despliegue JEE (JEE deployment descriptor) configuran las opciones de despliegue de cualquier componente de Java Empresarial

Descriptores de despliegue del entorno de ejecucioacuten (runtime deployment descriptor) configuran opciones del entorno de ejecucioacuten de nuestra aplicacioacuten empresarial tales como las opciones de cacheacute en el servidor

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

20

Despliegue de Aplicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

21

API Java EE - Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

22

Java EE APIs in the Web Container

API Java EE - Web Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

23

API Java EE - EJB Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

24

API Java EE - Application Client Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

25

Ciclo de vida de una aplicacioacuten web

El proceso para desarrollar empaquetar y ejecutar una aplicacioacuten web se puede resumir en

1 Desarrollar el coacutedigo de los componentes web2 Desarrollar un descriptor de despliegue (si fuera

necesario)3 Compilar los componentes de la aplicacioacuten web y

clases de ayuda referenciadas por estos componentes

4 Empaquetar la aplicacioacuten en una unidad desplegable (opcional)

5 Desplegar la aplicacioacuten en un contenedor web6 Acceder a la url que referencia la aplicacioacuten web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

26

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue

Montoya13

Contenedores

ContenedoresSimplifican el desarrollo de los componentes ocultando los detalles complejosSus tareas concretas depende de la capa a la que pertenezcanOfrecen servicios a los componentes actuando como interfaz entre un componente y los aspectos de bajo nivel de cada plataforma

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

14

ContenedoresUn contenedor permite a los componentes interactuar con los servicios brindados por el servidor de aplicaciones

Seguridad Acceso a datos Transacciones Acceso a recursos Comunicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

15

Tipos de contenedores Java EE

Servidor de Aplicaciones Java EE entorno de ejecucioacuten de aplicaciones JEE

Proporciona el contenedor Web yo el contenedor de EBJs

Contenedor EBJ (Enterprise Java Beans) gestiona la ejecucioacuten (ciclo de vida) de los EJBs

Da soporte a los componentes que implementan la capa de loacutegica de negocio

Ofrece servicios de control de acceso y seguridad control de transacciones y ejecucioacuten concurrente etc

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

16

Tipos de contenedores Java EE

ndash Contenedor Web gestiona la ejecucioacuten de los servlets y paginas JSP

bull Da soporte a los componentes que implementan la capa Web

bull API de Servlets APIs JSP JSTL JSF JavaBeans

bull Ejemplos libres Tomcat Jettyndash Contenedor aplicacioacuten cliente ofrece la

infraestructura necesaria para la ejecucioacuten del cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

17

Empaquetado de Aplicaciones JEE - Archivos

EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

18

Los archivos EAR (Enterprise Archive) es un formato utilizado en la arquitectura JEE para desplegar de manera coherente y simultaacutenea varios moacutedulos en un servidor de aplicaciones

Contiene archivos XML denominados descriptores de despliegue que describen como desplegar los moacutedulos contenidos en el paquete EAR

Aplicacioacutenes web java empaquetadas en WAR

+

Objetos distribuidos

EJB empaquetad

os en JAR

=

Aplicacioacuten empresarial JEE (Archivo

EAR)

Estructura EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

19

Descriptores JEE Descriptores de

despliegue JEE (JEE deployment descriptor) configuran las opciones de despliegue de cualquier componente de Java Empresarial

Descriptores de despliegue del entorno de ejecucioacuten (runtime deployment descriptor) configuran opciones del entorno de ejecucioacuten de nuestra aplicacioacuten empresarial tales como las opciones de cacheacute en el servidor

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

20

Despliegue de Aplicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

21

API Java EE - Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

22

Java EE APIs in the Web Container

API Java EE - Web Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

23

API Java EE - EJB Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

24

API Java EE - Application Client Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

25

Ciclo de vida de una aplicacioacuten web

El proceso para desarrollar empaquetar y ejecutar una aplicacioacuten web se puede resumir en

1 Desarrollar el coacutedigo de los componentes web2 Desarrollar un descriptor de despliegue (si fuera

necesario)3 Compilar los componentes de la aplicacioacuten web y

clases de ayuda referenciadas por estos componentes

4 Empaquetar la aplicacioacuten en una unidad desplegable (opcional)

5 Desplegar la aplicacioacuten en un contenedor web6 Acceder a la url que referencia la aplicacioacuten web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

26

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

ContenedoresSimplifican el desarrollo de los componentes ocultando los detalles complejosSus tareas concretas depende de la capa a la que pertenezcanOfrecen servicios a los componentes actuando como interfaz entre un componente y los aspectos de bajo nivel de cada plataforma

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

14

ContenedoresUn contenedor permite a los componentes interactuar con los servicios brindados por el servidor de aplicaciones

Seguridad Acceso a datos Transacciones Acceso a recursos Comunicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

15

Tipos de contenedores Java EE

Servidor de Aplicaciones Java EE entorno de ejecucioacuten de aplicaciones JEE

Proporciona el contenedor Web yo el contenedor de EBJs

Contenedor EBJ (Enterprise Java Beans) gestiona la ejecucioacuten (ciclo de vida) de los EJBs

Da soporte a los componentes que implementan la capa de loacutegica de negocio

Ofrece servicios de control de acceso y seguridad control de transacciones y ejecucioacuten concurrente etc

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

16

Tipos de contenedores Java EE

ndash Contenedor Web gestiona la ejecucioacuten de los servlets y paginas JSP

bull Da soporte a los componentes que implementan la capa Web

bull API de Servlets APIs JSP JSTL JSF JavaBeans

bull Ejemplos libres Tomcat Jettyndash Contenedor aplicacioacuten cliente ofrece la

infraestructura necesaria para la ejecucioacuten del cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

17

Empaquetado de Aplicaciones JEE - Archivos

EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

18

Los archivos EAR (Enterprise Archive) es un formato utilizado en la arquitectura JEE para desplegar de manera coherente y simultaacutenea varios moacutedulos en un servidor de aplicaciones

Contiene archivos XML denominados descriptores de despliegue que describen como desplegar los moacutedulos contenidos en el paquete EAR

Aplicacioacutenes web java empaquetadas en WAR

+

Objetos distribuidos

EJB empaquetad

os en JAR

=

Aplicacioacuten empresarial JEE (Archivo

EAR)

Estructura EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

19

Descriptores JEE Descriptores de

despliegue JEE (JEE deployment descriptor) configuran las opciones de despliegue de cualquier componente de Java Empresarial

Descriptores de despliegue del entorno de ejecucioacuten (runtime deployment descriptor) configuran opciones del entorno de ejecucioacuten de nuestra aplicacioacuten empresarial tales como las opciones de cacheacute en el servidor

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

20

Despliegue de Aplicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

21

API Java EE - Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

22

Java EE APIs in the Web Container

API Java EE - Web Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

23

API Java EE - EJB Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

24

API Java EE - Application Client Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

25

Ciclo de vida de una aplicacioacuten web

El proceso para desarrollar empaquetar y ejecutar una aplicacioacuten web se puede resumir en

1 Desarrollar el coacutedigo de los componentes web2 Desarrollar un descriptor de despliegue (si fuera

necesario)3 Compilar los componentes de la aplicacioacuten web y

clases de ayuda referenciadas por estos componentes

4 Empaquetar la aplicacioacuten en una unidad desplegable (opcional)

5 Desplegar la aplicacioacuten en un contenedor web6 Acceder a la url que referencia la aplicacioacuten web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

26

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

ContenedoresUn contenedor permite a los componentes interactuar con los servicios brindados por el servidor de aplicaciones

Seguridad Acceso a datos Transacciones Acceso a recursos Comunicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

15

Tipos de contenedores Java EE

Servidor de Aplicaciones Java EE entorno de ejecucioacuten de aplicaciones JEE

Proporciona el contenedor Web yo el contenedor de EBJs

Contenedor EBJ (Enterprise Java Beans) gestiona la ejecucioacuten (ciclo de vida) de los EJBs

Da soporte a los componentes que implementan la capa de loacutegica de negocio

Ofrece servicios de control de acceso y seguridad control de transacciones y ejecucioacuten concurrente etc

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

16

Tipos de contenedores Java EE

ndash Contenedor Web gestiona la ejecucioacuten de los servlets y paginas JSP

bull Da soporte a los componentes que implementan la capa Web

bull API de Servlets APIs JSP JSTL JSF JavaBeans

bull Ejemplos libres Tomcat Jettyndash Contenedor aplicacioacuten cliente ofrece la

infraestructura necesaria para la ejecucioacuten del cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

17

Empaquetado de Aplicaciones JEE - Archivos

EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

18

Los archivos EAR (Enterprise Archive) es un formato utilizado en la arquitectura JEE para desplegar de manera coherente y simultaacutenea varios moacutedulos en un servidor de aplicaciones

Contiene archivos XML denominados descriptores de despliegue que describen como desplegar los moacutedulos contenidos en el paquete EAR

Aplicacioacutenes web java empaquetadas en WAR

+

Objetos distribuidos

EJB empaquetad

os en JAR

=

Aplicacioacuten empresarial JEE (Archivo

EAR)

Estructura EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

19

Descriptores JEE Descriptores de

despliegue JEE (JEE deployment descriptor) configuran las opciones de despliegue de cualquier componente de Java Empresarial

Descriptores de despliegue del entorno de ejecucioacuten (runtime deployment descriptor) configuran opciones del entorno de ejecucioacuten de nuestra aplicacioacuten empresarial tales como las opciones de cacheacute en el servidor

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

20

Despliegue de Aplicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

21

API Java EE - Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

22

Java EE APIs in the Web Container

API Java EE - Web Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

23

API Java EE - EJB Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

24

API Java EE - Application Client Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

25

Ciclo de vida de una aplicacioacuten web

El proceso para desarrollar empaquetar y ejecutar una aplicacioacuten web se puede resumir en

1 Desarrollar el coacutedigo de los componentes web2 Desarrollar un descriptor de despliegue (si fuera

necesario)3 Compilar los componentes de la aplicacioacuten web y

clases de ayuda referenciadas por estos componentes

4 Empaquetar la aplicacioacuten en una unidad desplegable (opcional)

5 Desplegar la aplicacioacuten en un contenedor web6 Acceder a la url que referencia la aplicacioacuten web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

26

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Tipos de contenedores Java EE

Servidor de Aplicaciones Java EE entorno de ejecucioacuten de aplicaciones JEE

Proporciona el contenedor Web yo el contenedor de EBJs

Contenedor EBJ (Enterprise Java Beans) gestiona la ejecucioacuten (ciclo de vida) de los EJBs

Da soporte a los componentes que implementan la capa de loacutegica de negocio

Ofrece servicios de control de acceso y seguridad control de transacciones y ejecucioacuten concurrente etc

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

16

Tipos de contenedores Java EE

ndash Contenedor Web gestiona la ejecucioacuten de los servlets y paginas JSP

bull Da soporte a los componentes que implementan la capa Web

bull API de Servlets APIs JSP JSTL JSF JavaBeans

bull Ejemplos libres Tomcat Jettyndash Contenedor aplicacioacuten cliente ofrece la

infraestructura necesaria para la ejecucioacuten del cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

17

Empaquetado de Aplicaciones JEE - Archivos

EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

18

Los archivos EAR (Enterprise Archive) es un formato utilizado en la arquitectura JEE para desplegar de manera coherente y simultaacutenea varios moacutedulos en un servidor de aplicaciones

Contiene archivos XML denominados descriptores de despliegue que describen como desplegar los moacutedulos contenidos en el paquete EAR

Aplicacioacutenes web java empaquetadas en WAR

+

Objetos distribuidos

EJB empaquetad

os en JAR

=

Aplicacioacuten empresarial JEE (Archivo

EAR)

Estructura EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

19

Descriptores JEE Descriptores de

despliegue JEE (JEE deployment descriptor) configuran las opciones de despliegue de cualquier componente de Java Empresarial

Descriptores de despliegue del entorno de ejecucioacuten (runtime deployment descriptor) configuran opciones del entorno de ejecucioacuten de nuestra aplicacioacuten empresarial tales como las opciones de cacheacute en el servidor

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

20

Despliegue de Aplicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

21

API Java EE - Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

22

Java EE APIs in the Web Container

API Java EE - Web Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

23

API Java EE - EJB Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

24

API Java EE - Application Client Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

25

Ciclo de vida de una aplicacioacuten web

El proceso para desarrollar empaquetar y ejecutar una aplicacioacuten web se puede resumir en

1 Desarrollar el coacutedigo de los componentes web2 Desarrollar un descriptor de despliegue (si fuera

necesario)3 Compilar los componentes de la aplicacioacuten web y

clases de ayuda referenciadas por estos componentes

4 Empaquetar la aplicacioacuten en una unidad desplegable (opcional)

5 Desplegar la aplicacioacuten en un contenedor web6 Acceder a la url que referencia la aplicacioacuten web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

26

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Tipos de contenedores Java EE

ndash Contenedor Web gestiona la ejecucioacuten de los servlets y paginas JSP

bull Da soporte a los componentes que implementan la capa Web

bull API de Servlets APIs JSP JSTL JSF JavaBeans

bull Ejemplos libres Tomcat Jettyndash Contenedor aplicacioacuten cliente ofrece la

infraestructura necesaria para la ejecucioacuten del cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

17

Empaquetado de Aplicaciones JEE - Archivos

EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

18

Los archivos EAR (Enterprise Archive) es un formato utilizado en la arquitectura JEE para desplegar de manera coherente y simultaacutenea varios moacutedulos en un servidor de aplicaciones

Contiene archivos XML denominados descriptores de despliegue que describen como desplegar los moacutedulos contenidos en el paquete EAR

Aplicacioacutenes web java empaquetadas en WAR

+

Objetos distribuidos

EJB empaquetad

os en JAR

=

Aplicacioacuten empresarial JEE (Archivo

EAR)

Estructura EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

19

Descriptores JEE Descriptores de

despliegue JEE (JEE deployment descriptor) configuran las opciones de despliegue de cualquier componente de Java Empresarial

Descriptores de despliegue del entorno de ejecucioacuten (runtime deployment descriptor) configuran opciones del entorno de ejecucioacuten de nuestra aplicacioacuten empresarial tales como las opciones de cacheacute en el servidor

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

20

Despliegue de Aplicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

21

API Java EE - Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

22

Java EE APIs in the Web Container

API Java EE - Web Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

23

API Java EE - EJB Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

24

API Java EE - Application Client Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

25

Ciclo de vida de una aplicacioacuten web

El proceso para desarrollar empaquetar y ejecutar una aplicacioacuten web se puede resumir en

1 Desarrollar el coacutedigo de los componentes web2 Desarrollar un descriptor de despliegue (si fuera

necesario)3 Compilar los componentes de la aplicacioacuten web y

clases de ayuda referenciadas por estos componentes

4 Empaquetar la aplicacioacuten en una unidad desplegable (opcional)

5 Desplegar la aplicacioacuten en un contenedor web6 Acceder a la url que referencia la aplicacioacuten web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

26

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Empaquetado de Aplicaciones JEE - Archivos

EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

18

Los archivos EAR (Enterprise Archive) es un formato utilizado en la arquitectura JEE para desplegar de manera coherente y simultaacutenea varios moacutedulos en un servidor de aplicaciones

Contiene archivos XML denominados descriptores de despliegue que describen como desplegar los moacutedulos contenidos en el paquete EAR

Aplicacioacutenes web java empaquetadas en WAR

+

Objetos distribuidos

EJB empaquetad

os en JAR

=

Aplicacioacuten empresarial JEE (Archivo

EAR)

Estructura EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

19

Descriptores JEE Descriptores de

despliegue JEE (JEE deployment descriptor) configuran las opciones de despliegue de cualquier componente de Java Empresarial

Descriptores de despliegue del entorno de ejecucioacuten (runtime deployment descriptor) configuran opciones del entorno de ejecucioacuten de nuestra aplicacioacuten empresarial tales como las opciones de cacheacute en el servidor

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

20

Despliegue de Aplicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

21

API Java EE - Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

22

Java EE APIs in the Web Container

API Java EE - Web Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

23

API Java EE - EJB Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

24

API Java EE - Application Client Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

25

Ciclo de vida de una aplicacioacuten web

El proceso para desarrollar empaquetar y ejecutar una aplicacioacuten web se puede resumir en

1 Desarrollar el coacutedigo de los componentes web2 Desarrollar un descriptor de despliegue (si fuera

necesario)3 Compilar los componentes de la aplicacioacuten web y

clases de ayuda referenciadas por estos componentes

4 Empaquetar la aplicacioacuten en una unidad desplegable (opcional)

5 Desplegar la aplicacioacuten en un contenedor web6 Acceder a la url que referencia la aplicacioacuten web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

26

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Estructura EAR

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

19

Descriptores JEE Descriptores de

despliegue JEE (JEE deployment descriptor) configuran las opciones de despliegue de cualquier componente de Java Empresarial

Descriptores de despliegue del entorno de ejecucioacuten (runtime deployment descriptor) configuran opciones del entorno de ejecucioacuten de nuestra aplicacioacuten empresarial tales como las opciones de cacheacute en el servidor

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

20

Despliegue de Aplicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

21

API Java EE - Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

22

Java EE APIs in the Web Container

API Java EE - Web Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

23

API Java EE - EJB Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

24

API Java EE - Application Client Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

25

Ciclo de vida de una aplicacioacuten web

El proceso para desarrollar empaquetar y ejecutar una aplicacioacuten web se puede resumir en

1 Desarrollar el coacutedigo de los componentes web2 Desarrollar un descriptor de despliegue (si fuera

necesario)3 Compilar los componentes de la aplicacioacuten web y

clases de ayuda referenciadas por estos componentes

4 Empaquetar la aplicacioacuten en una unidad desplegable (opcional)

5 Desplegar la aplicacioacuten en un contenedor web6 Acceder a la url que referencia la aplicacioacuten web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

26

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Descriptores JEE Descriptores de

despliegue JEE (JEE deployment descriptor) configuran las opciones de despliegue de cualquier componente de Java Empresarial

Descriptores de despliegue del entorno de ejecucioacuten (runtime deployment descriptor) configuran opciones del entorno de ejecucioacuten de nuestra aplicacioacuten empresarial tales como las opciones de cacheacute en el servidor

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

20

Despliegue de Aplicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

21

API Java EE - Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

22

Java EE APIs in the Web Container

API Java EE - Web Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

23

API Java EE - EJB Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

24

API Java EE - Application Client Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

25

Ciclo de vida de una aplicacioacuten web

El proceso para desarrollar empaquetar y ejecutar una aplicacioacuten web se puede resumir en

1 Desarrollar el coacutedigo de los componentes web2 Desarrollar un descriptor de despliegue (si fuera

necesario)3 Compilar los componentes de la aplicacioacuten web y

clases de ayuda referenciadas por estos componentes

4 Empaquetar la aplicacioacuten en una unidad desplegable (opcional)

5 Desplegar la aplicacioacuten en un contenedor web6 Acceder a la url que referencia la aplicacioacuten web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

26

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Despliegue de Aplicaciones

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

21

API Java EE - Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

22

Java EE APIs in the Web Container

API Java EE - Web Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

23

API Java EE - EJB Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

24

API Java EE - Application Client Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

25

Ciclo de vida de una aplicacioacuten web

El proceso para desarrollar empaquetar y ejecutar una aplicacioacuten web se puede resumir en

1 Desarrollar el coacutedigo de los componentes web2 Desarrollar un descriptor de despliegue (si fuera

necesario)3 Compilar los componentes de la aplicacioacuten web y

clases de ayuda referenciadas por estos componentes

4 Empaquetar la aplicacioacuten en una unidad desplegable (opcional)

5 Desplegar la aplicacioacuten en un contenedor web6 Acceder a la url que referencia la aplicacioacuten web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

26

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

API Java EE - Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

22

Java EE APIs in the Web Container

API Java EE - Web Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

23

API Java EE - EJB Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

24

API Java EE - Application Client Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

25

Ciclo de vida de una aplicacioacuten web

El proceso para desarrollar empaquetar y ejecutar una aplicacioacuten web se puede resumir en

1 Desarrollar el coacutedigo de los componentes web2 Desarrollar un descriptor de despliegue (si fuera

necesario)3 Compilar los componentes de la aplicacioacuten web y

clases de ayuda referenciadas por estos componentes

4 Empaquetar la aplicacioacuten en una unidad desplegable (opcional)

5 Desplegar la aplicacioacuten en un contenedor web6 Acceder a la url que referencia la aplicacioacuten web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

26

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

API Java EE - Web Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

23

API Java EE - EJB Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

24

API Java EE - Application Client Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

25

Ciclo de vida de una aplicacioacuten web

El proceso para desarrollar empaquetar y ejecutar una aplicacioacuten web se puede resumir en

1 Desarrollar el coacutedigo de los componentes web2 Desarrollar un descriptor de despliegue (si fuera

necesario)3 Compilar los componentes de la aplicacioacuten web y

clases de ayuda referenciadas por estos componentes

4 Empaquetar la aplicacioacuten en una unidad desplegable (opcional)

5 Desplegar la aplicacioacuten en un contenedor web6 Acceder a la url que referencia la aplicacioacuten web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

26

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

API Java EE - EJB Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

24

API Java EE - Application Client Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

25

Ciclo de vida de una aplicacioacuten web

El proceso para desarrollar empaquetar y ejecutar una aplicacioacuten web se puede resumir en

1 Desarrollar el coacutedigo de los componentes web2 Desarrollar un descriptor de despliegue (si fuera

necesario)3 Compilar los componentes de la aplicacioacuten web y

clases de ayuda referenciadas por estos componentes

4 Empaquetar la aplicacioacuten en una unidad desplegable (opcional)

5 Desplegar la aplicacioacuten en un contenedor web6 Acceder a la url que referencia la aplicacioacuten web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

26

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

API Java EE - Application Client Container

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

25

Ciclo de vida de una aplicacioacuten web

El proceso para desarrollar empaquetar y ejecutar una aplicacioacuten web se puede resumir en

1 Desarrollar el coacutedigo de los componentes web2 Desarrollar un descriptor de despliegue (si fuera

necesario)3 Compilar los componentes de la aplicacioacuten web y

clases de ayuda referenciadas por estos componentes

4 Empaquetar la aplicacioacuten en una unidad desplegable (opcional)

5 Desplegar la aplicacioacuten en un contenedor web6 Acceder a la url que referencia la aplicacioacuten web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

26

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Ciclo de vida de una aplicacioacuten web

El proceso para desarrollar empaquetar y ejecutar una aplicacioacuten web se puede resumir en

1 Desarrollar el coacutedigo de los componentes web2 Desarrollar un descriptor de despliegue (si fuera

necesario)3 Compilar los componentes de la aplicacioacuten web y

clases de ayuda referenciadas por estos componentes

4 Empaquetar la aplicacioacuten en una unidad desplegable (opcional)

5 Desplegar la aplicacioacuten en un contenedor web6 Acceder a la url que referencia la aplicacioacuten web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

26

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

IDEs

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

27

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

28

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Servlet

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

29

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

ServletsSesioacuten 2 Creacioacuten de Servlets 1 Contenedor de Servlets 2 Ciclo de vida de un Servlet 3 Despliegue de Servlets 4 Escribir compilar instalar y ejecutar un Java

Servlet 5 Servlet container y servlet API 6 Compartir datos entre Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

30

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Servlets Los servlets son objetos que corren dentro y fuera del

contexto de un contenedor de servlets (ejemplo Tomcat) y extienden su cuidado

La palabra servlet deriva de otra anterior applet que se referiacutea a pequentildeos programas que se ejecutan en el contexto de un navegador web Por contraposicioacuten

El uso maacutes comuacuten de los servlets es generar paacuteginas web de forma dinaacutemica a partir de los paraacutemetros de la peticioacuten que enviacutee el navegador web

Los Servlets son la alternativa Java a los CGIs Actuacutean como capa intermedia entre

Peticioacuten proveniente de un Navegador Web u otro cliente HTTP

Bases de Datos o Aplicaciones en el servidor HTTP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

31

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Servlets Son aplicaciones Java especiales que extienden lafuncionalidad del servidor HTTP dedicadas a

Leer los datos enviados por el cliente Extraer cualquier informacioacuten uacutetil incluida en la cabecera

HTTP o en el cuerpo del mensaje de peticioacuten enviado por el cliente

Generar dinaacutemicamente resultados Formatear los resultados en un documento HTML Establecer los paraacutemetros HTTP adecuados incluidos

en lacabecera de la respuesta (ejemplo el tipo de documentocookies etc)1048707 Enviar el documento final al cliente

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

32

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Ventajas de los Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

33

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Servlets

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

34

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Ciclo de Vida

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

35

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Ciclo de Vida Init

Se ejecuta una vez la primera vez que es invocado el servlet (el servlet se carga en memoria y se ejecuta soacutelo la primera vez que es invocado El resto de peticiones generan un hilo)

Service (no debe sobreescribirse) Se ejecuta cada vez que se produce una nueva peticioacuten Dentro de esta funcioacuten se invoca a doGet o a doPost

doGet y doPost Manejan las peticiones GET y POST Incluyen el coacutedigo principal del servlet La ejecucioacuten del servlet finalizaraacute cuando termine la

ejecucioacuten de estos meacutetodos

Destroy Se invoca cuando el servidor decide

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

36

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Contenedor de Servlets Un contenedor de Servlet es un programa capaz de

recibir peticiones de paacuteginas web y redireccionar estas peticiones a un objeto Servlet

1 El Browser pide una paacutegina al servidor HTTP que es un contenedor de Servlets

2 El contenedor de Servlets delega la peticioacuten a un Servlet en particular elegido de entre los Servlets que contiene

3 El Servlet que es una objeto java se encarga de generar el texto de la paacutegina web que se entrega al contenedor

4 El contenedor devuelve la paacutegina web al Browser que la solicitoacute

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

37

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Estructura Aplicacioacuten Web

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

38

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Servlet API Una interfaz de programacioacuten de aplicaciones o API

(Application Programming Interface) es el conjunto de funciones y procedimientos (o meacutetodos en la programacioacuten orientada a objetos) que ofrece cierta biblioteca

Para implementar los servlets se hace uso de javaxservlet javaxservlethttp Incluir postulados import

import javaio import javaxservlet import javaxservlethttp

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

39

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

40

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

41

WebServlet(name = Obtener urlPatterns = Obtener)

public class Obtener extends HttpServlet

protected void processRequest(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException

responsesetContentType(texthtmlcharset=UTF-8)

PrintWriter out = responsegetWriter()

try

String name=requestgetParameter(name)

tring email=requestgetParameter(email)

outprintln(lthtmlgt)

outprintln(ltheadgt)

outprintln(lttitlegtServlet Obtenerlttitlegt)

outprintln(ltheadgt)

outprintln(ltbodygt)

outprintln(ltdivgtEl nombre ingresado es ltdivgt+name)

outprintln(ltdivgtEl email ingresado es ltdivgt+email)

outprintln(ltbodygt)

outprintln(lthtmlgt)

finally

outclose()

URL relativo a la Webapp

Meacutetodo para tratar larecepcioacuten de un HTTP

Salida generada para enviar al navegador

Generacioacuten de texto

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Ejemplo

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

42

Resultado

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Preguntas

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

43

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

JSP Java Server Page

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

44

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

JSP (Java Server Page)Sesioacuten 3 JavaServer Pages (JSP) 1Definir queacute es una paacutegina JSP 2Variables impliacutecitas 3Objetivo de las libreriacuteas de tags 4Creacioacuten de tags baacutesicos 5Tags con paraacutemetros 6Tags con contenido 7Control de errores 8Escribir e instalar una paacutegina JSP 9Servlet vs JSP 10Los modelos de arquitectura de una aplicacioacuten con JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

45

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

JSP JSP es una especificacioacuten de Sun Microsystems Sirve para crear y gestionar paacuteginas web

dinaacutemicas Permite mezclar en una paacutegina coacutedigo HTML para

generar la parte estaacutetica con contenido dinaacutemico creado a partir de marcas especiales

El contenido dinaacutemico se obtiene en esencia gracias a la posibilidad de incrustar dentro de la paacutegina coacutedigo Java de diferentes formas

Su objetivo final es separar la interfaz (presentacioacuten visual) de la implementacioacuten (loacutegica de ejecucioacuten)

En servlets estaban mezclados

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

46

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

JSP La paacutegina JSP se convierte en un servlet La conversioacuten la realiza en la maacutequina servidora el

motor ocontenedor la primera vez que se solicita la paacutegina JSP Este servlet generado procesa cualquier peticioacuten para

esapaacutegina JSP Si se modifica el coacutedigo de la paacutegina JSP entonces seregenera y recompila automaacuteticamente el servlet y se recarga la proacutexima vez que sea solicitada

En servlets tendriacuteamos que modificar el coacutedigo fuente recompilar

y redesplegar nosotros

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

47

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Ventajas Mayor encapsulamiento

Uso de clases Uso de JavaBeans

Mayor escalabilidad Uso de tags similitud con HTML Mayor portabilidad Uso de un lenguaje estaacutendar y muy difundido Separacioacuten del contenido estaacutetico del dinaacutemico

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

48

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Ciclo de Compilacioacuten

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

49

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Variable Impliacutecitas

Variable Clase

pageContext javaxservletjspPageContext

request javaxservlethttpHttpServletRequest

response javaxservlethttpHttpServletResponse

session javaxservlethttpHttpSession

config javaxservletServletConfig

application javaxservletServletContext

out javaxservletjspJspWriter

page javalangObject

exception javalangException

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

50

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Custom Tag Library Los custom tags son elementoscomponentes que

encapsulan un comportamiento La idea que subyace detras de los custom tags es que

se elimine el coacutedigo Java en la paacutegina JSP El disentildeador podraacute usar estos custom tags sin saber

como estaacuten programados Los programadores seremos los encargados de proveer estos componentes para que sean usados

Esto implica que el coacutedigo Java estaraacute en clases por lo que el disentildeo seraacute mucho mas limpio

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

51

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Mi primer TAGVamos a desarrollar un tag que antildeada la firma de la empresa

ndash Creamos una nueva clase comdflanvintagFirmaTag que extienda TagSupport

ndash Antildeadimos un atributo privado name y su correspondiente meacutetodo setName()

ndash Implementamos el meacutetodo doEndTag()public int doEndTag( )

try pageContextgetOut( )println(ltbrgt+name +

ltbrgt------------------ltbrgtUniovies 2008)pageContextgetOut()println(ltbrgt+034985105094FAX +0349855094)

catch (IOException e) Ignore itreturn EVAL_PAGE

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

52

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Servlet vs JSP

Servlets Java con HTML embebido JSPs HTML con Java embebido

Semejanzas JSP son una extensioacuten de Servlets No aporta

funcionalidades nuevas Un JSP compilado es un Servlet Misma funcioacuten construir contenido dinaacutemico

Diferencias JSP separa maacutes claramente el disentildeo de la loacutegica Maacutes sencillo modificar coacutedigo HTML que miles de

sentencias println

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

53

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Modelo 1 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

54

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP

Modelo 2 Arquitectura JSP

SEMANA 1 Arquitectura de Aplicaciones J2EE - Ing Orlando Pihue Montoya

55

  • Arquitectura de Aplicaciones J2EE
  • Programa
  • Programa (2)
  • Tecnologiacuteas y lenguajes Web
  • Introduccioacuten JEE
  • Java EE
  • Versiones
  • Arquitectura multi-nivel(multi-tier)
  • Arquitectura multi-nivel(multi-tier) (2)
  • Componentes de Arquitectura
  • Componentes de Arquitectura (2)
  • Componentes de Arquitectura (3)
  • Contenedores
  • Contenedores (2)
  • Contenedores (3)
  • Tipos de contenedores Java EE
  • Tipos de contenedores Java EE (2)
  • Empaquetado de Aplicaciones JEE - Archivos EAR
  • Estructura EAR
  • Descriptores JEE
  • Despliegue de Aplicaciones
  • API Java EE - Container
  • API Java EE - Web Container
  • API Java EE - EJB Container
  • API Java EE - Application Client Container
  • Ciclo de vida de una aplicacioacuten web
  • IDEs
  • Preguntas
  • Servlet
  • Servlets
  • Servlets (2)
  • Servlets (3)
  • Ventajas de los Servlets
  • Servlets (4)
  • Ciclo de Vida
  • Ciclo de Vida (2)
  • Contenedor de Servlets
  • Estructura Aplicacioacuten Web
  • Servlet API
  • Ejemplo
  • Ejemplo (2)
  • Ejemplo (3)
  • Preguntas (2)
  • JSP Java Server Page
  • JSP (Java Server Page)
  • JSP
  • JSP (2)
  • Ventajas
  • Ciclo de Compilacioacuten
  • Variable Impliacutecitas
  • Custom Tag Library
  • Mi primer TAG
  • Servlet vs JSP
  • Modelo 1 Arquitectura JSP
  • Modelo 2 Arquitectura JSP