Oracle Java
Desarrollo y arquitectura de aplicaciones Web con Java

Elige la convocatoria

Solicitar Info

Datos de la convocatoria seleccionada:

Presencial
Horario
Duración
125 horas
Idioma
Precio
1625,00 €
Acerca de este curso
A quién va dirigido
Objetivos del curso
Certificación asociada
Contenidos

Acerca de este curso

El presente curso ofrece al alumno fundamentos muy sólidos en la Plataforma de desarrollo Java Platform EE, no solo en aspectos concretos de ella (lenguaje java, paquetes disponibles, etc) si no sobre todo en los aspectos que más valor añadido le proporcionarán de cara a progresar en el mercado laboral: conocimiento profundo de orientación a objetos, patrones de arquitectura de aplicaciones empresariales, patrones de diseño, técnicas de mejora de la calidad del software, alta productividad con entornos de desarrollo sofisticados, etc.

El curso además cubre el temario en el que se basa la certificación oficial Oracle Certified Professional Java SE 8 Programmer, convirtiéndose así en una buena forma de prepararse para la obtención de esta certificación.

A quién va dirigido

Este curso en programación y arquitectura JAVA está dirigido a aquellos perfiles de usuarios interesados en iniciar sus conocimientos en la tecnología Java, Estudiantes, Ingenieros de Software, Analistas de aplicaciones, Arquitectos de Software, Consultores...

Para poder seguir el curso con garantías, se recomienda tener estudios relacionados con la informática, telecomunicaciones o bien tener nociones en redes y sistemas informáticos.

Es recomendable tener conocimientos previos de programación en otros lenguajes aunque no se trata de un requisito imprescindible para realizar el curso.

Objetivos del curso

El principal objetivo del curso es hacer llegar al alumno todos aquellos conocimientos necesarios para desarrollar aplicaciones web con Java EE, desde la introducción a la programación orientada a objetos hasta las características del lenguaje Java y las APIs (Application Programming Interfaces) que se utilizan para diseñar aplicaciones orientadas a objetos en la Plataforma Java.

Certificación asociada

El curso incluye, además, la realización gratuita de los siguientes exámenes de certificación  oficial*, necesarios para la obtención de la certificación Oracle Certified Professional Java SE 8 Programmer (OCP Java SE 8):

1Z0-808: Java SE 8 Programmer I
1Z0-809: Java SE 8 Programmer II

*Estos exámenes de certificación, valorados en 605,00€ (IVA incluido), están incluidos en el precio del curso para los miembros del programa PUE Alumni.

El alumno realizará el examen de certificación en las instalaciones de PUE gracias a su condición de centro certificador oficial Pearson VUE.

Contenidos

Módulo 1: Fundamentos de desarrollo en la plataforma Java
    1. La plataforma de desarrollo Java (The Java Platform)
    • El lenguaje de programación Java
    • El API de Java.
    • JVM (Java Virtual Machine)
    • Versiones de la plataforma Java
    • Archivos de la plataforma Java

    2. Conceptos importantes en el desarrollo de aplicaciones
    • Data Driven Development vs Object Oriented Development
    • All is a object
    • Metodología de análisis y diseño de aplicaciones software orientadas a objetos
    • Notación visual UML
    • Uso de patrones arquitectónicos
    • Uso de patrones de diseño (design patterns)

    3. La máquina virtual de Java (JVM)
    • Entorno de ejecución de aplicaciones
    • Versiones de JVM
    • Gestión de memoria automática
    • ¿Que son los bytecodes?
    • Proceso de decompilación

    4. El API de Java
    • Entorno de desarrollo de aplicaciones
    • Interfaz de programación de aplicaciones
    • Estructura del API de Java
    • Introducción a los conceptos de package, clase y objeto
    • Navegando por la documentación oficial del API de Java
    • Acceso al código fuente del API de Java
    • Packages más importantes del API de Java

    5. Introducción al desarrollo de aplicaciones Java
    • Herramientas de desarrollo en la plataforma Java (JDK).
    • Compilación, ejecución y distribución de aplicaciones Java.
    • Estructura de una aplicación en Java.
    • Archivos de distribución en Java: *.jar, *.war y *.ear
    • Las variables PATH y CLASSPATH
    • La Main-Class o clase de arranque de una aplicación
    • Gestión de la memoria en la plataforma Java.
    • Zonas de memoria (Stack, Heap, PermGem y String Pooling).
    • Situaciones de error típicas relacionadas con la memoria
    • Tipos de datos en la plataforma Java: tipos por valor vs tipos por referencia.
    • Las clases Wrapper
    • Los Strings en Java.
    • Comparación de Strings en Java
    • Las clases StringBuffer y StringBuilder
    • Uso de cadenas de texto con formato (String Formats)
    • Gestión de fechas en Java
    • ¿Qué significa deprecated?
    • Monitorizando la memoria de una aplicación
    • Uso de profilers

    6. Configuración del IDE de desarrollo: Netbeans
    • Familiarizándose con el entorno de desarrollo
    • Integración de la documentación del API de Java en Netbeans
    • Creación de nuestro primer proyecto
    • Proceso de compilación, ejecución y distribución de una aplicación en Netbeans
    • Uso de code-snippets o fragmentos de código automatizados
    • Diseño de nuestros propios code-snippets
    • Integración de librerías externas en Netbeans.
