Você está na página 1de 55

Lenguaje de Programacin III

Arquitectura de Aplicaciones J2EE

Programa
SEMANA 1: Arquitectura de Aplicaciones J2EE
Sesin 1.
1.Introduccin y motivaciones de J2EE
2.Servicios ofrecidos por un contenedor J2EE
3.Versiones de J2EE
4.Capas J2EE
5.Empaquetado y despliegue de aplicaciones J2EE
6.Descriptores de despliegue
Sesin 2. Creacin 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

Programa
Sesin 3. JavaServer Pages (JSP)
1.Definir qu es una pgina JSP
2.Variables implcitas
3.Objetivo de las libreras de tags
4.Creacin de tags bsicos
5.Tags con parmetros
6.Tags con contenido
7.Control de errores
8.Escribir e instalar una pgina JSP
9.Servlet vs. JSP
10.Los modelos de arquitectura de una aplicacin con JSP

SEMANA 1: Arquitectura de Aplicaciones J2EE

Tecnologas y lenguajes Web


Java
ASP.NET
PHP
Perl
Ruby
Python

SEMANA 1: Arquitectura de Aplicaciones


J2EE

Introduccin JEE
VP BU

Reportes en linea
BI Business Intellegence,
JasperReport, Crystal Report.

CIO

Presentacion

Produccion
Ventas
Presupuesto

JSP,JSF,Strust

Ventas Marketing

Proyectos

Gerencia

Internet Information
Services o IIS
Business Intelligence
RMI

SERVICIOS
INDUSTRIALES

COMERCIAL

IBM WebSphere
Application Server

JBoss
Missed orders

CLIENTES

Modificar
Orden
Vendedores

Retornar
Orden

Servicio Cliente
Nuevos Usuarios

Nuevos Usuarios
Servicios en
Linea : Web
Services, EJBs,
Portales

Nuevos Usuarios
EJBs, RMI, JNDI.

Introduccin: Arquitectura de Aplicaciones J2EE

Servicios en Linea :
Web Services, CORBA,
Portales.

Java EE
Java EE (Java Enterprise Edition): Plataforma Java para el
desarrollo de aplicaciones empresariales.
Interaccin con diversas fuentes de datos.
Interaccin con otros sistemas (actuales y/o legados).
Acceso Web (jsp y servlet).
Concurrencia.
Alta carga de procesamiento.
Usuarios con diferentes perfiles.
Requerimientos de seguridad.
Provee un ambiente de ejecucin y un conjunto de APIs:
Servlets, JSP, JSF, EJB, JMS, JDBC, JPA, JNDI,JavaMail, JAXB,
JAXP, JAX-WS, etc.
SEMANA 1: Arquitectura de Aplicaciones
J2EE

Versiones

SEMANA 1: Arquitectura de Aplicaciones


J2EE

Arquitectura multi-nivel(multi-tier)

SEMANA 1: Arquitectura de Aplicaciones


J2EE

Arquitectura multi-nivel(multi-tier)
Define una infraestructura comn bsica para el acceso a
bases de datos, gestin de la persistencia, control de
seguridad, gestion de transacciones.
Separacin clara entre presentacin (interfaz), modelo
(lgica) de negocio y datos.
Plataforma basada en componentes

Entes (objetos) intercambiables que residen en un servidor de


aplicaciones y son gestionados por el.
http://java.sun.com/javaee/

SEMANA 1: Arquitectura de Aplicaciones


J2EE

Componentes de Arquitectura
Clientes de la aplicacin
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 presentacin de datos en formato
HTML.
Suelen apoyarse en el uso de componentes Java Beans.

SEMANA 1: Arquitectura de Aplicaciones


J2EE

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 lgica
de la aplicacin.
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 informacin permanente del sistema.


Bases de datos o aplicaciones empresariales heredadas (legacy
systems) que actan como almacenes de datos.

SEMANA 1: Arquitectura de Aplicaciones


J2EE

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

12

Contenedores

SEMANA 1: Arquitectura de Aplicaciones


J2EE

13

Contenedores
Simplifican el desarrollo de los componentes ocultando los
detalles complejos.
Sus tareas concretas depende de la capa a la que
pertenezcan.
Ofrecen 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

