2. Agenda
Introducción a las aplicaciones J2EE.
Tecnologías propuestas por J2EE.
Trabajo con páginas web (Servlets - JSP).
Todo lo demás
3. Java Enterprise Edition
Es una especificación creada por Sun
Microsystems™.
Es un modelo para el desarrollo de aplicaciones
distribuidas y multitier.
Está basado en componentes, contenedores y
servicios de plataforma.
4. Ventajas de J2EE
Libertad de elección.
Productividad en el desarrollo de herramientas
de arquitectura.
Aplicaciones de servidor multiplataforma.
Uso de tecnologías estándar (HTTP, XML,
Servicios Web, etc.).
5. Arquitectura Multicapa
¿Qué es una capa?
¿Por qué multicapa?
Ejemplos:
− Arquitectura de dos capas: en una de ellas habrá
interfaces y lógica de negocio y en otra objetos
reutilizables (muy inestable).
− Arquitectura de tres capas: En una capa se ubican las
interfaces, en otra la lógica de negocio y en la última todos
los componentes reutilizables.
6. Capas J2EE
CAPA CLIENTE
CAPA WEB
CAPA EJB (Enterprise Java
Beans)
CAPA EIS (Enterprise
Information System)
Interfaces,
componentes de
presentación - Applets
Componentes de
Negocio
DBMS
JSP-Servlets
7. Capas Cliente - Web
En esta capa se agrupan todos las aplicaciones, paquetes y applets que serán utilizados en
forma remota por todos los “usuarios” de nuestro sistema. Todo lo que contendrá serán
archivos JAR.
En esta capa se agrupan todos las aplicaciones que interactuarán con los usuarios del
sistema, pero vía web.
Los componentes definidos por J2EE en esta capas son las Java Server Pages y los Java
Servlets, HTML, XML. Generalmente los agrupamos en archivos WAR
CAPA CLIENTE
CAPA WEB
8. Capas EJB - EIS
En esta capa se agrupan todos los componentes que manejan la lógica de negocio en
nuestro sistema. Estarán empaquetados en archivos JAR. Esta capa brinda servicios de
Seguridad, pooling de conexiones, hilos, protocolos de objetos distribuidos y Persistencia.
Esta capa es la encargada de manejar sistemas de soporte e incluye sistemas de
planificación de recursos, manejo de transacciones en mainframe, sistemas legacy y por
supuesto, acceso a bases de datos.
CAPA EJB (Enterprise Java
Beans)
CAPA EIS (Enterprise
Information System)
9. Elementos de J2EE
Componentes Contenedores Servicios
J2SE
Application Clients
Applets
Servlets, JSP, filtros, web
event listeners
Enterprise Java Beans
HTTP, HTTPS
Java Transaction API (JTA)
RMI, IDL
JDBC
Java Message Service
(JMS)
Java Naming and Directory
Interface (JNDI)
Java Mail, JavaBeans
Activation Framework
(JAF)
JAXP, Web Services
Seguridad
Los componentes
interactúan entres sí a
través de contenedores
Soporte en tiempo de
ejecución a los
componentes
Interfaz entre componente
y bajo nivel
11. Acerca de los contenedores
Son la interfaz entre un componente y una
funcionalidad de bajo nivel y específica de una
plataforma.
Proveen soporte en tiempo de ejecución de los
componentes.
Los componentes interactúan entre sí sólo a través de
contenedores.
El soporte que provee en tiempo de ejecución se llama
servicios.
12. Algunos servicios que brindan
HTTP, HTTPS
Java Transaction API (JTA)
RMI, IDL
JDBC API
Java Message Service (JMS)
Java Naming and Directory Interface (JNDI)
Java Mail, JavaBeans Activation Framework (JAF)
Procesamiento de XML, Web Services
Seguridad
14. Ciclo de Vida de Aplicaciones Web
Aplicación J2EE
Servlet JSPHTML
Clases de Negocio
Apache Tomcat
Clientes ServidorRed
Petición HTTP
Respuesta HTTP
• El cliente envía una petición de servicio a la aplicación por medio de una red con protocolo HTTP.
• El Servidor de aplicaciones verifica la procedencia y la existencia de la aplicación. Si existe, le pasa la
responsabilidad de manejar la petición.
• La aplicación retorna un resultado en formato HTTP por medio del Servidor.
19. • Es una unidad ejecutable de recursos web.
• Puede contener imágenes, html, servlets, JSP,
JavaBeans, clases de negocio, applets, clases de
acceso a bases de datos, etc.
• Tiene una estructura de directorios específica
cuya raíz se denomina document root.
• El módulo puede desplegarse con su estructura
de directorios o en un archivo WAR.
Módulo Web
20. Estructura de directorios
Document root: contiene JSPs, HTML,
imágenes, applets, flash, etc.
web.xml: es un descriptor de despliegue. Sirve
para que el contenedor pueda “desplegar” la
aplicación.
classes: en el se almacenan los servlets,
clases de utilidad, JavaBeans con sus
respectivas estructuras de directorios
simbolizando paquetes.
lib: todos los archivos JAR que necesitemos,
como por ejemplo Log4J, drivers JDBC,
JARs de negocio, etc.
tags: todos los archivos de etiquetas utilizados
en JSPs.
21. • Son clases de Java que se escriben con el
propósito de utilizar las capacidades de servidores
de aplicaciones.
• Estas clases deben implementar la interfaz
javax.servlet.Servlet
• Si bien no están pensados para un único
protocolo, el más usado es HTTP. (clase
javax.servlet.http.HttpServlet)
• Su ciclo de vida es controlado por el contenedor.
• Son multihilo.
Servlets
22. Ciclo de vida ¿Existe una
instancia del
Servlet?
Se carga la
clase del
Servlet
Se instancia
el Servlet
Se inicializa
llamando a
init()
Se invoca el método de
servicio, pasando los objetos
request y response
NO
SI
Contenedor
Peticion HTTP
Respuesta HTTP
28. Ciclo de vida
R e c i b i r P e t i c i ó n
¿ E x i s t e e l S e r v l e t
d e l J S P ?
C i c l o d e v i d a
d e S e r v l e t
P r o c e s a r J S P
G e n e r a r S e r v l e t
C o m p i l a r s e r v l e t
E n v i a r R e s p u e s t a
S I
N O
29. Hasta ahora:
• Servlets
• JSP
Directivas
Expresiones
Scriptlets
• Expression Language
• JSTL (Java Standard Tags Library)
30. ¿Cómo encaro una aplicación web?
C o n t r o l a d o r M o d e l oV i s t a
A p lic a c ió n
A p p le t
js p
S e r v le t
A c t io n
A c t io n
A c t io n
A c t io n
A c t io n
O b j e t o d e
N e g o c i o
O b j e t o d e
N e g o c i o
O b j e t o d e
N e g o c i o
O b j e t o d e
N e g o c i o
O b j e t o d e
N e g o c i o
31. Frameworks - Templates - Herramientas
M o d e l o V i s t a C o n t r o l a d o r
S t r u t s
S p r i n g
J S F
T e m p l a t e s
T i l e s V e l o c i t y
F r e e M a k e r
P e r s i s t e n c i a
J P A I B a t i s
H ib e r n a t e
32. ¿Todavía hay más cosas?
• EJB
• JMS
• Web Services
• XML
• Transactions
• Connectors
• AJAX