SlideShare une entreprise Scribd logo
1  sur  54
Télécharger pour lire hors ligne
Introducción a:
Java EE 7 & HTML 5
Eudris Cabrera Rodríguez
@eudriscabrera @eudriscabrera
26 Abril 2014, Santo Domingo, R. D. Code Camp SQD 2014
#JavaEE7
● Desarrollador Informático / Consultor en PAFI
● (Programa de Administración Financiera Integrada / Ministerio de Hacienda).
● Desarrollador Java EE / SE, consultor y a veces entrenador en Java desde
hace más de 7 años.
● Entusiasta de la tecnología y software libre.
Comunidades
● Github: @ecabrerar
● Google Groups: @letsrockjava
Sobre Eudris Cabrera
Agenda
● Breve Reseña sobre Java
● Conceptos Generales sobre Java EE
● Aspectos importantes de Java EE 7
● Primeros pasos con Java EE 7
● Cómo empezar con Java EE 7
● Algunos APIs de Java EE7
Objetivos
Destacar los aspectos más novedosos que ofrece Java EE 7 para el desarrollo
de aplicaciones empresariales, enfocando el soporte para HTML5 y otras
tecnologías relacionadas.
Breve reseña sobre Java
Entendiendo el ecosistema Java
● Plataforma Java:
○ Multi-plataforma.
○ Utiliza una máquina virtual para su ejecución
(JVM)
○ Esta dividida en:
■ Java SE
■ Java EE
■ Java ME
■ Javafx
○ El estandar es manejado por Java Community
Process (JCP)
James Gosling,
Creador de Java
Popularidad del lenguaje Java
● TIOBE Index lo sitúa en el segundo lugar para el mes de Abril del 2014,
muy cercano a Lenguaje C, que ocupa el primer lugar.
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
● Hoy en día, la tecnología Java ya está presente en 5 mil millones de
tarjetas SIM y tarjetas inteligentes, 3 mil millones de teléfonos móviles, 80
millones de dispositivos de TV, incluyendo Blu-ray, printers, maquinas
bancarias, eBooks Reader y Carros.
● Java SE 8 liberado en marzo del 2014, es la plataforma incluye la
actualización más grande para el modelo de programación Java desde el
lanzamiento de la plataforma en 1996.
Java Platform, Enterprise Edition (EE)
● Es un entorno independiente de la plataforma centrado
en Java para desarrollar, crear e implementar en
línea aplicaciones empresariales basadas en web.
● Es el estándar en software empresarial.
● Se apoya ampliamente en componentes de software
modulares ejecutándose sobre un servidor de
aplicaciones.
Diferencia entre JAVA SE y JAVA EE
JAVA SE es la versión estándar de java. Es la api base del lenguaje mientras
que JAVA EE podríamos decir que es una versión extendida de JAVA SE.
La plataforma Java EE consta de un conjunto de servicios, API y protocolos
que proporcionan la funcionalidad necesaria para desarrollar aplicaciones
basadas en web de varios niveles.
Java EE simplifica el desarrollo de aplicaciones y reduce la necesidad de
programación, al proporcional componentes modulares normalizados y
reutilizables, así como al permitir controlar muchos aspectos de la
programación automáticamente por nivel.
Evolución de Java EE
Java EE 6 cambió el juego ....
● Más Ligero.
● Introduce el concepto de perfiles (Web Profile and Full Profile).
● EJB empaquetado en archivos war.
● Servlet 3.0
○ web.xml (opcional), @WebServlet, @WebFilter
● Soporte para servicios web RESTful con JAX-RS 1.1
● Contextos e Inyección de Dependencia (CDI) para Java EE
Java EE 7 productividad y enfocado en HTML5
● Construido sobre la base de Java EE6.
● Soporte para HTML5.
● 4 nuevas especificaciones.
● 3 especificaciones con
cambios importantes.
● 6 especificaciones con
cambios menores.
● 5 especificaciones con
cambios micro.
Plataforma Java EE 7
Adopción de Java EE 7
https://blogs.oracle.com/theaquarium/entry/survey_sez_java_ee_71
Cómo empezar con Java EE 7 ?
Descargar e instalar:
JDK 7(ó superior):
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Instalar el IDE de su preferencia:
NetBeans 7.4 o superior, versión completa o “Java EE”
http://netbeans.org/downloads/
Eclipse 4.3 (Kepler) o superior
http://www.eclipse.org/kepler/
Otros
Soporte para HTML5 y tecnologías relacionadas
JavaServer Faces 2.2 (JSR 344)
● Tecnología y Framework para el desarrollo de aplicaciones web en Java.
● Incluye:
○ APIs para el manejo de eventos, validar entradas, esquema de control
de navegación
○ Administración de estados.
○ Basado en componentes
○ Eventos gestionados desde el servidor
● Disponible desde la versión 1.0, 2004 en Java EE
● Existen librerías tipo extensiones para el manejo de componentes
visuales:
○ RichFaces
○ ICEFaces
○ PrimeFaces
JavaServer Faces 2.2 (JSR 344)
● ¿Cómo trabaja JSF?
○ Utiliza taglib los cuales están asociados a clases manejadoras.
○ Todas las etiquetas son procesadas y presentada mediante HTML,
mapeando cada etiqueta con su representación en el server.
Codificación
○ Cada petición es manejada vía POST y decodificado los valores
para ser procesadas.
JavaServer Faces 2.2 (JSR 344)
● Managed Beans
○ Representan la separación de la vista con la regla de negocio.
○ Son componentes reusables.
○ Facilitan el procesamiento de la información desde el formulario al
servidor y viceversa.
JavaServer Faces 2.2 (JSR 344)
● Managed Beans
JavaServer Faces 2.2 (JSR 344)
● JSF 2.2
○ Pertenece al JEE 7.
○ Cambio de espaciado de nombre.
○ Incluye cambios en los siguiente aspecto:
■ Soporte HTML5.
■ Componente File Upload.
■ Faces Flow.
■ Protección sobre Cross Site Request Forgery
■ Multi-Templating.
JavaServer Faces 2.2 (JSR 344)
● JSF 2.2 - File Upload
○ Incluye la etiqueta h:inputFile. Debe estar dentro de un form con el
enctype “multipart/form-data”
○ La propiedad del Bean es del tipo javax.servlet.http.Part.
JavaServer Faces 2.2 (JSR 344)
● JSF 2.2 - File Upload
JavaServer Faces 2.2 (JSR 344)
● JSF 2.2 - Soporte HTML5
JSF HTML 5 DEMO
RESTful Web Services (JSR 339)
JAX-RS 1.0:
○ Liberada en el 2008 para la versión Java EE 6. JSR-311
○ Simplifica el proceso de creación de servicios Web mediante Plain Old
Java Objects (POJOS) y anotaciones.
○ No requiere configuración adicional para utilizarlos en entornos Java
EE 6.
○ Incluye anotaciones para implementar servicios Web:
■ @Path, @Get, @Put, @Post, @Delete, @Produces,
@Consumes, entre otros.
RESTful Web Services (JSR 339)
Ejemplo Clase JAX-RS
RESTful Web Services (JSR 339)
● JAX-RS 2.0:
○ Introduce elementos que ayudan a la productividad.
○ Simplifica el API
○ Incluye los siguientes aspectos:
■ API para el Cliente
■ Llamadas Asincrónicas vía Http
■ Filtros e interceptores
RESTful Web Services (JSR 339)
● API para el Cliente
Client client = ClientFactory.newClient();
WebTarget target = client.target("http://example.com/shop");
Form form = new Form().param("customer", "Bill")
.param("product", "IPhone 5")
.param("CC", "4444 4444 4444 4444");
Response response = target.request().post(Entity.form(form));
assert response.getStatus() == 200;
Order order = response.readEntity(Order.class);
RESTful Web Services (JSR 339)
● Llamadas Asincrónicas vía Http (API Cliente Asincrónico)
InvocationCallback<Response> callback = new InvocationCallback {
public void completed(Response res) {
System.out.println("Request success!");
}
public void failed(ClientException e) {
System.out.println("Request failed!");n
}
};
client.target("http://example.com/customers").queryParam("name", "Bill Burke")
.request().async()
.get(callback);
RESTful Web Services (JSR 339)
● Llamadas Asincrónicas vía Http (Server-side Asincrónico Http)
@Path("/listener")
public class ChatListener{
List<AsyncResponse> listeners = ...some global list...;
@GET
public void listen(@Suspended AsyncResponse res) {
list.add(res);
}
}
RESTful Web Services (JSR 339)
● Filtros
RESTful Web Services (JSR 339)
● Interceptores
@Provider
//Codifica una salida con GZIP.
public class GZIPEndoer implements WriterInterceptor {
public void aroundWriteTo(WriterInterceptorContext ctx) throws IException,
WebApplicationException {
GZIPOutputStream os = new GZIPOutputStream(ctx.getOutputStream());
try {
ctx.setOutputStream(os);
return ctx.proceed();
} finally {
os.finish();
}
}
}
RESTful Web Services Demo
Java API for JSON Processing 1.0 (JSR 353)
JSR 353 es el API de Java para procesamiento JSON (JSON-P) y define un
API para el proceso (por ejemplo, análisis, generar, transformar y consulta)
JSON.
Este JSR forma parte de Java EE 7.
El API permite producir y consumir JSON de manera secuencial ( equivalente a
StAX en el mundo XML) y construir un modelo de objetos de Java para JSON (
equivalente a DOM en el mundo XML)
Java API for JSON Processing 1.0 (JSR 353)
Puntos importantes del API.
Basados en DOM.
JsonBuilder - Construye un objeto JSON o un arreglo JSON
JsonReader - Lee un objeto JSON o un arreglo
JsonWriter - Escribe un objeto JSON o un arreglo
Streaming APIs
JsonGenerator
JsonParser
Java API for JSON Processing 1.0 (JSR 353)
Sintaxis JSON
Java API for JSON Processing 1.0 (JSR 353)
Construir objeto JSON con JsonBuilder
Java API for JSON Processing 1.0 (JSR 353)
Ejemplo de uso de JsonReader
Java API for JSON Processing 1.0 (JSR 353)
Ejemplo de uso de JsonWriter
Java API for JSON Processing 1.0 (JSR 353)
Escribiendo en un archivo usando JsonGenerator
Java API for JSON Processing 1.0 (JSR 353)
Leyendo un archivo con formato JSON utilizando JsonParser
JSON API Demo
Java API for WebSocket 1.0 (JSR 356)
WebSocket:
Es un nuevo protocolo derivado de HTTP.
HTTP es el protocolo estándar para la Web, es muy efectivo para una gran
cantidad de casos de uso pero, sin embargo, tiene algunos inconvenientes en
el caso de aplicaciones Web interactivas.
Java API for WebSocket 1.0 (JSR 356)
Desventajas de HTTP:
Half-duplex: basado en el modelo de solicitud / respuesta.
Verbose: una gran cantidad de información se envía en las cabeceras HTTP
asociados con el mensaje.
Con el fin de añadir un modo de inserción en el servidor, es necesario utilizar
solución (poll, long poll, Comet / Ajax), ya que no existe un estándar.
Este protocolo no está optimizado a escala en aplicaciones de gran tamaño
para comunicación en tiempo real bidireccional.
Java API for WebSocket 1.0 (JSR 356)
El nuevo protocolo WebSocket ofrece funciones más avanzadas de HTTP
porque es:
Basado en 1 conexión TCP única entre 2 pares (mientras que cada solicitud /
respuesta HTTP necesita una nueva conexión TCP)
Bidireccional: cliente puede enviar el mensaje al servidor y el servidor
también puede enviar un mensaje al cliente
Full-duplex: cliente puede enviar varios mensajes al servidor, así como el
servidor al cliente sin esperar una respuesta de sí
Java API for WebSocket 1.0 (JSR 356)
Java API for WebSocket 1.0 (JSR 356)
WebSocket Server Endpoint
Java API for WebSocket 1.0 (JSR 356)
WebSocket Client
Websocket Demo
Código fuente de los ejemplos en GitHub
https://github.com/ecabrerar/codecampsdq40-javaee7
Java EE 7 como toda tecnología, esta es tan
buena como la disposición que tenga el usuario a
hacer el mejor uso de ella.
Anónimo.
¡Gracias por
acompañarnos!
Referencias
Todas las marcas registradas, así como todos los logotipos, imágenes,
fotografías, audio y vídeos mostrados en esta presentación son propiedad de
sus respectivos propietarios y/o representantes.
Su utilización es solamente para fines ilustrativos.
Enlaces:
http://www.java.com/es/download/faq/techinfo.xml
https://javaee7.zeef.com/arjan.tijms
http://mgreau.com/posts/2013/11/11/javaee7-websocket-angularjs-wildfly.html
http://java.dzone.com/articles/whats-new-jax-rs-20
http://www.infoq.com/news/2013/06/Whats-New-in-JAX-RS-2.0
@eudriscabrera
@eudris
@ecabrerar
@eudriscabrera
Eudris Cabrera Rodríguez
Ingeniero Telemático
Desarrollador de Software / Consultor Informático
eudris@gmail.com

