SlideShare una empresa de Scribd logo
1 de 38
Plataforma Java 
Antonio J. Contreras 
EASP 2008
Indice 
 Java 
 Frameworks 
 IDEs 
 Servidores y contenedores 
 Desarrollo con Netbeans
Java 
 No es solo un lenguaje de 
programación. 
 Es un batiburrillo de lenguaje + 
especificaciones + frameworks 
 Algunos conceptos
Algunos Conceptos 
 Jsp (aspx): página compilada dinámicamente 
 Servlet: implementación Java de un cgi. Se diferencia 
de este en que no es un proceso independiente. Se 
ejecuta en la jvm. 
 Los dos anteriores son la base de muchos frameworks 
web 
 Bean: instancia de una clase referenciable por su 
nombre. (uso de java reflection) 
 Container: “Ente” que es capaz de ejecutar objetos y 
aplicaciones java. Las aplicaciones no se ejecutan de 
forma autónoma fuera del container Puede proveer 
funcionalidad añadida a la aplicación: datasources,etc. 
 Framework: colección de bibliotecas a las que se les 
pone un nombre. Aparte, pueden cambiar la filosofía 
de trabajo: i.e. Spring
Java [0]
Java [1] 
 JVM: maquina virtual java (vs. CLR) 
 JRE: runtime para ejecutar aplicaciones 
java. En definitiva es un interprete de 
Bytecode (vs. MSIL) 
 JDK: kit de desarrollo java. Incluye el JRE 
+ algunas herramientas: javac, jar, etc. A 
partir de la v1.2, se distinguió entre J2SE, 
J2EE y J2ME, dependiendo de su 
orientación. La versión actual ha perdido el 
2 y el 1., denominándose Java 6 SE, EE, ME
Java[1] 
 Plataformas Java: SDK + API 
 Java SE: plataforma estándar de Java 
para desarrollo de aplicaciones de 
propósito general 
 Java EE: Java SE + especificaciones de 
desarrollo de aplicaciones en servidor 
(distribuidas, multicapa) 
 Java ME: Desarrollo de aplicaciones 
móviles y empotradas.
Java [3] 
 Java Community Proccess: proceso 
formalizado para la definición de 
futuras versiones y características de 
la plataforma Java.
Frameworks 
 Multitud de ellos con diferentes 
objetivos. Basados en lenguaje Java 
& XML (la mayoría) 
 Libre uso y propietarios 
 Fundación Apache bastante activa 
 Algunos intentan relajar la rigidez de 
la especificación original (i.e. Spring) 
 Hincapié en Frameworks Web
Frameworks[1] 
 Algunos de ellos: 
 Struts: Muy utilizado, aunque parece que está 
destinado a morir 
 JSF RI & MyFaces: Implementaciones de la 
especificación JSF 
 Spring: Framework ligero y amplio para 
desarrollo de aplicaciones EE, frente al uso de 
EJBs estandar. 
 Hibernate: framework de persistencia de datos 
 Velocity: framework de plantillas, Log4java: 
Logging. 
 Web Services: Apache Axis
JavaServerFaces 
 Es una especificación: JSR 127 
 Implementaciones: JSF RI (netBeans 
& Sun Java Studio Creator), MyFaces 
(Apache), ADF Faces (Oracle) … 
 Controlador central (FrontControler) 
que se encarga de manejar todas las 
peticiones del cliente y gestionar su 
ciclo de vida.
JSF [1]
JSF[2]:Ciclo de vida 
 6 fases 
 1. Restore View: Crea el árbol de componentes de la página 
solicitada y carga el estado si esta ya había sido solicitada 
previamente. 
 2. Apply Request Value: Itera sobre el árbol de componentes 
recuperando el estado de cada uno asignándole los valores 
que viene desde el cliente. 
 3. Process Validations: Se realizan las validaciones de cada 
componente 
 4. Update Model Values: Se actualizan los valores de los 
backing beans del modelo cuyas propiedades estaban 
vinculadas a propiedades de los componentes de la vista. 
 5. Invoke application: Se ejecuta la lógica del negocio y se 
selecciona la próxima vista lógica. 
 6. Render Response: Se arma la vista con el estado 
actualizado de los componentes y se la envía al cliente.
JSF[3]:Ciclo de vida
Spring 
 Abarca muchos mas aspectos que 
