Actualizado el 22 de Agosto del 2018 (Publicado el 18 de Enero del 2018)
2.033 visualizaciones desde el 18 de Enero del 2018
2,0 MB
70 paginas
Creado hace 16a (19/06/2007)
Desarrollo de aplicaciones
Desarrollo de aplicaciones
Java EE con Struts 2, Spring y
Java EE con Struts 2, Spring y
EJB 3.0
EJB 3.0
© 2007, Grupo Salenda, S.L.
¿Qué es J2EE?
¿Qué es J2EE?
j
d
ifi i
• Conjunto de especificaciones y prácticas
á i
que permiten desarrollar, desplegar y
q p
p g y
gestionar aplicaciones multicapa” – Sun
Microsystems.
Microsystems.
• Lógica dividida en componentes.
• Componentes divididos en capas.
2
Componentes J2EE
Componentes J2EE
C
• Componentes software autocontenidos.
• Ensamblados en una aplicación J2EE, con sus
id
ft
t
t
t
fi h
l
clases y ficheros relacionados.
i
• Tipos de componentes:
p
– Clientes de la aplicación y applets – se ejecutan en
d
p
l
– Componentes web (JSP & Servlet) – se ejecutan en
el cliente.
el servidor.
– Componentes de negocio (EJB) – se ejecutan en el
l
d
(
)
j
i
servidor.
3
Clientes J2EE
Clientes J2EE
• Clientes web (aka “Clientes ligeros”)
• Clientes web (aka Clientes ligeros ).
– Páginas web dinámicas – generadas por
componentes web de la capa Web
componentes web de la capa Web.
– Navegador web – renderiza las páginas recibidas del
servidor.
• Aplicaciones cliente (aka “Clientes
pesados”).
– Interfaz de usuario (Swing / AWT / SWT).
– Se ejecutan en el PC del cliente.
– Acceden directamente a los componentes de
di
d
t
t
l
t
d
A
negocio
4
Capas de J2EE
Capas de J2EE
5
Contenedores J2EE
Contenedores J2EE
f
t
• Interfaz entre un componente y la
I t
l
funcionalidad de bajo nivel de la
l t f
plataforma que soporta ese componente.
• Tipos:p
t
t
t
– Servidor J2EE – proporciona contenedores web y
– Contenedor de EJB’s – gestiona la ejecución de
– Contenedor web – gestiona la ejecución de JSP’s
EJB.
J
EJB’s.
J
y Serlvets.
y
6
Contenedores J2EE
Contenedores J2EE
7
Empaquetado
Empaquetado
• Módulo uno o más componentes J2EE para el
• Módulo: uno o más componentes J2EE para el
• Tipos de módulos:
mismo tipo de contenedor + descriptor.
• Descriptor de despliegue (DD): documento XML
Descriptor de despliegue (DD): documento XML
que describe las propiedades de despliegue de un
módulo.
d
i
– EJB’s: .jar
– Web: .war
Web war
– Resource Adapter: .rar
– Cliente de la aplicación: .jar
Cliente de la aplicación: .jar
ód l
• Un fichero EAR contiene una aplicación J2EE, que
puede estar compuesta por uno o varios módulos
8
Servidores de aplicaciones
Servidores de aplicaciones
• Software que ayuda al desarrollo despliegue
• Software que ayuda al desarrollo, despliegue
y control de aplicaciones empresariales
(distribuidas)
(distribuidas).
• Sirven como contenedores de los
componentes de una aplicación J2EE
componentes de una aplicación J2EE
• Provee middleware para acceso a servicios
y
subyacentes
– Seguridad
– Persistencia
– Acceso a datos
– …
9
Arquitectura de un servidor de
aplicaciones
10
Contenedores de aplicaciones
Contenedores de aplicaciones
•
•
E i t
h
Existen muchos servidores de aplicaciones
– Comerciales
id
d
li
i
• WebSphere (IBM)
• WebLogic (BEA Systems)
• Oracle AS (Oracle Corp)
– Libres
JBboss (JBoss Inc)
•
• Tomcat (Apache Foundation)
•
Jonas (ObjectWeb)
Jonas (ObjectWeb)
Comparativa de servidores de aplicaciones
– http://en.wikipedia.org/wiki/Matrix_of_Application_Servers#Java
http://en wikipedia org/wiki/Matrix of Application Servers#Java
11
Servidores de aplicaciones
Servidores de aplicaciones
d
l
• Todos los comerciales ofrecen
i
– Contenedores de jsp’s y servlets
j p y
– Contenedores de EJB’s
– Funcionalidades añadidas (dependiendo del
Funcionalidades añadidas (dependiendo del
vendedor)
t
• Existen otros servidores de aplicaciones
E i t
que solo ofrecen contenedor de jsp’s y
servlets (tomcat)
id
li
i
l
f
d
12
• Extienden la funcionalidad de un servidor
lid d d
id
d
f
l
i
• Componentes ejecutables en un contenedor
bl
d
j
• Encargados de escuchar a las peticiones de
Servlets
Servlets
E ti
web
web
un cliente
un cliente
• Encargados de responder a las peticiones de
• Mejor rendimiento que CGI : uso de threads
13
JSPJSP
• Separacion entre logica de negocio y
d
l
i
i
i
presentacion
p
• Facil mantenimiento
• Basado en la tecnologia de servlets
l t
l
• Orientado a la logica de presentacion
i d
p
B
d
g
t
l
14
Servlets en el servidor web
Servlets en el servidor web
• Diagrama de despliegue de un servidor
d d
id
i
li
d
web con un contenedor web:
15
Ejecución de los servlets
Ejecución de los servlets
• Para una petición:
i ió
• Para ‘n’ peticiones
Para n peticiones
16
Ventajas y desventajas de los
Servlets
• Ventajas:
t j
V
– Prestaciones (los threads son más rápidos y ligeros
que los procesos)
que los procesos)
El l
j
J
– Escalable
– El lenguaje Java es orientado a objetos y robusto.
bj t
– El lenguaje Java es multiplataforma
D
– ¿Cómo separar la lógica de negocio y la
• Desventajas:
b t
t j
i
t d
presentación?
ió ?
t
– Cuestiones de concurrencia
17
Tecnología JavaServer Pages (JSP)
Tecnología JavaServer Pages (JSP)
•
l
till
d
á i
ódi
HTML
L
Las plantillas de código son como páginas HTML estáticas, pero con
código Java embebido para permitir la generación dinámica de
datos y HTML.
• Ejemplo:
<table border="1" cellspacing="0" cellpadding=’5’>
<tr><th>number</th><th>squared</th></tr>
<% for ( int i=0; i<10; i++ ) { %>
táti
p
p
g
g
<tr><td><%= i %></td>
<td><%= (i * i) %></td></tr>
(
)
<% } %>
</table>
18
Ventajas y desventajas de las JSP
Ventajas y desventajas de las JSP
• Ventajas:
j
– Todas las ventajas que tienen los servlets: Altas
q
j
prestaciones, escalabilidad, independencia de
plataforma, etc.
p
,
• Desventajas:
l
d
á i
– Si sólo se emplean páginas JSP, el código de
Si ól
script que realiza la lógica de negocio puede
llegar a ser demasiado grande conf so
llegar a ser demasiado grande y confuso,
haciendo difícil su depuración
JSP l ódi
19
Diagrama de secuencia de una
petición GET
20
Resumen
Resumen
• Puedes usar un componente de la vista para presentar datos
• Puedes usar un componente de la vista para presentar datos,
mostrar un formulario, mensajes de información y demás.
• El protocolo HTTP proporciona un mecanismo para solicitar
vistas tanto estáticas como dinámicas
vistas tanto estáticas como dinámicas
• El contenedor web intercepta las peticiones HTTP y activa el
servlet que sea necesario
l
• Se puede desarrollas una clase servlet que implemente el
l
d d
ll
l
i
l
método doGet para procesar una petición
p
• Se puede acceder a la información de la petición del
p
inputstream a través del objeto request provisto por el
l
contenedor.
g
• Se puede generar una vista escribiendo directamente en el
outputstream del objeto request provisto por el contenedor
d l b
p
21
Integración de Servlets y JSP
Integración de Servlets y JSP
El Patrón MVC
El Patrón MVC
El patrón MVC
El patrón MVC
© 2007, Grupo Salenda, S.L.
¿Porqué combinar Servlets y JSP?
¿Porqué combinar Servlets y JSP?
i
f
ili
i
í
y
• Escenario típico: usar JSP para facilitar el
l
desarrollo y mantenimiento del contenido
HTML
– Para código dinámico simple invocar código
Para código dinámico simple, invocar código
servlet desde elementos de script.
– Para aplicaciones un poco más complejas, usar
Para aplicaciones un poco más complejas usar
clases propias invocadas desde elementos de
script
script.
23
¿Porqué combinar Servlets y JSP?
¿Porqué combinar Servlets y JSP?
• Pero eso no es suficiente
fi i
– Para procesamiento complejo, empezar con JSP
p j ,
p
p
J
es una mala aproximación
– A pesar de la facilidad de separar el código real
A pesar de la facilidad de separar el código real
en clases separadas, beans y custom tags,
asumir que una JSP es una solapágina
asumir que una JSP es una solapágina
24
Posibilidades para manejar una
sola petición
• Arquitectura MVC. Necesaria cuando:
p
– Una sola petición puede derivar en múltiples
d
i
i
p
p
resultados diferentes.
– Existe un gran equipo de desarrollo con
Existe un gran equipo de desarrollo con
funciones bien separadas.
– Se realiza un procesamiento complicado de los
Se realiza un procesamiento complicado de los
datos.
25
Patrón MVC
Patrón MVC
Modelo
Vi t
Vista
C
Controlador
l d
t
¿Qué es Apache Struts?
¿Qué es Apache Struts?
• ¿Un framework MVC?
k
f
p
– Struts provee un framework unificado para el
despliegue de aplicaciones web que usan la
arquitectura MVC.
q
p
• ¿Una colección de utilidades?
– Stuts provee una serie de clases de utilidades
St t
para manejar las tareas comunes del desarrollo
de aplicaciones eb
de aplicaciones web
tilid d
i d
d
l
27
¿Qué es Apache Struts?
¿Qué es Apache Struts?
• ¿Un conjunto de librerías de etiquetas
d lib
j
í
d
i
personalizadas ?
p
– Struts provee librerías de etiquetas
personalizadas para mostrar propiedades de
personalizadas para mostrar propiedades de
beans, generar formularios HTML …
28
Ventajas de Struts
Ventajas de Struts
• Configuración basada en archivos
ió b
fi
d
hi
centralizados:
– Archivos XML.
• Form beans
• Form beans.
• Bean tags:
– Tags de acceso a las propiedades de los beans.
• HTML tags:
• HTML tags:
– Asocia formularios HTML con beans.
29
Ventajas de Struts
Ventajas de Struts
• Validación de formularios.
lid ió d f
l
i
• Aproximación consistente con el patrón
MVCMVC.
30
Desventajas de Struts
Desventajas de Struts
d
• Mayor curva de aprendizaje
j
• Peor documentación:
Peor documentación:
– Comparada con la documentación standard de
di
servlets y JSP’s
servlets y JSP s.
• Menor transparencia:
– El framework añade mayor complejidad
• Aproximación rígida:
Aproximación rígida:
– Con Struts es muy difícil usar algo distinto a MVC.
31
Control de flujo de Struts
Control de flujo de Struts
JSP
Form
Determina
r Acción
r Acción
Action
Elegir JSP
JSP
32
Ejemplo: Action java
Ejemplo: Acti
Comentarios de: Desarrollo de aplicaciones Java EE con Struts 2, Spring y EJB 3.0 (0)
No hay comentarios