Contenu connexe

Tendances

Persistencia de datos en Java
Persistencia de datos en JavaPersistencia de datos en Java
Persistencia de datos en JavaIker Canarias
 
Lightning Web Components - Demo
Lightning Web Components - DemoLightning Web Components - Demo
Lightning Web Components - DemoFederico Giust
 
Diapositivas Spring Framework- Javier Oliver Fulguera
Diapositivas Spring Framework-  Javier Oliver FulgueraDiapositivas Spring Framework-  Javier Oliver Fulguera
Diapositivas Spring Framework- Javier Oliver FulgueraJavier Oliver Fulguera
 
Introducccion springframework
Introducccion springframeworkIntroducccion springframework
Introducccion springframeworkVortexbird
 
Diapositivas Web Util
Diapositivas Web UtilDiapositivas Web Util
Diapositivas Web Utilsudamericano
 
Introducción Spring Framework
Introducción Spring FrameworkIntroducción Spring Framework
Introducción Spring Frameworkecontinua
 
Java y Bases de Datos
Java y Bases de DatosJava y Bases de Datos
Java y Bases de DatosRonny Parra
 
Curso Oracle11g Lenguaje PL/SQL Avanzado
Curso Oracle11g Lenguaje PL/SQL AvanzadoCurso Oracle11g Lenguaje PL/SQL Avanzado
Curso Oracle11g Lenguaje PL/SQL AvanzadoCLEFormación
 