JSF, tiene objetivos diferentes 
 JSF se podría equiparar con Spring 
MVC. 
 Introduce el concepto de inyección 
de dependencias: tratar de hacer el 
codigo lo mas independiente posible 
respecto de la implementación
Spring[1]
Spring[2] 
 IoC: manejado por Spring Core 
Container. Es el concepto más 
importante de Spring. Las 
dependencias entre objetos son 
controladas por el container, no por el 
propio objeto. 
 Utiliza un fichero xml en el que se 
especifican esas dependencias.
Spring[3]. Ejemplo IoC 
package com.springinaction.chapter01.hello; 
public interface GreetingService { 
void sayGreeting(); 
} 
package com.springinaction.chapter01.hello; 
public class GreetingServiceImpl implements GreetingService { 
private String greeting; 
public GreetingServiceImpl() {} 
public GreetingServiceImpl(String greeting) { 
this.greeting = greeting; 
} 
public void sayGreeting() { 
System.out.println(greeting); 
} 
public void setGreeting(String greeting) { 
this.greeting = greeting; 
} 
}
Spring[3]. Ejemplo IoC y2 
<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns=http://www.springframework.org/schema/beans> 
<bean id="greetingService" 
class="com.springinaction.chapter01.hello.GreetingServiceImpl"> 
<property name="greeting" value="Buenos Dias!" /> 
</bean> 
</beans> 
package com.springinaction.chapter01.hello; 
import org.springframework.beans.factory.BeanFactory; 
import org.springframework.beans.factory.xml.XmlBeanFactory; 
import org.springframework.core.io.FileSystemResource; 
public class HelloApp { 
public static void main(String[] args) throws Exception { 
BeanFactory factory = 
new XmlBeanFactory(new FileSystemResource("hello.xml")); 
GreetingService greetingService = 
(GreetingService) factory.getBean("greetingService"); 
greetingService.sayGreeting(); 
} 
}
IDEs 
 Múltiples entornos para elegir 
 De pago: Jbuilder, Intellij Idea, BEA 
Workshop, WebSphere Developer. 
 Libre uso: Eclipse, netBeans, Sun Java 
Studio Creator, Jdeveloper¿?. 
 No todos tienen capacidad WYSIWYG
Servidores y contenedores 
 Amplia variedad para distintas 
plataformas y SOs 
 Libre uso y propietarios
Servidores[1] 
 Libre uso: 
 Apache Tomcat 
 Jboss 
 Sun JS Application Server 
 De pago: 
 BEA Weblogic (ahora es de Oracle) 
 IBM WebSphere 
 Oracle 9iAS / 10gAS 
 ColdFusion
Desarrollo con NetBeans 
Antonio J. Contreras 
EASP 2008
Aspecto General
Netbeans 
 Características 
 Ciclo de Vida 
 Controles 
 Binding 
 Navegación 
 Formularios Virtuales 
 Acceso a datos
Características 
 Basado en Sun Java Studio Creator 
 Implementa JSF RI 
 Capacidad WYSIWIG 
 Implementado en Java => lento en 
su ejecución. Mejora en v6.0 
 Múltiples contenedores y servidores: 
Tomcat y Sun 
 No solo para web. Variedad de tipos 
de proyectos: JSF, swing, J2ME
Características[2] 
 Aunque se pueden implementar 
aplicaciones completas, no son 
demasiado ortodoxas desde el punto 
de vista Java EE 
 En principio, solo debería utilizarse 
para la parte de vista, desechando 
por ejemplo, el modelo de acceso a 
datos.
Conceptos 
 Una aplicación web consta de: 
 Jsp’s 
 Web.xml 
 Beans 
 Al menos 3 objetos con distinto ambito: 
 Aplicación 
 Sesión 
 Petición
Ciclo de vida petición JSF
Ciclo de vida petición JSF[2] 
 Se puede generar una respuesta a 
partir de la fase 2 
 Propiedad “inmediate” de los 
controles: false por defecto 
 Permite que ese control se “salte” pasos 
en el ciclo de vida: se realiza todo en la 
fase 2
Controles 
 Netbeans proporciona una lista de 
controles estándar para desarrollo: 
 Combos,TextBoxes,etc. 
 Grids 
 tabs, panels y otros containers 
 Ojo con paginas muy cargadas de 