Módulo 2: Diseño de la capa de negocio o modelo en una aplicación
    1. Diagramas UML típicos
    • Tipos de diagramas UML
    • Diagrama de packages en UML.
    • Diagrama de clases en UML.
    • Diagrama de objetos en UML.

    2. Helper Classes o Utility Classes.
    • ¿Por qué debo usar clases de utilidad en mi aplicación?
    • Utilidad de las Helper Classes
    • Reusabilidad del código
    • Una primera aproximación a la herencia en Java
    • Clases selladas o clases finales
    • Constructores o operaciones constructoras
    • Evitando la posibilidad de instanciar objetos de una clase
    • Sobrecarga de métodos (overloads).

    3. Gestión de excepciones en Java
    • Como gestionar errores en tiempo ejecución
    • Consistencia del código ante situaciones erróneas
    • Tipos de situaciones erróneas: Exception vs Errors
    • Tipo de excepciones: checked exception vs unchecked exception
    • Jerarquía de clases en la gestión de excepciones
    • La clases Throwable, Exception y Error
    • Provocar o lanzar una excepción
    • Captura de excepciones o situaciones erróneas
    • El bloque try...catch...finally
    • La cláusula throws

    4. Expresiones regulares.
    • ¿Qué son las expresiones regulares?
    • ¿Para qué sirven las expresiones regulares?
    • Integración de las expresiones regulares en Java
    • Sintaxis básica de las expresiones regulares
    • Uso de cuantificadores en expresiones regulares
    • Operaciones de match y reemplazo basado en expresiones regulares
    • Los métodos matches() y replaceAll() de la clase String
    • El package java.util.regex (clases Pattern y Matcher)

    5. Conceptos de seguridad
    • Algoritmos de hash o digest: SHA1/MD5
    • El package java.security
    • La clase MessageDigest
    • Codificación/Decodificación en base64
    • Integración del API Apache Commons Codec

    6. Envío de emails: El API JavaMail.
    • Integración del API JavaMail en nuestro proyecto
    • Componentes del API JavaMail (Session, Transport, MimeMessage, ..)
    • Comunicación con un servidor SMTP
    • Pseudocódigo de consumo de recursos en Java
    • Uso de Properties Files (o archivo de propiedades)
    • La clase java.util.Properties

    7. JavaDoc: generación de documentación html automática
    • ¿Por qué debemos documentar nuestro código?
    • Uso de comentarios de documentación en nuestro código
    • Documentación interna vs documentación pública
    • Configuración de la herramienta javadoc
    • El archivo package-info.java
    • Modificando el diseño de la documentación generada

    8. Diseño de la capa de negocio
    • Object Oriented Development vs Data Driven Development
    • Business Classes o JavaBeans.
    • Entities o POJOs (Business Objects)
    • Principio de encapsulación (getters/setters).
    • Sobrecarga del constructor
    • Sobreescritura de métodos (overrides).
    • Los métodos toString(), equals() y hashCode().
    • Polimorfismo
    • La interface Serializable.
    • Las interfaces Comparable y Comparator.
    • Inicializadores de clase
    • Inicializadores de objeto
    • Uso de anotaciones en Java

    9. Tests unitarios: JUnit Testing Framework
    • Conceptos de TDD: Test Driven Development
    • Unit Testing Framewoks: JUnit
    • Juegos de pruebas unitarios o unit testing
    • Integración de JUnit en nuestro proyecto
    • Diseño de juegos de pruebas
    • Ejecución de juegos de pruebas
    • Ciclo de vida de un juego de pruebas
Módulo 3: Diseño de la capa de persistencia o acceso a datos en una aplicación

    1. Diseño de la capa de persistencia.
    • La problemática ORM (Object Relational Mapping).
    • Conceptos de serialización y deserialización de objetos
    • El patrón de diseño DAO (Data Access Objects).
    • Acceso transparente al repositorio de datos
    • Interfaz única de acceso a datos del repositorio
    • Elmodelo de acceso a datos con el patrón DAO
    • Implementación del patrón de diseño DAO

    2. El API JDBC (Java DataBase Connectivity).
    • Componentes del API JDBC.
    • Los drivers o controladores en JDBC.
    • El gestor de drivers o DriverManager.
    • JDBC URL.
    • Programación del API JDBC.
    • Soporte de transacciones en JDBC.
    • Archivos de propiedades (property files).
    • Alternativas a JDBC.

    3. Frameworks de persistencia: Hibernate.
    • Componentes de Hibernate.
    • Mapping files o descriptores XML.
    • HQL: Hibernate Query Languague.
    • Hibernate Mapping Attributes.

    4. Configuración del seguimiento o tracing
    • El proyecto Apache Logging Services.
    • El framework log4j.
    • Arquitectura y Componentes de log4j.
    • Uso de loggers, appenders y layouts
    • Niveles de prioridad en log4j.
    • Uso de thresholds en log4j
    • Configuración del framework log4j.
    • Visualizadores de logs: Chainsaw vs Lumbermill.
    • Uso de archivos de logs diarios
    • Almacenando los logs en una base de datos.

    5. Java Collection Framework (JCF).
    • Tipos de colecciones en el API de Java
    • La interface List
    • La interface Set
    • La interface Map