Oracle Forms
Oracle FormsOracle Forms
Oracle Formshenryjzbl
 
Entendiendo el .NET Framework
Entendiendo el .NET FrameworkEntendiendo el .NET Framework
Entendiendo el .NET FrameworkSorey García
 
Report builder, que los informes los haga el usuario - codecamp
Report builder, que los informes los haga el usuario - codecampReport builder, que los informes los haga el usuario - codecamp
Report builder, que los informes los haga el usuario - codecampSalvador Ramos
 
03. empaquetado de aplicaciones jee
03. empaquetado de aplicaciones jee03. empaquetado de aplicaciones jee
03. empaquetado de aplicaciones jeeyennylou
 
Tecnologias de java usando netbeans por gio
Tecnologias de java usando netbeans por gioTecnologias de java usando netbeans por gio
Tecnologias de java usando netbeans por gioRobert Wolf
 

Tendances (20)

Framework spring
Framework springFramework spring
Framework spring
 
Metadata api en apex
Metadata api en apexMetadata api en apex
Metadata api en apex
 
Persistencia de datos en Java
Persistencia de datos en JavaPersistencia de datos en Java
Persistencia de datos en Java
 
Spring framework 3
Spring framework 3Spring framework 3
Spring framework 3
 
Curso Java Avanzado 5 Ejb
Curso Java Avanzado   5 EjbCurso Java Avanzado   5 Ejb
Curso Java Avanzado 5 Ejb
 