14

Contenedores
Un 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

15

Tipos de contenedores Java EE


Servidor de Aplicaciones Java EE: entorno de ejecucin
de aplicaciones JEE.
Proporciona el contenedor Web y/o el contenedor de EBJs

Contenedor EBJ (Enterprise Java Beans): gestiona la


ejecucin (ciclo de vida) de los EJBs.
Da soporte a los componentes que implementan la capa de lgica
de negocio.
Ofrece servicios de control de acceso y seguridad, control de
transacciones y ejecucin concurrente, etc

SEMANA 1: Arquitectura de Aplicaciones


J2EE

16

Tipos de contenedores Java EE


Contenedor Web: gestiona la ejecucin de los servlets y
paginas JSP.

Da soporte a los componentes que implementan la


capa Web.
API de Servlets, APIs JSP, JSTL, JSF, JavaBeans.
Ejemplos libres: Tomcat, Jetty.
Contenedor aplicacin cliente: ofrece la infraestructura
necesaria para la ejecucin del cliente

SEMANA 1: Arquitectura de Aplicaciones


J2EE

17

Empaquetado de Aplicaciones
JEE - Archivos EAR
Los archivos EAR (Enterprise Archive) es un formato utilizado
en la arquitectura JEE para desplegar de manera coherente y
simultnea varios mdulos en un servidor de aplicaciones.
Contiene archivos XML denominados descriptores de
despliegue que describen como desplegar los mdulos
contenidos en el paquete EAR.

Aplicacin/es
web java
empaquetadas
en WAR

Objetos
distribuidos
EJB
empaquetados
en JAR

SEMANA 1: Arquitectura de Aplicaciones


J2EE

Aplicacin
empresarial
JEE (Archivo
EAR).

18

Estructura EAR

SEMANA 1: Arquitectura de Aplicaciones


J2EE

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 ejecucin (runtime
deployment descriptor):
configuran opciones del entorno
de ejecucin de nuestra
aplicacin empresarial, tales
como las opciones de cach en
el servidor
SEMANA 1: Arquitectura de Aplicaciones
J2EE

20

Despliegue de Aplicaciones

SEMANA 1: Arquitectura de Aplicaciones


J2EE

21

API Java EE - Container


Java EE APIs in the Web Container

SEMANA 1: Arquitectura de Aplicaciones


J2EE

22

API Java EE - Web Container

SEMANA 1: Arquitectura de Aplicaciones


J2EE

23

API Java EE - EJB Container

SEMANA 1: Arquitectura de Aplicaciones


J2EE

24

API Java EE - Application Client


Container

SEMANA 1: Arquitectura de Aplicaciones


J2EE

25

Ciclo de vida de una aplicacin


web
El proceso para desarrollar, empaquetar y ejecutar una
aplicacin web se puede resumir en:
1. Desarrollar el cdigo de los componentes web.
2. Desarrollar un descriptor de despliegue (si fuera necesario).
3. Compilar los componentes de la aplicacin web y clases de
ayuda referenciadas por estos componentes.
4. Empaquetar la aplicacin en una unidad desplegable
(opcional).
5. Desplegar la aplicacin en un contenedor web.
6. Acceder a la url que referencia la aplicacin web.
SEMANA 1: Arquitectura de Aplicaciones
J2EE

26

IDEs

SEMANA 1: Arquitectura de Aplicaciones


J2EE

27

Preguntas?

SEMANA 1: Arquitectura de Aplicaciones


J2EE

28

Servlet

SEMANA 1: Arquitectura de Aplicaciones


J2EE

29

Servlets
Sesin 2. Creacin 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

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
refera a pequeos programas que se ejecutan en el
contexto de un navegador web. Por contraposicin.
El uso ms comn de los servlets es generar pginas web de
forma dinmica a partir de los parmetros de la peticin que
enve el navegador web.
Los Servlets son la alternativa Java a los CGIs.
Actan como capa intermedia entre:

Peticin proveniente de un Navegador Web u otro cliente HTTP.


Bases de Datos o Aplicaciones en el servidor HTTP
SEMANA 1: Arquitectura de Aplicaciones
J2EE