controles: comportamiento poco 
predecible …: conveniencia de utilizar jsp 
fragments
Binding 
 Hay una relación unívoca entre cada 
control y el Bean 
 Cada propiedad de un control se 
puede asociar a un metodo o variable 
<ui:textField binding="#{fichas$altaModificacionEmpresa.txtLocalidad}" 
disabled="#{fichas$altaModificacionEmpresa.hempresaGuardada.disabled}" 
id="txtLocalidad“ />
Navegación 
 Centralizada en un fichero xml: 
navigation.xml 
 Se expresan reglas para navegar 
entre las jsp’s 
<navigation-rule> 
<from-view-id>/bandejas/bandejaBeneficiario.jsp</from-view-id> 
<navigation-case> 
<from-outcome>empresa</from-outcome> 
<to-view-id>/bandejas/bandejaEmpresa.jsp</to-view-id> 
<redirect></redirect> 
</navigation-case> 
</navigation-rule>
Formularios Virtuales 
 La idea es que solo se envíen los 
valores de un subconjunto de 
controles de la jsp cada vez que se 
hace postback
Desarrollo con Eclipse 
Antonio J. Contreras 
EASP 2008
Características 
 Por ahora no ofrece un entorno 
WYSIWYG para web (excepto 
myEclipse). Para Swing si existe esta 
funcionalidad 
 Incorporación de plugins de terceros 
que aumentan su funcionalidad.
Una App J2EE 
 Acceso a Datos: JPA + Hibernate 
 Lógica de Negocio: Spring Framework 
 Seguridad: Acegi Security: role-based 
y/o ACL 
 Uso de Anotaciones Java: etiqueta 
que empieza por @ y que altera el 
comportamiento de un elemento de la 
clase (~atributos .net[])
Una App J2EE 
 Vista: 
 Spring MVC (+ WebFlow) ó JSF 
 Uso de TagLibs. 
 Filosofía REST: desacoplar las URLs: urls 
logicas no coinciden con las físicas: dotar 
de significado a la url

Más contenido relacionado

La actualidad más candente

Java lenguaje de desarrollo
Java lenguaje de desarrolloJava lenguaje de desarrollo
Java lenguaje de desarrolloDavid
 
Introducción a Java EE
Introducción a Java EEIntroducción a Java EE
Introducción a Java EEPaco Saucedo
 
Maven Divide tu código, pruébalo y vencerás
Maven Divide tu código, pruébalo y vencerásMaven Divide tu código, pruébalo y vencerás
Maven Divide tu código, pruébalo y vencerásCristian Romero Matesanz
 
Introducccion springframework
Introducccion springframeworkIntroducccion springframework
Introducccion springframeworkVortexbird
 
[ES] Introdución al desarrollo de aplicaciones web en java
[ES] Introdución al desarrollo de aplicaciones  web en java[ES] Introdución al desarrollo de aplicaciones  web en java
[ES] Introdución al desarrollo de aplicaciones web en javaEudris Cabrera
 
5. Curso Java Struts I (Framework para Java) - Curso 2005-2006
5. Curso Java Struts I (Framework para Java) - Curso 2005-20065. Curso Java Struts I (Framework para Java) - Curso 2005-2006
5. Curso Java Struts I (Framework para Java) - Curso 2005-2006Samuel Marrero
 
Desarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EEDesarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EEFernando Montaño
 
Programacion web java
Programacion web javaProgramacion web java
Programacion web javaCésar Ocampo
 
Introducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en JavaIntroducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en JavaEudris Cabrera
 

La actualidad más candente (20)

Java lenguaje de desarrollo
Java lenguaje de desarrolloJava lenguaje de desarrollo
Java lenguaje de desarrollo
 
Introducción a Java EE
Introducción a Java EEIntroducción a Java EE
Introducción a Java EE
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
spring
springspring
spring
 
Maven Divide tu código, pruébalo y vencerás
Maven Divide tu código, pruébalo y vencerásMaven Divide tu código, pruébalo y vencerás
Maven Divide tu código, pruébalo y vencerás
 
Curso Java Avanzado 5 Ejb
Curso Java Avanzado   5 EjbCurso Java Avanzado   5 Ejb
Curso Java Avanzado 5 Ejb
 
Arquitectura java web
Arquitectura java webArquitectura java web
Arquitectura java web
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
Introducccion springframework
Introducccion springframeworkIntroducccion springframework
Introducccion springframework
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
Documento Web2Py
Documento Web2PyDocumento Web2Py
Documento Web2Py
 