Herramientas Java
Herramientas JavaHerramientas Java
Herramientas Java
 
Lightning Web Components - Demo
Lightning Web Components - DemoLightning Web Components - Demo
Lightning Web Components - Demo
 
Diapositivas Spring Framework- Javier Oliver Fulguera
Diapositivas Spring Framework-  Javier Oliver FulgueraDiapositivas Spring Framework-  Javier Oliver Fulguera
Diapositivas Spring Framework- Javier Oliver Fulguera
 
Introducccion springframework
Introducccion springframeworkIntroducccion springframework
Introducccion springframework
 
Diapositivas Web Util
Diapositivas Web UtilDiapositivas Web Util
Diapositivas Web Util
 
Introducción Spring Framework
Introducción Spring FrameworkIntroducción Spring Framework
Introducción Spring Framework
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
Java y Bases de Datos
Java y Bases de DatosJava y Bases de Datos
Java y Bases de Datos
 
Curso Oracle11g Lenguaje PL/SQL Avanzado
Curso Oracle11g Lenguaje PL/SQL AvanzadoCurso Oracle11g Lenguaje PL/SQL Avanzado
Curso Oracle11g Lenguaje PL/SQL Avanzado
 
Oracle Forms
Oracle FormsOracle Forms
Oracle Forms
 
P1C1 - Java Server Faces 2.0
P1C1 - Java Server Faces 2.0P1C1 - Java Server Faces 2.0
P1C1 - Java Server Faces 2.0
 
Entendiendo el .NET Framework
Entendiendo el .NET FrameworkEntendiendo el .NET Framework
Entendiendo el .NET Framework
 
Report builder, que los informes los haga el usuario - codecamp
Report builder, que los informes los haga el usuario - codecampReport builder, que los informes los haga el usuario - codecamp
Report builder, que los informes los haga el usuario - codecamp
 
03. empaquetado de aplicaciones jee
03. empaquetado de aplicaciones jee03. empaquetado de aplicaciones jee
03. empaquetado de aplicaciones jee
 
Tecnologias de java usando netbeans por gio
Tecnologias de java usando netbeans por gioTecnologias de java usando netbeans por gio
Tecnologias de java usando netbeans por gio
 