31

Servlets
Son aplicaciones Java especiales, que extienden la
funcionalidad del servidor HTTP, dedicadas a:

Leer los datos enviados por el cliente.


Extraer cualquier informacin til incluida en la cabecera HTTP o
en el cuerpo del mensaje de peticin enviado por el cliente.

Generar dinmicamente resultados.


Formatear los resultados en un documento HTML.
Establecer los parmetros HTTP adecuados incluidos en la
cabecera de la respuesta (ejemplo: el tipo de documento,
cookies, etc.)
Enviar el documento final al cliente.

SEMANA 1: Arquitectura de Aplicaciones


J2EE

32

Ventajas de los Servlets

SEMANA 1: Arquitectura de Aplicaciones


J2EE

33

Servlets

SEMANA 1: Arquitectura de Aplicaciones


J2EE

34

Ciclo de Vida

SEMANA 1: Arquitectura de Aplicaciones


J2EE

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 slo 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 peticin.


Dentro de esta funcin se invoca a doGet o a doPost.

doGet y doPost

Manejan las peticiones GET y POST.


Incluyen el cdigo principal del servlet
La ejecucin del servlet finalizar cuando termine la ejecucin de
estos mtodos.

Destroy

Se invoca cuando el servidor decide


SEMANA 1: Arquitectura de Aplicaciones
J2EE

36

Contenedor de Servlets
Un contenedor de Servlet es un programa capaz de recibir
peticiones de pginas web y redireccionar estas peticiones a
un objeto Servlet.
1. El Browser pide una pgina al servidor HTTP que es un contenedor
de Servlets.
2. El contenedor de Servlets delega la peticin 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 pgina web que se entrega al contenedor.
4. El contenedor devuelve la pgina web al Browser que la solicit.

SEMANA 1: Arquitectura de Aplicaciones


J2EE

37

Estructura Aplicacin Web

SEMANA 1: Arquitectura de Aplicaciones


J2EE

38

Servlet API
Una interfaz de programacin de aplicaciones o API
(Application Programming Interface) es el conjunto de
funciones y procedimientos (o mtodos, en la programacin
orientada a objetos) que ofrece cierta biblioteca.
Para implementar los servlets se hace uso de:

javax.servlet
javax.servlet.http
Incluir postulados import:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

SEMANA 1: Arquitectura de Aplicaciones


J2EE

39

Ejemplo

SEMANA 1: Arquitectura de Aplicaciones


J2EE

40

Ejemplo

URL relativo a
la Webapp

@WebServlet(name = "Obtener", urlPatterns = {"/Obtener"})


