Course Overview

New to Java and need to get a handle on the latest Java EE / JEE web developer essentials? Need to learn Java, without the GUI and Swing? This five-day, comprehensive hands-on training course will teach you essential Java programming skills, in preparation for building server-side applications on the Java EE platform.

Java Enterprise Edition (Java EE) is a powerful platform for building web applications. The Java EE platform offers all the advantages of developing in Java plus a comprehensive suite of server-side technologies. This course tells you what you need to know to design and build your own web applications. You'll learn the details of the key JEE technologies and how to leverage the strengths of each, with special focus on Servlets and JSPs.  At the same time, you'll be learning about the big picture of Java EE and how to design web applications that are robust, efficient, secure, and maintainable. If you want to deliver an application on the web, you'll find this course essential.

NOTE: If you are new to OO programming, you should consider the Introduction to Java Web Development / Java EE for Developers New to OO as an alternative.

Key Learning Areas

Students who attend Java Web Developer / Introduction to Java EE for OO Programmers will leave the course armed with the skills they require to develop solid object-oriented applications written in Java, using sound coding techniques and best coding practices, with a specific focus on server-side development.

Our engaging instructors and mentors are highly experienced practitioners who bring years of current "on-the-job" experience into every classroom. Working in a hands-on learning environment, guided by our expert team, attendees will learn to:

  • Understand not only the fundamentals of the Java language, but also, its importance, uses, strengths and weaknesses
  • Understand the basics of the Java language and how it relates to OO programming and the Object Model
  • Learn to use Java exception handling and logging features
  • Understand and use classes, inheritance, and polymorphism
  • Understand and use collections, generics, autoboxing, and enumerations
  • Use the JDBC API for database access
  • Work with annotations
  • Design and build robust and maintainable web applications
  • Create dynamic HTML content with Servlets and Java Server Pages
  • Make Servlets and JSP work together cleanly

Course Outline

Essential Java Programming
Java: A First Look

The Java Platform

  • Java Platforms
  • Lifecycle of a Java Program
  • Responsibilities of JVM
  • Documentation and Code Reuse

Using the JDK

  • Setting Up Environment
  • Locating Class Files
  • Compiling Package Classes
  • Source and Class Files
  • Java Applications

Getting Started with Java
Writing a Simple Class

  • Classes in Java
  • Class Modifiers and Types
  • Class Instance Variables
  • Primitives vs. Object References
  • Creating Objects

Adding Methods to the Class

  • Passing Parameters into Methods
  • Returning a Value from a Method
  • Overloaded Methods
  • Constructors
  • Optimizing Constructor Usage

Language Statements

  • Operators
  • Comparison and Logical Operators
  • Looping
  • Continue and Break Statements
  • The switch Statement
  • The for-each() Loop

Using Strings

  • Strings
  • String Methods
  • String Equality
  • StringBuffer
  • StringBuilder

Specializing in a Subclass

  • Extending a Class
  • Casting
  • The Object Class
  • Default Constructor
  • Implicit Constructor Chaining

Essential Java Programming
Fields and Variables

  • Instance vs. Local Variables: Usage Differences
  • Data Types
  • Default Values
  • Block Scoping Rules
  • Final and Static Fields
  • Static Methods

Using Arrays

  • Arrays
  • Accessing the Array
  • Multidimensional Arrays
  • Copying Arrays
  • Variable Arguments

Java Packages and Visibility

  • Class Location of Packages
  • The Package Keyword
  • Importing Classes
  • Executing Programs
  • Java Naming Conventions

Advanced Java Programming
Inheritance and Polymorphism

  • Polymorphism: The Subclasses
  • Upcasting vs. Downcasting
  • Calling Superclass Methods from Subclass
  • The final Keyword

Interfaces and Abstract Classes

  • Separating Capability from Implementation
  • Abstract Classes
  • Implementing an Interface
  • Abstract Classes vs. Interfaces

Exceptions

  • Exception Architecture
  • Handling Multiple Exceptions
  • Automatic Closure of Resources
  • Creating Your Own Exceptions
  • Throwing Exceptions
  • Checked vs. Unchecked Exceptions