[ES] Introdución al desarrollo de aplicaciones web en java
[ES] Introdución al desarrollo de aplicaciones  web en java[ES] Introdución al desarrollo de aplicaciones  web en java
[ES] Introdución al desarrollo de aplicaciones web en java
 
5. Curso Java Struts I (Framework para Java) - Curso 2005-2006
5. Curso Java Struts I (Framework para Java) - Curso 2005-20065. Curso Java Struts I (Framework para Java) - Curso 2005-2006
5. Curso Java Struts I (Framework para Java) - Curso 2005-2006
 
Java desde cero maven
Java desde cero mavenJava desde cero maven
Java desde cero maven
 
Framework
FrameworkFramework
Framework
 
Desarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EEDesarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EE
 
Curso Spring Roo Spring Data Jpa Maven
Curso Spring Roo Spring Data Jpa MavenCurso Spring Roo Spring Data Jpa Maven
Curso Spring Roo Spring Data Jpa Maven
 
Programacion web java
Programacion web javaProgramacion web java
Programacion web java
 
Eclipse
EclipseEclipse
Eclipse
 
Introducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en JavaIntroducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en Java
 

Destacado (20)

Ado.net
Ado.netAdo.net
Ado.net
 
Ado.net
Ado.netAdo.net
Ado.net
 
Ciclos
CiclosCiclos
Ciclos
 
Programacion en java
Programacion en javaProgramacion en java
Programacion en java
 
Variables de-programación
Variables de-programaciónVariables de-programación
Variables de-programación
 
Modulo 1
Modulo 1Modulo 1
Modulo 1
 
Certificación java 6 cap 5
Certificación java 6 cap 5Certificación java 6 cap 5
Certificación java 6 cap 5
 
Flujo de un programa Java (I)
Flujo de un programa Java (I)Flujo de un programa Java (I)
Flujo de un programa Java (I)
 
While do while
While do whileWhile do while
While do while
 
Programación III (Java) - 08 threads
Programación III (Java) - 08 threadsProgramación III (Java) - 08 threads
Programación III (Java) - 08 threads
 
86535551 ciclo-de-vida-jsf
86535551 ciclo-de-vida-jsf86535551 ciclo-de-vida-jsf
86535551 ciclo-de-vida-jsf
 
Fase 5 ciclo for
Fase 5 ciclo forFase 5 ciclo for
Fase 5 ciclo for
 
Clojure: Java y Lisp, unidos
Clojure: Java y Lisp, unidosClojure: Java y Lisp, unidos
Clojure: Java y Lisp, unidos
 
Ciclos Java - NetsBeans - Algoritmia
Ciclos Java - NetsBeans - AlgoritmiaCiclos Java - NetsBeans - Algoritmia
Ciclos Java - NetsBeans - Algoritmia
 
Ado.net
Ado.netAdo.net
Ado.net
 
Curso java
Curso javaCurso java
Curso java
 
Sentencias de control en java
Sentencias de control en javaSentencias de control en java
Sentencias de control en java
 
ADO.NET
ADO.NETADO.NET
ADO.NET
 
ProgramacióN En Java Variables Y Ciclos
ProgramacióN En Java Variables Y CiclosProgramacióN En Java Variables Y Ciclos
ProgramacióN En Java Variables Y Ciclos
 
Captura de datos y mensajes Interfaz - JAVA
Captura de datos y mensajes Interfaz - JAVACaptura de datos y mensajes Interfaz - JAVA
Captura de datos y mensajes Interfaz - JAVA
 

Similar a Plataforma de programación Java

Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)Robert Rayco Quiroz
 
Arquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EEArquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EECarlos Gavidia-Calderon
 
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XMLJuan Carlos Rubio Pineda
 
01 jee5-componentes
01 jee5-componentes01 jee5-componentes
01 jee5-componentesUTN
 
[ES] Fundamentos de Java Enterprise Edition
[ES] Fundamentos de Java Enterprise Edition [ES] Fundamentos de Java Enterprise Edition
[ES] Fundamentos de Java Enterprise Edition Eudris Cabrera
 
9 tecnologías v1.1
9 tecnologías v1.19 tecnologías v1.1
9 tecnologías v1.1UTN
 