public class Obtener extends HttpServlet {

protected void processRequest(HttpServletRequest request, HttpServletResponse response)


throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");

PrintWriter out = response.getWriter();

Mtodo para tratar la


recepcin de un HTTP

try {
String name=request.getParameter("name");
tring email=request.getParameter("email");
out.println("<html>");
out.println("<head>");

out.println("<title>Servlet Obtener</title>");

Salida generada para


enviar al navegador

out.println("</head>");
out.println("<body>");
out.println("<div>El nombre ingresado es: </div>"+name);
out.println("<div>El email ingresado es: </div>"+email);
out.println("</body>");
out.println("</html>");

out.close();

Generacin de
texto

finally {
}
}

SEMANA 1: Arquitectura de Aplicaciones


J2EE

41

Ejemplo

Resultado

SEMANA 1: Arquitectura de Aplicaciones


J2EE

42

Preguntas?

SEMANA 1: Arquitectura de Aplicaciones


J2EE

43

JSP
Java Server Page

SEMANA 1: Arquitectura de Aplicaciones


J2EE

44

JSP (Java Server Page)


Sesin 3. JavaServer Pages (JSP)
1.Definir qu es una pgina JSP
2.Variables implcitas
3.Objetivo de las libreras de tags
4.Creacin de tags bsicos
5.Tags con parmetros
6.Tags con contenido
7.Control de errores
8.Escribir e instalar una pgina JSP
9.Servlet vs. JSP
10.Los modelos de arquitectura de una aplicacin con JSP
SEMANA 1: Arquitectura de Aplicaciones
J2EE

45

JSP
JSP es una especificacin de Sun Microsystems.
Sirve para crear y gestionar pginas web dinmicas.
Permite mezclar en una pgina cdigo HTML para generar la
parte esttica, con contenido dinmico creado a partir de
marcas especiales.
El contenido dinmico se obtiene, en esencia, gracias a la
posibilidad de incrustar dentro de la pgina cdigo Java de
diferentes formas.
Su objetivo final es separar la interfaz (presentacin visual)
de la implementacin (lgica de ejecucin).

En servlets estaban mezclados.

SEMANA 1: Arquitectura de Aplicaciones


J2EE

46

JSP
La pgina JSP se convierte en un servlet.
La conversin la realiza en la mquina servidora el motor o
contenedor la primera vez que se solicita la pgina JSP.
Este servlet generado procesa cualquier peticin para esa
pgina JSP.
Si se modifica el cdigo de la pgina JSP, entonces se
regenera y recompila automticamente el servlet y se recarga
la prxima vez que sea solicitada.

En servlets, tendramos que modificar el cdigo fuente, recompilar


y redesplegar nosotros.

SEMANA 1: Arquitectura de Aplicaciones


J2EE

47

Ventajas
Mayor encapsulamiento:

Uso de clases
Uso de JavaBeans

Mayor escalabilidad
Uso de tags: similitud con HTML
Mayor portabilidad
Uso de un lenguaje estndar y muy difundido.
Separacin del contenido esttico del dinmico.

SEMANA 1: Arquitectura de Aplicaciones


J2EE

48

Ciclo de Compilacin

SEMANA 1: Arquitectura de Aplicaciones


J2EE

49

Variable Implcitas
Variable

Clase

pageContext

javax.servlet.jsp.PageContext

request

javax.servlet.http.HttpServletRequest

response

javax.servlet.http.HttpServletRespons
e

session

javax.servlet.http.HttpSession

config

javax.servlet.ServletConfig

application

javax.servlet.ServletContext

out

javax.servlet.jsp.JspWriter

page

java.lang.Object

exception

java.lang.Exception

SEMANA 1: Arquitectura de Aplicaciones


J2EE

50

Custom Tag Library


Los custom tags son elementos/componentes que encapsulan
un comportamiento.
La idea que subyace detras de los custom tags es que se
elimine el cdigo Java en la pgina JSP.
El diseador podr usar estos custom tags sin saber como
estn programados. Los programadores seremos los
encargados de proveer estos componentes para que sean
usados.
Esto implica que el cdigo Java estar en clases, por lo que
el diseo ser mucho mas limpio.

SEMANA 1: Arquitectura de Aplicaciones


J2EE

51

Mi primer TAG
Vamos a desarrollar un tag que aada la firma de la empresa.
Creamos una nueva clase com.dflanvin.tag.FirmaTag que extienda
TagSupport
Aadimos un atributo privado name y su correspondiente mtodo
setName().
Implementamos el mtodo doEndTag():
public int doEndTag( ) {
try {
pageContext.getOut( ).println("<br>"+name +
"<br>------------------<br>Uniovi.es @ 2008");
pageContext.getOut().println(
"<br>+034985105094/FAX: +0349855094");
}
catch (IOException e) {} // Ignore it
return EVAL_PAGE;
}

SEMANA 1: Arquitectura de Aplicaciones


J2EE

52

Servlet vs JSP
Servlets: Java con HTML embebido.
JSPs: HTML con Java embebido.

Semejanzas:
JSP son una extensin de Servlets. No aporta
funcionalidades nuevas.
Un JSP compilado es un Servlet.
Misma funcin: construir contenido dinmico.
Diferencias:
JSP separa ms claramente el diseo de la lgica
Ms sencillo modificar cdigo HTML que miles de
sentencias println.
SEMANA 1: Arquitectura de Aplicaciones
J2EE

53

Modelo 1 Arquitectura JSP

SEMANA 1: Arquitectura de Aplicaciones


J2EE

54

Modelo 2 Arquitectura JSP

SEMANA 1: Arquitectura de Aplicaciones


J2EE

55

Você também pode gostar