Similaire à [ES] Introducción a Java EE 7 & HTML 5

[ES] Introducción a Java EE 7
[ES] Introducción a Java EE 7[ES] Introducción a Java EE 7
[ES] Introducción a Java EE 7Eudris Cabrera
 
Taller introducción Java EE 7 @UAPA
Taller introducción Java EE 7  @UAPATaller introducción Java EE 7  @UAPA
Taller introducción Java EE 7 @UAPAEudris Cabrera
 
Html5, Rest, JSON, Angular JS y Java EE 7 - Aplicaciones Web Modernas y Esca...
Html5, Rest, JSON, Angular JS y Java EE 7  - Aplicaciones Web Modernas y Esca...Html5, Rest, JSON, Angular JS y Java EE 7  - Aplicaciones Web Modernas y Esca...
Html5, Rest, JSON, Angular JS y Java EE 7 - Aplicaciones Web Modernas y Esca...Eudris Cabrera
 
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
 
[ES] Desarrollo de aplicaciones con Java Server Faces
[ES] Desarrollo de aplicaciones con Java Server  Faces[ES] Desarrollo de aplicaciones con Java Server  Faces
[ES] Desarrollo de aplicaciones con Java Server FacesEudris Cabrera
 
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
 
01 jee5-componentes
01 jee5-componentes01 jee5-componentes
01 jee5-componentesUTN
 
Modulo Jee Intro Pos Fp Une
Modulo Jee Intro  Pos Fp UneModulo Jee Intro  Pos Fp Une
Modulo Jee Intro Pos Fp UneMarcos Jara
 
[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
 
De Forms a Oracle Fusion Middleware
De Forms a Oracle Fusion MiddlewareDe Forms a Oracle Fusion Middleware
De Forms a Oracle Fusion MiddlewareJC_Diaz_Belmonte
 
Seminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightSeminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightParadigma Digital
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Facescok12v
 
Tutorial javafx-primeros-pasos
Tutorial javafx-primeros-pasosTutorial javafx-primeros-pasos
Tutorial javafx-primeros-pasosNorman Enmanuel
 
Lo Nuevo En Spring3 0
Lo Nuevo En Spring3 0Lo Nuevo En Spring3 0
Lo Nuevo En Spring3 0jose diaz
 

Similaire à [ES] Introducción a Java EE 7 & HTML 5 (20)

[ES] Introducción a Java EE 7
[ES] Introducción a Java EE 7[ES] Introducción a Java EE 7
[ES] Introducción a Java EE 7
 
Taller introducción Java EE 7 @UAPA
Taller introducción Java EE 7  @UAPATaller introducción Java EE 7  @UAPA
Taller introducción Java EE 7 @UAPA
 
Html5, Rest, JSON, Angular JS y Java EE 7 - Aplicaciones Web Modernas y Esca...
Html5, Rest, JSON, Angular JS y Java EE 7  - Aplicaciones Web Modernas y Esca...Html5, Rest, JSON, Angular JS y Java EE 7  - Aplicaciones Web Modernas y Esca...
Html5, Rest, JSON, Angular JS y Java EE 7 - Aplicaciones Web Modernas y Esca...
 
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
 
[ES] Desarrollo de aplicaciones con Java Server Faces
[ES] Desarrollo de aplicaciones con Java Server  Faces[ES] Desarrollo de aplicaciones con Java Server  Faces
[ES] Desarrollo de aplicaciones con Java Server Faces
 
4 Jhs J Developer Adf
4  Jhs J Developer Adf4  Jhs J Developer Adf
4 Jhs J Developer Adf
 
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)
 
01 jee5-componentes
01 jee5-componentes01 jee5-componentes
01 jee5-componentes
 
Modulo Jee Intro Pos Fp Une
Modulo Jee Intro  Pos Fp UneModulo Jee Intro  Pos Fp Une
Modulo Jee Intro Pos Fp Une
 
[ES] Fundamentos de Java Enterprise Edition
[ES] Fundamentos de Java Enterprise Edition [ES] Fundamentos de Java Enterprise Edition
[ES] Fundamentos de Java Enterprise Edition
 
spring
springspring
spring
 
De Forms a Oracle Fusion Middleware
De Forms a Oracle Fusion MiddlewareDe Forms a Oracle Fusion Middleware
De Forms a Oracle Fusion Middleware
 
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)
 
Spring
SpringSpring
Spring
 
Seminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightSeminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring Insight
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Faces
 
Tutorial javafx-primeros-pasos
Tutorial javafx-primeros-pasosTutorial javafx-primeros-pasos
Tutorial javafx-primeros-pasos
 