Aplicaciones web con jakarta struts - Javier Oliver Fulguera
Aplicaciones web con jakarta struts  - Javier Oliver FulgueraAplicaciones web con jakarta struts  - Javier Oliver Fulguera
Aplicaciones web con jakarta struts - Javier Oliver FulgueraJavier Oliver Fulguera
 
Introducción a JBoss
Introducción a JBossIntroducción a JBoss
Introducción a JBossIker Canarias
 
introduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
introduccion-a-las-aplicaciones-web-y-tecnologia-java.pptintroduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
introduccion-a-las-aplicaciones-web-y-tecnologia-java.pptBYRONMIGUELSUBUYUCPA
 
01_ppt_introduccion_spring_mmmmmmmmm.pdf
01_ppt_introduccion_spring_mmmmmmmmm.pdf01_ppt_introduccion_spring_mmmmmmmmm.pdf
01_ppt_introduccion_spring_mmmmmmmmm.pdfMarvelNanosoft
 
01.springframework.pptx
01.springframework.pptx01.springframework.pptx
01.springframework.pptxjohann
 
[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con JavaEudris Cabrera
 

Similar a Plataforma de programación Java (20)

Frameworks J2EE
Frameworks J2EEFrameworks J2EE
Frameworks J2EE
 
Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)
 
Introducción a Java y BEA (2008)
Introducción a Java y BEA (2008)Introducción a Java y BEA (2008)
Introducción a Java y BEA (2008)
 
Arquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EEArquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EE
 
Spring
SpringSpring
Spring
 
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML
 
01 jee5-componentes
01 jee5-componentes01 jee5-componentes
01 jee5-componentes
 
[ES] Fundamentos de Java Enterprise Edition
[ES] Fundamentos de Java Enterprise Edition [ES] Fundamentos de Java Enterprise Edition
[ES] Fundamentos de Java Enterprise Edition
 
9 tecnologías v1.1
9 tecnologías v1.19 tecnologías v1.1
9 tecnologías v1.1
 
5 lenguaje
5 lenguaje5 lenguaje
5 lenguaje
 
Aplicaciones web con jakarta struts - Javier Oliver Fulguera
Aplicaciones web con jakarta struts  - Javier Oliver FulgueraAplicaciones web con jakarta struts  - Javier Oliver Fulguera
Aplicaciones web con jakarta struts - Javier Oliver Fulguera
 
Charla
CharlaCharla
Charla
 
Resumen jee
Resumen jeeResumen jee
Resumen jee
 
Introducción a JBoss
Introducción a JBossIntroducción a JBoss
Introducción a JBoss
 
introduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
introduccion-a-las-aplicaciones-web-y-tecnologia-java.pptintroduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
introduccion-a-las-aplicaciones-web-y-tecnologia-java.ppt
 
5 lenguaje (caso de uso)
5 lenguaje  (caso de uso)5 lenguaje  (caso de uso)
5 lenguaje (caso de uso)
 
01_ppt_introduccion_spring_mmmmmmmmm.pdf
01_ppt_introduccion_spring_mmmmmmmmm.pdf01_ppt_introduccion_spring_mmmmmmmmm.pdf
01_ppt_introduccion_spring_mmmmmmmmm.pdf
 
01 introducción
01 introducción01 introducción
01 introducción
 
01.springframework.pptx
01.springframework.pptx01.springframework.pptx
01.springframework.pptx
 
