Course intended for:

The training is aimed at web application developers, willing to supplement their skills on latest technologies, as well as for people who know Java and who want to start an adventure with web applications using latest technologies. The training is carried out using the latest Java Enterprise Edition - version 7. For those wishing to work with older and established technologies we recommend WEB2 training.

Course objective:

Participants will learn how to design and implement applications using Java EE platform technologies. The goal of the training is to gain the ability to create scalable applications, in accordance with the arcane art: from business components to highly ergonomic and functional interfaces suited to the WEB 2.0 trends.

In particular: Participants will learn in JSF2.2 in details, including RichFaces, IceFaces. They will learn how to design and implement the business logic layer using EJB 3.2 combined with the JPA2.1 mechanisms of object-relational mapping. They will also learn the CDI specification.

Course strengths:

The training program covers issues related to a web application development. In contrast to other trainings, this course is not focused on a single technology, but it covers most important issues of selected technologies. As a result, after completing the training, participants will be able to implement complete web applications by themselves. Training program is constantly updated due to a rapid development of web solutions.

Requirements:

The participants are required basic knowledge of databases and SQL, basic programming skills in Java, basic knowledge of JavaScript and HTML.

Course parameters:

5*7 hours of lectures and workshops at a ratio of 1:3. During workshops, in addition to simple exercises, participants will design and implement web application using JEE7, JS, HTML. Group size: max. 8-10 people.