Módulo 4: Diseño de la capa de presentación en aplicaciones web (Servlets & JSP)
    1. Tecnología y arquitectura de aplicaciones web.
    • Componentes de una aplicación web.
    • Servidor web.
    • Cliente web.
    • El protocolo HTTP.
    • Los métodos HTTP.
    • Estructura de una petición HTTP.
    • Estructura de una respuesta HTTP.
    • Arquitectura de una aplicación web en Java.
    • El contenedor web (Web Container).
    • Funcionamiento de un contenedor web.
    • Servidores de aplicaciones.

    2. Tecnologías de diseño web.
    • Separación de contenido y diseño en sitios web.
    • Contenido de un sitio web mediante HTML y XHTML.
    • Diseño de un sitio web mediante CSS.
    • El modelo DOM (Document Object Model).
    • El metalenguaje XML.
    • Script de cliente: Javascript.
    • El modelo de programación Ajax (Asynchronous JavaScript And XML).

    3. Servlets.
    • ¿Qué es un servlet?.
    • Estructura típica de un servlet.
    • Ciclo de vida de los servlets.
    • Inicialización de los servlets.
    • Publicación de los servlets.
    • Contexto de configuración de un servlet (ServletConfig).
    • Parámetros de inicialización de un servlet (Servlet Parameters).
    • Contexto de ejecución de los servlets (ServletContext).
    • Parámetros de inicialización de una aplicación web (Context Parameters).
    • Atributos a nivel de aplicación (Application Scope Attributes).

    4. JSP (Java Server Pages).
    • Las páginas JSP (Java Server Pages).
    • Ciclo de vida de una página JSP.
    • Uso de JSP Scriptlets.
    • Uso de JSP Expressions.
    • Uso de JSP Directives.
    • Uso de JSP Declarations.
    • Uso de JSP Actions.
    • Objetos implícitos en JSP.
    • Atributos en las páginas JSP.

    5. Java Standard Tag Library (JSTL).
    • El API JSTL (Java Standard Tag Library).
    • Librerías del API JSTL.
    • Ventajas y desventajas respecto a los JSP scriptlets.
    • Uso de la directiva taglib.
    • EL: Expression Language.
    • Uso de variables implícitas: pageScope, sessionScope, applicationScope, param, …
    • Diseño de taglibs de usuario.

    6. Gestión del estado en aplicaciones Web.
    • Introducción a las sesiones en una aplicación web.
    • Atributos a nivel de sesión (Session Scope Attributes).
    • Mecanismos de gestión del estado.
    • La interface HttpSession.
    • Uso de cookies para la gestión del estado.
    • Configuración del timeout de una sesión.

    7. Web Application Listeners.
    • Introducción a los listeners de una aplicación web.
    • Instanciación de los listeners.
    • Publicación de los listeners en el deployment descriptor.
    • Eventos a nivel de aplicación web: la interface ServletContextListener.
    • Eventos a nivel de sesión: la interface HttpSessionListener.

    8. Web Application Filters.
    • Introducción a los filters de una aplicación web
    • La interface Filter
    • Publicación de los filters en el deployment descriptor
    • Ciclo de vida de los filters

    9. Despliegue o deployment de una aplicación web.
    • Estructura de archivos y directorios de una aplicación web.
    • El archivo de despliegue web o deployment descriptor (web.xml).
    • El archivo de distribución web (WAR File).
    • Empaquetado y despliegue de una aplicación web.
    • Configuración de páginas de error personalizadas.
    • Configuración de páginas de bienvenida.

    10. Servicios Web XML.
    • Introducción a los servicios web XML.
    • Arquitectura de un servicio web XML.
    • Protocolos: WSDL, UDDI, SOAP y XML.
    • Proveedor o productor de servicios web XML.
    • Consumidor o cliente de servicios web XML.
    • El API JAX-WS.

    11. Seguridad en aplicaciones Web.
    • Introducción a la seguridad en aplicaciones web.
    • Autentificación y autorización.
    • Confidencialidad e integridad de datos.
    • El contenedor web y la seguridad.
    • Uso de realms: Memory-Realm vs JDBC-Realm.
    • Definición de roles y usuarios.
    • Definición de restricciones de seguridad.
    • Tipos de autentificación: BASIC, DIGEST, FORM y CLIENT-CERT.

    12. Internacionalización (i18n) y localización (l10n).
    • ¿Qué es la internacionalización (i18n)?.
    • ¿Qué es la localización (l10n)?.
    • Referencias culturales.
    • La librería fmt del API JSTL.
    • Localización de fechas y números.
    • Localización de texto mediante resource bundle.

Convocatorias abiertas