[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java
 

Último

Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilJuanGallardo438714
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxlosdiosesmanzaneros
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 

Último (15)

Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 

Plataforma de programación Java

  • 1. Plataforma Java Antonio J. Contreras EASP 2008
  • 2. Indice  Java  Frameworks  IDEs  Servidores y contenedores  Desarrollo con Netbeans
  • 3. Java  No es solo un lenguaje de programación.  Es un batiburrillo de lenguaje + especificaciones + frameworks  Algunos conceptos
  • 4. Algunos Conceptos  Jsp (aspx): página compilada dinámicamente  Servlet: implementación Java de un cgi. Se diferencia de este en que no es un proceso independiente. Se ejecuta en la jvm.  Los dos anteriores son la base de muchos frameworks web  Bean: instancia de una clase referenciable por su nombre. (uso de java reflection)  Container: “Ente” que es capaz de ejecutar objetos y aplicaciones java. Las aplicaciones no se ejecutan de forma autónoma fuera del container Puede proveer funcionalidad añadida a la aplicación: datasources,etc.  Framework: colección de bibliotecas a las que se les pone un nombre. Aparte, pueden cambiar la filosofía de trabajo: i.e. Spring
  • 6. Java [1]  JVM: maquina virtual java (vs. CLR)  JRE: runtime para ejecutar aplicaciones java. En definitiva es un interprete de Bytecode (vs. MSIL)  JDK: kit de desarrollo java. Incluye el JRE + algunas herramientas: javac, jar, etc. A partir de la v1.2, se distinguió entre J2SE, J2EE y J2ME, dependiendo de su orientación. La versión actual ha perdido el 2 y el 1., denominándose Java 6 SE, EE, ME
  • 7. Java[1]  Plataformas Java: SDK + API  Java SE: plataforma estándar de Java para desarrollo de aplicaciones de propósito general  Java EE: Java SE + especificaciones de desarrollo de aplicaciones en servidor (distribuidas, multicapa)  Java ME: Desarrollo de aplicaciones móviles y empotradas.
  • 8. Java [3]  Java Community Proccess: proceso formalizado para la definición de futuras versiones y características de la plataforma Java.
  • 9. Frameworks  Multitud de ellos con diferentes objetivos. Basados en lenguaje Java & XML (la mayoría)  Libre uso y propietarios  Fundación Apache bastante activa  Algunos intentan relajar la rigidez de la especificación original (i.e. Spring)  Hincapié en Frameworks Web
  • 10. Frameworks[1]  Algunos de ellos:  Struts: Muy utilizado, aunque parece que está destinado a morir  JSF RI & MyFaces: Implementaciones de la especificación JSF  Spring: Framework ligero y amplio para desarrollo de aplicaciones EE, frente al uso de EJBs estandar.  Hibernate: framework de persistencia de datos  Velocity: framework de plantillas, Log4java: Logging.  Web Services: Apache Axis
  • 11. JavaServerFaces  Es una especificación: JSR 127  Implementaciones: JSF RI (netBeans & Sun Java Studio Creator), MyFaces (Apache), ADF Faces (Oracle) …  Controlador central (FrontControler) que se encarga de manejar todas las peticiones del cliente y gestionar su ciclo de vida.
  • 13. JSF[2]:Ciclo de vida  6 fases  1. Restore View: Crea el árbol de componentes de la página solicitada y carga el estado si esta ya había sido solicitada previamente.  2. Apply Request Value: Itera sobre el árbol de componentes recuperando el estado de cada uno asignándole los valores que viene desde el cliente.  3. Process Validations: Se realizan las validaciones de cada componente  4. Update Model Values: Se actualizan los valores de los backing beans del modelo cuyas propiedades estaban vinculadas a propiedades de los componentes de la vista.  5. Invoke application: Se ejecuta la lógica del negocio y se selecciona la próxima vista lógica.  6. Render Response: Se arma la vista con el estado actualizado de los componentes y se la envía al cliente.
  • 15. Spring  Abarca muchos mas aspectos que JSF, tiene objetivos diferentes  JSF se podría equiparar con Spring MVC.  Introduce el concepto de inyección de dependencias: tratar de hacer el codigo lo mas independiente posible respecto de la implementación
  • 17. Spring[2]  IoC: manejado por Spring Core Container. Es el concepto más importante de Spring. Las dependencias entre objetos son controladas por el container, no por el propio objeto.  Utiliza un fichero xml en el que se especifican esas dependencias.
  • 18. Spring[3]. Ejemplo IoC package com.springinaction.chapter01.hello; public interface GreetingService { void sayGreeting(); } package com.springinaction.chapter01.hello; public class GreetingServiceImpl implements GreetingService { private String greeting; public GreetingServiceImpl() {} public GreetingServiceImpl(String greeting) { this.greeting = greeting; } public void sayGreeting() { System.out.println(greeting); } public void setGreeting(String greeting) { this.greeting = greeting; } }
  • 19. Spring[3]. Ejemplo IoC y2 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=http://www.springframework.org/schema/beans> <bean id="greetingService" class="com.springinaction.chapter01.hello.GreetingServiceImpl"> <property name="greeting" value="Buenos Dias!" /> </bean> </beans> package com.springinaction.chapter01.hello; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.FileSystemResource; public class HelloApp { public static void main(String[] args) throws Exception { BeanFactory factory = new XmlBeanFactory(new FileSystemResource("hello.xml")); GreetingService greetingService = (GreetingService) factory.getBean("greetingService"); greetingService.sayGreeting(); } }
  • 20. IDEs  Múltiples entornos para elegir  De pago: Jbuilder, Intellij Idea, BEA Workshop, WebSphere Developer.  Libre uso: Eclipse, netBeans, Sun Java Studio Creator, Jdeveloper¿?.  No todos tienen capacidad WYSIWYG
  • 21. Servidores y contenedores  Amplia variedad para distintas plataformas y SOs  Libre uso y propietarios
  • 22. Servidores[1]  Libre uso:  Apache Tomcat  Jboss  Sun JS Application Server  De pago:  BEA Weblogic (ahora es de Oracle)  IBM WebSphere  Oracle 9iAS / 10gAS  ColdFusion
  • 23. Desarrollo con NetBeans Antonio J. Contreras EASP 2008
  • 25. Netbeans  Características  Ciclo de Vida  Controles  Binding  Navegación  Formularios Virtuales  Acceso a datos
  • 26. Características  Basado en Sun Java Studio Creator  Implementa JSF RI  Capacidad WYSIWIG  Implementado en Java => lento en su ejecución. Mejora en v6.0  Múltiples contenedores y servidores: Tomcat y Sun  No solo para web. Variedad de tipos de proyectos: JSF, swing, J2ME
  • 27. Características[2]  Aunque se pueden implementar aplicaciones completas, no son demasiado ortodoxas desde el punto de vista Java EE  En principio, solo debería utilizarse para la parte de vista, desechando por ejemplo, el modelo de acceso a datos.
  • 28. Conceptos  Una aplicación web consta de:  Jsp’s  Web.xml  Beans  Al menos 3 objetos con distinto ambito:  Aplicación  Sesión  Petición
  • 29. Ciclo de vida petición JSF
  • 30. Ciclo de vida petición JSF[2]  Se puede generar una respuesta a partir de la fase 2  Propiedad “inmediate” de los controles: false por defecto  Permite que ese control se “salte” pasos en el ciclo de vida: se realiza todo en la fase 2
  • 31. Controles  Netbeans proporciona una lista de controles estándar para desarrollo:  Combos,TextBoxes,etc.  Grids  tabs, panels y otros containers  Ojo con paginas muy cargadas de controles: comportamiento poco predecible …: conveniencia de utilizar jsp fragments
  • 32. Binding  Hay una relación unívoca entre cada control y el Bean  Cada propiedad de un control se puede asociar a un metodo o variable <ui:textField binding="#{fichas$altaModificacionEmpresa.txtLocalidad}" disabled="#{fichas$altaModificacionEmpresa.hempresaGuardada.disabled}" id="txtLocalidad“ />
  • 33. Navegación  Centralizada en un fichero xml: navigation.xml  Se expresan reglas para navegar entre las jsp’s <navigation-rule> <from-view-id>/bandejas/bandejaBeneficiario.jsp</from-view-id> <navigation-case> <from-outcome>empresa</from-outcome> <to-view-id>/bandejas/bandejaEmpresa.jsp</to-view-id> <redirect></redirect> </navigation-case> </navigation-rule>
  • 34. Formularios Virtuales  La idea es que solo se envíen los valores de un subconjunto de controles de la jsp cada vez que se hace postback
  • 35. Desarrollo con Eclipse Antonio J. Contreras EASP 2008
  • 36. Características  Por ahora no ofrece un entorno WYSIWYG para web (excepto myEclipse). Para Swing si existe esta funcionalidad  Incorporación de plugins de terceros que aumentan su funcionalidad.
  • 37. Una App J2EE  Acceso a Datos: JPA + Hibernate  Lógica de Negocio: Spring Framework  Seguridad: Acegi Security: role-based y/o ACL  Uso de Anotaciones Java: etiqueta que empieza por @ y que altera el comportamiento de un elemento de la clase (~atributos .net[])
  • 38. Una App J2EE  Vista:  Spring MVC (+ WebFlow) ó JSF  Uso de TagLibs.  Filosofía REST: desacoplar las URLs: urls logicas no coinciden con las físicas: dotar de significado a la url