Course curriculum

  1. Introduction

    1. Java Enterprise Edition

    2. JEE most commonly used components: EJB, CDI, JPA, web services, websockets, servlets.

    3. Design and implementation with JEE

    4. AngularJS as a MVC framework, thin versus thick client

  2. Managed Beans specification

  3. Business logic layer - EJB 3.2

    1. EJB 3.x component types

    2. How does it work?

    3. Session components

      1. Stateless

      2. Statefull

      3. Singleton

      4. Lifecycle, lifecycle callbacks

      5. Accessing EJB

        1. Locally

        2. Locally without an interface

        3. Remotely

        4. Web service

      6. Asynchronous EJBs

      7. Concurrency

        1. Container role

        2. SFSB and concurrency

    4. Working witch resources

      1. JNDI lookups

      2. Inversion of Control

    5. Interceptors

    6. Exceptions

    7. Message Driven Beans

      1. JMS2.0

      2. How does it work?

      3. MEPs

    8. Security

    9. Transactions

      1. Container managed transactions (CMT)

      2. Bean managed transactions (BMT)

      3. Client managed transactions

      4. JTA a JTS, CORBA

    10. TimerService

      1. Timer and TimerService

      2. @Schedule, @Schedules, @Timeout

    11. EJB and web services

      1. Web services basics

      2. JAX-WS/JAX-RS and EJB/CDI

    12. Deployment

      1. EJB module (jar)

      2. Enterprise Archive (ear)

      3. Web Archive (war)

      4. Full vs light (web) server profile

      5. EJB embedded container

    13. Testing EJB

    14. EJB Lite and web applications

  4. Persistence layer and Java Persistence API 2.1

    1. ORM conception

    2. Entities

      1. simple

      2. embedded

      3. accessing fields

      4. collections

    3. Asociations

    4. Keys

      1. Simple

      2. Complex

      3. Automatic generation of keys

    5. PersistentContext

      1. Container managed and application managed

      2. Transaction and Extended

    6. Entity lifecycle

    7. DML

    8. Transactions

    9. Queries

      1. JPQL

        1. Syntax

        2. Query and TypedQuery

        3. Named queries

        4. Native queries

      2. JPA2.1 Criteria API

        1. Criteria API
      3. serach-within and serach-by-example

      4. Native queries mapping

    10. Lifecycle listeners

    11. Testing JPA

    12. Deployment

      1. Java SE/dektop

      2. Web module

      3. EJB module

    13. Validation

      1. Bean Validation 1.1

        1. Introduction to Bean Validation

        2. Validating fields, methods

        3. Parametrizing validations

        4. Built-in validations

        5. Custom validations

        6. Validation process

          1. Fields, objects, graphs

          2. Groups and sequences

          3. Blocking field access

    14. JPA2.1 and Bean Validation

      1. Configuration

      2. Validations and database restrictions

    15. Inheritance

    16. Locking

      1. optimistic locking

      2. pessimistic locking

      3. Extensions in JPA2.1

    17. 2nd level cache

      1. The idea

      2. Configuration

      3. Entities

      4. Interaction between cache and database

      5. Hibernate Cache (option)

      6. JPA2.1 Cache

      7. Issues

    18. JPA providers (Hibernate, Toplink, EclipseLink, OpenJPA)

    19. Hibernate in details (option)

      1. Hibernate API

      2. Features

      3. Hibernate: Search, Shards, Validator, Envers

    20. Design patterns

  5. Java Servlet 3.1

    1. Introduction

    2. Lifecycle of a servlet

    3. Sharing data

    4. Servlet initialization

    5. Process HTTP requests

    6. Filtering

    7. File upload, media types

    8. WebContext

    9. Asynchronous processing

    10. Nonblocking I/O

    11. HTTP 1.1

    12. Security

  6. GUI

    1. Introduction to JSF

      1. WebApp typical problems

      2. Component-event model

    2. Request cycle

      1. Request types

      2. Phases

      3. Full and partial processing

    3. Component model

    4. Classes and interfaces

    5. Scopes

      1. What is JSF scope?

      2. Configuration

      3. Custom scopes

    6. Expression Language

    7. Views

      1. JSF tags

        1. HTML

        2. Core

      2. View Declaration Language

      3. JSF facelets

        1. Benefits

        2. Templating

        3. Tags

        4. Composite Components

      4. JSF and JSP

      5. JSF and REST

      6. JSF and HTML5

    8. Conversation models

      1. Built-in converters

      2. Custom converters

    9. Validation

      1. Built-in validators

      2. Custom validators

      3. Default validator

      4. Bean Validation 1.1 and JSF

      5. Validation events

      6. Complex validation scenarios

    10. Events

      1. Events and listeners

      2. Action events

      3. Phase events

      4. System events

    11. Navigation

      1. Classic

      2. Short

      3. Conditional

      4. Dynamic

      5. Pull and push MVC

    12. Internationalization

    13. Web interface issues

      1. Wizards

      2. Pagination

      3. Master-Detail, LOV

    14. Error handling

    15. Resources

      1. Resource Request

      2. EL

    16. Behavior

    17. Customizations

      1. Custom component

      2. Custom renderer

      3. Custom tag

    18. Deployment model

    19. JSF testing with JSFUnit/Selenium

    20. Security

  7. Web application using AJAX and JSF

    1. AJAX communication models

    2. JSON

      1. Introduction

      2. Java API for JSON Processing

      3. JSON and Restful web service

    3. Prototype and JQuery libraries

    4. JSF2

      1. f:ajax and Ajax Behavior

      2. Partial processing

      3. DOM based operations

      4. Queueing

      5. Error handling

    5. JSF libraries

      1. PrimeFaces

      2. OmniFaces

      3. RichFaces

      4. PrettyFaces

      5. IceFaces

  8. CDI (WebBeans)

    1. Introduction

      1. Bean

      2. Context

      3. Scope

      4. Injection

    2. Beans

      1. Managed beans

      2. Session means

      3. Specialization

      4. Active and inactive beans

    3. Scopes

      1. Built-in scopes

      2. Conversation scope

      3. Dependent scope

      4. Nonstandard scopes

      5. Default scope

      6. Lifecycle of scope objects

    4. Injection

      1. Where to inject

      2. Qualifiers, Alternatives, Stereotypes

      3. Named injections

    5. Producers

    6. Events and listeners

    7. CDI and EJB

Any questions?

* Required.


Contact
Phone +48 22 2035600
Fax +48 22 2035601
Email