Desarrollo web
Desarrollo webDesarrollo web
Desarrollo web
 
Sqlserver
SqlserverSqlserver
Sqlserver
 
Lo Nuevo En Spring3 0
Lo Nuevo En Spring3 0Lo Nuevo En Spring3 0
Lo Nuevo En Spring3 0
 

Dernier

LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 

Dernier (20)

LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 

[ES] Introducción a Java EE 7 & HTML 5

  • 1. Introducción a: Java EE 7 & HTML 5 Eudris Cabrera Rodríguez @eudriscabrera @eudriscabrera 26 Abril 2014, Santo Domingo, R. D. Code Camp SQD 2014 #JavaEE7
  • 2. ● Desarrollador Informático / Consultor en PAFI ● (Programa de Administración Financiera Integrada / Ministerio de Hacienda). ● Desarrollador Java EE / SE, consultor y a veces entrenador en Java desde hace más de 7 años. ● Entusiasta de la tecnología y software libre. Comunidades ● Github: @ecabrerar ● Google Groups: @letsrockjava Sobre Eudris Cabrera
  • 3. Agenda ● Breve Reseña sobre Java ● Conceptos Generales sobre Java EE ● Aspectos importantes de Java EE 7 ● Primeros pasos con Java EE 7 ● Cómo empezar con Java EE 7 ● Algunos APIs de Java EE7
  • 4. Objetivos Destacar los aspectos más novedosos que ofrece Java EE 7 para el desarrollo de aplicaciones empresariales, enfocando el soporte para HTML5 y otras tecnologías relacionadas.
  • 5. Breve reseña sobre Java Entendiendo el ecosistema Java ● Plataforma Java: ○ Multi-plataforma. ○ Utiliza una máquina virtual para su ejecución (JVM) ○ Esta dividida en: ■ Java SE ■ Java EE ■ Java ME ■ Javafx ○ El estandar es manejado por Java Community Process (JCP) James Gosling, Creador de Java
  • 6. Popularidad del lenguaje Java ● TIOBE Index lo sitúa en el segundo lugar para el mes de Abril del 2014, muy cercano a Lenguaje C, que ocupa el primer lugar. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html ● Hoy en día, la tecnología Java ya está presente en 5 mil millones de tarjetas SIM y tarjetas inteligentes, 3 mil millones de teléfonos móviles, 80 millones de dispositivos de TV, incluyendo Blu-ray, printers, maquinas bancarias, eBooks Reader y Carros. ● Java SE 8 liberado en marzo del 2014, es la plataforma incluye la actualización más grande para el modelo de programación Java desde el lanzamiento de la plataforma en 1996.
  • 7. Java Platform, Enterprise Edition (EE) ● Es un entorno independiente de la plataforma centrado en Java para desarrollar, crear e implementar en línea aplicaciones empresariales basadas en web. ● Es el estándar en software empresarial. ● Se apoya ampliamente en componentes de software modulares ejecutándose sobre un servidor de aplicaciones.
  • 8. Diferencia entre JAVA SE y JAVA EE JAVA SE es la versión estándar de java. Es la api base del lenguaje mientras que JAVA EE podríamos decir que es una versión extendida de JAVA SE. La plataforma Java EE consta de un conjunto de servicios, API y protocolos que proporcionan la funcionalidad necesaria para desarrollar aplicaciones basadas en web de varios niveles. Java EE simplifica el desarrollo de aplicaciones y reduce la necesidad de programación, al proporcional componentes modulares normalizados y reutilizables, así como al permitir controlar muchos aspectos de la programación automáticamente por nivel.
  • 10. Java EE 6 cambió el juego .... ● Más Ligero. ● Introduce el concepto de perfiles (Web Profile and Full Profile). ● EJB empaquetado en archivos war. ● Servlet 3.0 ○ web.xml (opcional), @WebServlet, @WebFilter ● Soporte para servicios web RESTful con JAX-RS 1.1 ● Contextos e Inyección de Dependencia (CDI) para Java EE
  • 11. Java EE 7 productividad y enfocado en HTML5 ● Construido sobre la base de Java EE6. ● Soporte para HTML5. ● 4 nuevas especificaciones. ● 3 especificaciones con cambios importantes. ● 6 especificaciones con cambios menores. ● 5 especificaciones con cambios micro.
  • 13. Adopción de Java EE 7 https://blogs.oracle.com/theaquarium/entry/survey_sez_java_ee_71
  • 14. Cómo empezar con Java EE 7 ? Descargar e instalar: JDK 7(ó superior): http://www.oracle.com/technetwork/java/javase/downloads/index.html Instalar el IDE de su preferencia: NetBeans 7.4 o superior, versión completa o “Java EE” http://netbeans.org/downloads/ Eclipse 4.3 (Kepler) o superior http://www.eclipse.org/kepler/ Otros
  • 15. Soporte para HTML5 y tecnologías relacionadas
  • 16. JavaServer Faces 2.2 (JSR 344) ● Tecnología y Framework para el desarrollo de aplicaciones web en Java. ● Incluye: ○ APIs para el manejo de eventos, validar entradas, esquema de control de navegación ○ Administración de estados. ○ Basado en componentes ○ Eventos gestionados desde el servidor ● Disponible desde la versión 1.0, 2004 en Java EE ● Existen librerías tipo extensiones para el manejo de componentes visuales: ○ RichFaces ○ ICEFaces ○ PrimeFaces
  • 17. JavaServer Faces 2.2 (JSR 344) ● ¿Cómo trabaja JSF? ○ Utiliza taglib los cuales están asociados a clases manejadoras. ○ Todas las etiquetas son procesadas y presentada mediante HTML, mapeando cada etiqueta con su representación en el server. Codificación ○ Cada petición es manejada vía POST y decodificado los valores para ser procesadas.
  • 18. JavaServer Faces 2.2 (JSR 344) ● Managed Beans ○ Representan la separación de la vista con la regla de negocio. ○ Son componentes reusables. ○ Facilitan el procesamiento de la información desde el formulario al servidor y viceversa.
  • 19. JavaServer Faces 2.2 (JSR 344) ● Managed Beans
  • 20. JavaServer Faces 2.2 (JSR 344) ● JSF 2.2 ○ Pertenece al JEE 7. ○ Cambio de espaciado de nombre. ○ Incluye cambios en los siguiente aspecto: ■ Soporte HTML5. ■ Componente File Upload. ■ Faces Flow. ■ Protección sobre Cross Site Request Forgery ■ Multi-Templating.
  • 21. JavaServer Faces 2.2 (JSR 344) ● JSF 2.2 - File Upload ○ Incluye la etiqueta h:inputFile. Debe estar dentro de un form con el enctype “multipart/form-data” ○ La propiedad del Bean es del tipo javax.servlet.http.Part.
  • 22. JavaServer Faces 2.2 (JSR 344) ● JSF 2.2 - File Upload
  • 23. JavaServer Faces 2.2 (JSR 344) ● JSF 2.2 - Soporte HTML5
  • 24. JSF HTML 5 DEMO
  • 25. RESTful Web Services (JSR 339) JAX-RS 1.0: ○ Liberada en el 2008 para la versión Java EE 6. JSR-311 ○ Simplifica el proceso de creación de servicios Web mediante Plain Old Java Objects (POJOS) y anotaciones. ○ No requiere configuración adicional para utilizarlos en entornos Java EE 6. ○ Incluye anotaciones para implementar servicios Web: ■ @Path, @Get, @Put, @Post, @Delete, @Produces, @Consumes, entre otros.
  • 26. RESTful Web Services (JSR 339) Ejemplo Clase JAX-RS
  • 27. RESTful Web Services (JSR 339) ● JAX-RS 2.0: ○ Introduce elementos que ayudan a la productividad. ○ Simplifica el API ○ Incluye los siguientes aspectos: ■ API para el Cliente ■ Llamadas Asincrónicas vía Http ■ Filtros e interceptores
  • 28. RESTful Web Services (JSR 339) ● API para el Cliente Client client = ClientFactory.newClient(); WebTarget target = client.target("http://example.com/shop"); Form form = new Form().param("customer", "Bill") .param("product", "IPhone 5") .param("CC", "4444 4444 4444 4444"); Response response = target.request().post(Entity.form(form)); assert response.getStatus() == 200; Order order = response.readEntity(Order.class);
  • 29. RESTful Web Services (JSR 339) ● Llamadas Asincrónicas vía Http (API Cliente Asincrónico) InvocationCallback<Response> callback = new InvocationCallback { public void completed(Response res) { System.out.println("Request success!"); } public void failed(ClientException e) { System.out.println("Request failed!");n } }; client.target("http://example.com/customers").queryParam("name", "Bill Burke") .request().async() .get(callback);
  • 30. RESTful Web Services (JSR 339) ● Llamadas Asincrónicas vía Http (Server-side Asincrónico Http) @Path("/listener") public class ChatListener{ List<AsyncResponse> listeners = ...some global list...; @GET public void listen(@Suspended AsyncResponse res) { list.add(res); } }
  • 31. RESTful Web Services (JSR 339) ● Filtros
  • 32. RESTful Web Services (JSR 339) ● Interceptores @Provider //Codifica una salida con GZIP. public class GZIPEndoer implements WriterInterceptor { public void aroundWriteTo(WriterInterceptorContext ctx) throws IException, WebApplicationException { GZIPOutputStream os = new GZIPOutputStream(ctx.getOutputStream()); try { ctx.setOutputStream(os); return ctx.proceed(); } finally { os.finish(); } } }
  • 34. Java API for JSON Processing 1.0 (JSR 353) JSR 353 es el API de Java para procesamiento JSON (JSON-P) y define un API para el proceso (por ejemplo, análisis, generar, transformar y consulta) JSON. Este JSR forma parte de Java EE 7. El API permite producir y consumir JSON de manera secuencial ( equivalente a StAX en el mundo XML) y construir un modelo de objetos de Java para JSON ( equivalente a DOM en el mundo XML)
  • 35. Java API for JSON Processing 1.0 (JSR 353) Puntos importantes del API. Basados en DOM. JsonBuilder - Construye un objeto JSON o un arreglo JSON JsonReader - Lee un objeto JSON o un arreglo JsonWriter - Escribe un objeto JSON o un arreglo Streaming APIs JsonGenerator JsonParser
  • 36. Java API for JSON Processing 1.0 (JSR 353) Sintaxis JSON
  • 37. Java API for JSON Processing 1.0 (JSR 353) Construir objeto JSON con JsonBuilder
  • 38. Java API for JSON Processing 1.0 (JSR 353) Ejemplo de uso de JsonReader
  • 39. Java API for JSON Processing 1.0 (JSR 353) Ejemplo de uso de JsonWriter
  • 40. Java API for JSON Processing 1.0 (JSR 353) Escribiendo en un archivo usando JsonGenerator
  • 41. Java API for JSON Processing 1.0 (JSR 353) Leyendo un archivo con formato JSON utilizando JsonParser
  • 43. Java API for WebSocket 1.0 (JSR 356) WebSocket: Es un nuevo protocolo derivado de HTTP. HTTP es el protocolo estándar para la Web, es muy efectivo para una gran cantidad de casos de uso pero, sin embargo, tiene algunos inconvenientes en el caso de aplicaciones Web interactivas.
  • 44. Java API for WebSocket 1.0 (JSR 356) Desventajas de HTTP: Half-duplex: basado en el modelo de solicitud / respuesta. Verbose: una gran cantidad de información se envía en las cabeceras HTTP asociados con el mensaje. Con el fin de añadir un modo de inserción en el servidor, es necesario utilizar solución (poll, long poll, Comet / Ajax), ya que no existe un estándar. Este protocolo no está optimizado a escala en aplicaciones de gran tamaño para comunicación en tiempo real bidireccional.
  • 45. Java API for WebSocket 1.0 (JSR 356) El nuevo protocolo WebSocket ofrece funciones más avanzadas de HTTP porque es: Basado en 1 conexión TCP única entre 2 pares (mientras que cada solicitud / respuesta HTTP necesita una nueva conexión TCP) Bidireccional: cliente puede enviar el mensaje al servidor y el servidor también puede enviar un mensaje al cliente Full-duplex: cliente puede enviar varios mensajes al servidor, así como el servidor al cliente sin esperar una respuesta de sí
  • 46. Java API for WebSocket 1.0 (JSR 356)
  • 47. Java API for WebSocket 1.0 (JSR 356) WebSocket Server Endpoint
  • 48. Java API for WebSocket 1.0 (JSR 356) WebSocket Client
  • 50. Código fuente de los ejemplos en GitHub https://github.com/ecabrerar/codecampsdq40-javaee7
  • 51. Java EE 7 como toda tecnología, esta es tan buena como la disposición que tenga el usuario a hacer el mejor uso de ella. Anónimo.
  • 53. Referencias Todas las marcas registradas, así como todos los logotipos, imágenes, fotografías, audio y vídeos mostrados en esta presentación son propiedad de sus respectivos propietarios y/o representantes. Su utilización es solamente para fines ilustrativos. Enlaces: http://www.java.com/es/download/faq/techinfo.xml https://javaee7.zeef.com/arjan.tijms http://mgreau.com/posts/2013/11/11/javaee7-websocket-angularjs-wildfly.html http://java.dzone.com/articles/whats-new-jax-rs-20 http://www.infoq.com/news/2013/06/Whats-New-in-JAX-RS-2.0
  • 54. @eudriscabrera @eudris @ecabrerar @eudriscabrera Eudris Cabrera Rodríguez Ingeniero Telemático Desarrollador de Software / Consultor Informático eudris@gmail.com