Java Developer's Toolbox
Utility Classes

  • Wrapper Classes
  • The Number Class
  • Random Numbers
  • Autoboxing/Unboxing
  • The Date Class

Enumerations and Static Imports

  • Enumeration Syntax
  • When You Should Use Enumerations
  • Using Static Imports
  • When You Should Use Static Imports

Collections and Generics
Introduction to Generics

  • Generics and Subtyping
  • Bounded Wildcards
  • Generic Methods
  • Legacy Calls to Generics
  • When Generics Should Be Used

Collections

  • Characterizing Collections
  • Collection Interface Hierarchy
  • Iterators
  • The Set Interface
  • The List Interface
  • Queue Interface
  • Map Interfaces
  • Using the Right Collection
  • Collections and Multithreading

Java Application Development
Introduction to Annotations

  • Annotations Overview
  • Working with Java Annotations

Introduction to Java EE
Developing Java EE applications

Enterprise Development

  • Enterprise Application Software
  • Requirements of Enterprise applications
  • Scalability, Load Balancing, Fail Over
  • Resource pooling

Java EE Core Components

  • Overview of Java EE Core Components
  • Web Tier Components
  • Application Tier
  • Deployable Units
  • Deployment Descriptors
  • The Java Naming and Directory Interface (JNDI)

Java EE Dynamic Web Applications
Introduction to Servlets

  • The Servlet Interface
  • The Web Container
  • Creating HTML Output Using Servlets
  • The @Webservlet Annotation
  • Interaction Between web.xml and Annotations
  • The @Webinitparam Annotation

Form processing using Servlets

  • Using HTML5 Forms with Servlets
  • Processing Request Parameters
  • HttpServletRequest Methods
  • HttpServletResponse Methods

Java Server Pages

  • Java Server Pages (JSPs)
  • The Relationship Between JSPs and Servlets
  • The JSP lifecycle
  • The role of JSPs in Java EE

Implementing MVC in JEE

  • Model View Control
  • Using the RequestDispatcher
  • Handling Requests
  • The Request Scope
  • Handling Request Attributes
  • The Expression Language (JSR 341)
  • EL in Template text

Session Management

  • Sessions in Web Applications
  • The HttpSession object
  • Session Management in Java EE
  • Handling Cookies
  • URL-Rewriting

Using Resources
Java Data Access JDBC API

  • Connecting to the Database
  • Statement and PreparedStatement
  • ResultSet
  • Executing Inserts, Updates, and Deletes
  • Controlling Transactions and Concurrency

JEE DataSources

  • DataSources in JEE
  • Setup a DataSource
  • Using CDI to inject a DataSource

Overview of JPA

  • Introduce the Java Persistence API (JPA)
  • Benefits of Using an ORM framework
  • Hibernate and JPA

Who Benefits

This is an introductory level training course, designed for experienced OO developers (such as C++ or SmallTalk) that need to extend their skills in web development and understand the basic architecture of a JEE web application and/or implement a web application, taking advantage of what JEE brings to the table.

Take After: Our core Java training courses provide students with a solid foundation for continued learning based on role, goals, or their areas of specialty.  Our object oriented, Java developer learning paths offer a wide variety of follow-on courses such as:

  • Continued Java & Java EE training: Spring, Microservices, RXJava, REST, Java for Web, Web Services, Tuning, Patterns & more
  • TDD / Test Driven Development, JUnit / Unit Testing, Agile development training
  • Secure Java Coding / Java Security and secure application web development training
  • Mobile developer / Android training
  • Please contact us for recommended next steps tailored to your longer-term education, project, role, or development objectives

Student Materials & Lab Environment
All course software (limited versions, for course use only), digital courseware files or course notes, labs / data sets and solutions (as applicable) are provided for you in our “easy access / no install required” high-speed remote lab environment. Our tech team works with every student to ensure everyone is set up with working access and ready to go prior to every course start date, ensuring a smooth delivery and great hands-on experience. Please ask for details.

Prerequisites

Introduction to basic Java and basic JEE (Servlets, JSPs and JDBC) programming for experienced programmers with practical, current development skills in another OO language such as C++ or C#