Java Programming for Server-Side (JEE) OO-Experienced Developers (C++, etc) Training

How To Take This Class

Live Instructor-Led Online Class

Cost: $2,500.00

  • Open enrollment class for individuals
  • Live class with an instructor
  • Free class retakes forever!
  • Six months of instructor email support
  • Hands-on exercises and student labs
  • Classes never cancelled due to low enrollment
  • Money-back guarantee

    Sorry, no courses are scheduled at this time. Please Contact Us to schedule this course.

Onsite or Offsite Group Training

Cost: Based on number of students

  • For groups as small as 3 people
  • Class Held at our location or yours
  • Hands-on exercises and student labs
  • Customization at no extra charge
  • Six months of instructor email support
  • All-inclusive pricing
  • Money-back guarantee
Request Group Pricing Proposal

Course Duration

5 Days

Course Description

This five-day, comprehensive hands-on training course will teach you essential Java 6 programming skills, in preparation for building server-side applications on the JEE platform. This is a five-day, comprehensive hands-on workshop geared for developers who have prior working knowledge of object-oriented programming languages such as C++. This course is geared for software developers who need to understand what JEE is, what it means in terms of today's systems and architectures, and how to apply JEE technologies and practices in implementing and deploying robust, flexible web applications. In addition to the normal exercises that are liberally sprinkled throughout the course, there is a case study that covers the entire spectrum from use cases to object-oriented design to implemented classes. This case study supplements the course and can be used during and after the course as a reference and a tool for reviewing and practicing what was learned in class.

Course Objectives

Upon successful completion of this course, students will be able to:
  • Understand not only the fundamentals of the Java language, but also it’s 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 Audience

This is an introductory level training course.

Course Prerequisites

Attendees should be 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.

Course Syllabus

  1. Using the JDK
    • Setting Up Environment
    • The Development Process
    • Locating Class Files
    • Compiling Package Classes
    • Source and Class Files
    • Applications and Applets
  2. Writing a Simple Class
    • Classes in Java
    • What Is a Class?
    • Defining the Class
    • Class Modifiers
    • Class Instance Fields
    • Instance Fields Diagram
    • Primitives vs. Object References
    • Creating Objects
    • The main Method
    • Using the Dot Operator
    • Writing Output
  3. The Java Platform
    • Defining Java
    • Java Provides Several Platforms
    • Note on Terminology
    • Java SE 6
    • Java SE Development Kit (JDK)
    • Executing Programs
    • Lifecycle of a Java Program
    • Responsibilities of JVM
    • Java is Dynamic: The Runtime Process
    • Primary Areas of the JVM Runtime
    • Garbage Collection
    • Documentation and Code Reuse
    • JavaDoc Provides Documentation Delivery
    • In-Line Comments are Translated into HTML Rendering
    • Working with Java in Your Environment
  4. Object-Oriented Programming
    • The Object Oriented Way
    • Real-World Objects
    • Classes and Objects
    • Examples of Classes and Objects
    • Classes and Objects Diagram
    • Object Behavior
    • Methods and Messages
  5. Inheritance, Abstraction, and Polymorphism
    • Encapsulation
    • Inheritance
    • Method Overriding
    • Aggregation
    • Type Abstraction – Grouping as Supertype
    • Polymorphism
    • Polymorphism Diagram
  6. Adding Methods to the Class
    • Instance Methods
    • Passing Parameters Into Methods
    • Returning a Value From a Method
    • Overloaded Methods
    • Overloaded Methods Diagram
    • Constructors
    • Defining a Constructor
    • Optimizing Constructor Usage
  7. Language Statements
    • Operators
    • Comparison and Logical Operators
    • Looping: The for Statement
    • Looping: The while Statement
    • Looping: The do Statement
    • Continue and Break Statements
    • The switch Statement
  8. Using Strings
    • Strings
    • String Method
    • String Equality
    • StringBuffer
    • Strings, StringBuffer, and StringBuilder
    • StringTokenizer
    • Scanner
    • Scanner - File Source
    • Scanner - Getting Input
    • Scanner - Testing for Tokens
    • Scanner - Patterns for Tokens
    • Formatter
    • Formatter – Probable First Encounters
    • Formatter – StringBuffer
  9. Specializing in a Subclass
    • Extending a Class
    • The extends Keyword
    • Casting
    • Overriding Superclass Methods
    • Method Overriding Diagram
    • Calling Superclass Methods from Subclass
    • The Object Class
    • The equals Method
    • Default Constructor
    • Implicit Constructor Chaining
    • Passing Data Up Constructor Chain
    • A Common Programming Mistake
    • Editing Tools in Your IDE
  10. Fields and Variables
    • Fields vs. Variables
    • Data Types
    • Default Values
    • Block Scoping Rules
    • Using this
    • Final and Static Fields
    • Static Variable Diagram
  11. Using Arrays
    • Arrays
    • Accessing the Array
    • Multidimensional Arrays
  12. Static Methods and Fields
    • Static Fields
    • Simple Example of Static Fields
    • Static Methods
  13. Java Packages
    • The Problem
    • Packages
    • Class Location of Packages
    • The Package Keyword
    • Importing Classes
    • Executing Programs
    • Visibility
    • Java Naming Conventions
    • Packages Diagram
    • Refactoring in Your IDE
  14. Inheritance and Polymorphism
    • Polymorphism
    • Polymorphism: The Subclasses
    • Treating Derived Classes as the Superclass
    • Casting to the Derived Class
    • Using instanceof For Downcasting
    • Upcasting vs. Downcasting
    • Calling Superclass Methods From Subclass
    • The final Keyword
  15. Interfaces and Abstract Classes
    • Separating Capability from Implementation
    • Abstract Classes
    • Shape as an Abstract Class
    • Polymorphism With Abstract Classes
    • Interfaces
    • Implementing an Interface
    • Extending Interfaces
    • Polymorphism With Interfaces
    • Type Checking
    • Abstract Classes vs. Interfaces
    • Interfaces Diagram
  16. Exceptions
    • What is an Exception?
    • Exception Architecture
    • Handling Exceptions
    • The Throwable Class
    • The try Block
    • The catch Block
    • The finally Block
    • Full Example of Exception Handling
    • Generalized vs. Specialized Exceptions
    • Overriding Methods
    • Creating Your Own Exceptions
    • Throwing Exceptions
    • Re-throwing an Exception
    • Checked vs. Unchecked Exceptions
    • Debugging in Your IDE
  17. Utility Classes
    • Wrapper Classes
    • The Number Class
    • Numbers and Strings
    • Big Decimal
    • Random Numbers
    • Decimal Formatting
    • The Date Class
  18. Vector and Hashtable
    • The Vector Class
    • Creating and Using a Vector
    • Java Collections Methods in Vector
    • Hashtables
    • Understanding How Hashing Works
    • Creating and Using a Hashtable
    • Performing Lookups
  19. Collections
    • The Collections Framework
    • Collections Feature Types
    • Collections Interface Hierarchy
    • Map Interfaces
    • Optional Methods
    • The Collection Interface
    • Iterators
    • The Set Interface
    • SortedSet
    • Set and SortedSet Example
    • Comparable and Comparator
    • The List Interface
    • List Example
    • ListIterator
    • Queue Interface
    • QueueExample
    • BlockingQueue
    • BlockingQueue Implementations
    • Collections Utility Methods
    • Features of the Implementation Classes
    • Synchronization Wrappers
    • Feature Comparison
    • Using the Right Collection
    • Use of Collections vs. Vector/Hashtable
    • Optimizing Collection Constructors
    • Copying Arrays
    • Creating and Using an ArrayList
    • Creating and Using a HashMap
  20. Generics
    • Generics and Parametric Polymorphism
    • Simple Generics
    • The Mechanics of Generics
    • Generics and Subtyping
    • Compiler Restrictions on Generics and Subtyping
    • Generics as Arguments in Methods
    • Rationale Behind Wildcards
    • Wildcards In Use
    • Regular Wildcards in Method Parameters
    • Bounded Wildcards
    • Standard Rules Apply
    • Generic Methods
    • Interoperability with Legacy Code
    • Raw Types
    • Legacy Calls To Generics
    • When Generics Should Be Used
    • Build Paths in Your IDE
  21. Overview of Java GUIs
    • JFC – Java Foundation Classes
    • Categories of Classes in JFC
    • Creating the Frame
    • Adding Content to a Frame
    • A Closer Look at Layout Managers
    • BorderLayout
    • JFC Provides an Event Handling Structure
  22. Autoboxing, Enhanced for Loop and Varargs
    • Autoboxing/Unboxing
    • Autoboxing/Unboxing Issues
    • For() Loops and Collections
    • The Enhanced for() Loop
    • Another Example - Problematic
    • Another Example – Enhanced for()
    • Enhanced for() Loop Restrictions
    • Previous Variable Argument Support
    • Variable Arguments
    • Varargs rules
    • Issues
  23. Enumerations and Static Imports
    • Rationale for Enumerations
    • Enumeration Syntax
    • Enumerations Methods
    • Enumerations as a Better Class Type
    • Enumeration Code
    • EnumSet
    • EnumMap
    • When You Should Use Enumerations
    • Using Static Imports
    • When You Should Use Static Imports
  24. Java I/O
    • The Java I/O Mechanism
    • Byte Level I/O
    • Subclasses Accessing Real Data
    • Filter Classes
    • Reading Stream as Data Primitives
    • Adding Buffering for Better Performance
    • Writing Buffered Data to a File
    • Character Level I/O
    • Subclasses Accessing Real Data
    • Reader/Writer Filter Classes
    • Serialization
    • Switching Java Versions in Your IDE
  25. Introduction to Annotations
    • Annotations Overview
    • Working with Java Annotations
    • Example of Using @Override
    • Annotations are Heavily Used in Many Technologies
    • Declaring Persistence in Hibernate
  26. JDBC
    • What is JDBC?
    • Structured Query Language (SQL)
    • Connecting to the Database
    • Statements
    • Statement and PreparedStatement
    • ResultSet
    • JDBC Diagram
    • Executing Inserts, Updates, and Deletes
    • Controlling Transactions and Concurrency
    • Mapping SQL Types to Java Types
    • Database Connection Via JDBC Calls
    • Rationale for Connection Pooling
    • Connection Pooling in JDBC
    • Database Connection Using a DataSource
    • Stored Procedures Defined
    • Callable Statement Syntax
    • Stored Procedure Parameters
    • RowSet Implementations
    • JDBCRowSet
    • JDBCRowSet Approach
    • JDBCRowSet – Retrieving Data
    • JDBCRowSet Example
    • CachedRowSet
    • CachedRowSet Approach
    • CachedRowSet Example
  27. Java Logging
    • Why Logging?
    • Logging Framework
    • Logging in Java
    • Java Logging Framework
    • The Logger Class
    • Global Configuration
    • Logging Levels
    • Programmatically Setting Logging Properties
    • Programmatic Handlers
    • Formatters
    • Logging Security & Performance
  28. Technical Overview of JEE
    • What is JEE?
    • Common Themes In JEE Framework
    • JEE Containers and Components
    • Servlets
    • Java Server Pages (JSP)
    • EJBs and Web Services
    • JEE Containers
    • JEE Application Modules
    • The JEE 1.5 Specification
    • JEE Platform Roles
    • Annotations
    • Dependency Injection
  29. JEE Application Architectures (web based)
    • JEE and the Web
    • Adding JSPs to Separate Presentation
    • Eliminating Java code from view
    • The Model 2 Architecture
    • Using EJBs
    • JEE Infrastructure Supporting Web Applications Lesson Review
  30. Understanding Web Applications
    • JEE Application Modules
    • The Truth about Archives
    • Enterprise Application Archive (EAR)
    • Enterprise JavaBean Archive (JAR)
    • JEE Application Client (JAR)
    • Resource Adapter Archive (RAR)
    • Web Application Archive (WAR)
    • Directory Structure
  31. Configuring Web Applications
    • Mapping an HTTP Request to a Resource
    • The web.xml File
    • Structure
    • Declaring Servlets and JSPs
    • Servlet Mapping
    • Servlet Init Parameters
    • Web Application init Parameters
    • Welcome Page
    • Error Page
  32. Introduction to Servlets
    • Servlet Overview
    • Life Cycle of Servlets
    • Servlet Lifecycle is Handled by Web Container
    • HttpServlet
    • Writing the init Method
    • HttpServlet doXXX Methods
    • Writing a Simple HTTP Servlet
    • HttpServletRequest Methods
    • ServletResponse
    • HttpServletResponse
    • Servlet I/O Classes
    • Return a Status Code
    • Building the Output Document
    • Sending Binary Content
  33. Processing Input Data
    • Form Processing with Servlets
    • HTML Form
    • LoginServlet doPost
  34. Sever-Side Control
    • Request Dispatcher
    • Forward the processing
    • Passing Processing on and Getting it Back
    • Servlet Runs Within Web Container Environment
    • Several Options for Receiving Data
    • Init Parameters and Attributes
    • ServletConfig; ServletContext
    • Servlet Variables are Scoped
    • HTTP Request Information
    • Several Options for Sharing Data
    • configuration and Context
    • Servlet Variables
    • HttpServlet Request
    • Threading and Data
    • Threading and Data 2
  35. Client Side Control
    • Output Buffering
    • Setting Status Codes; Setting Headers
    • sendRedirect
    • Disabling Client Caching
    • Supporting Persistent Connections
    • Setting Content Length
    • Dynamic Content Pushing
    • Maintaining Client State – Sessions
  36. Session Management
    • Tracking Problem – Stateless HTTP
    • Data Problem – Session Data
    • Solving the Tracking Problem
    • Cookies
    • Cookie Behavior; Retrieving Cookies
    • servlet to set Cookies
    • Servlet to Show Cookies
    • URL Rewriting
    • Solving the Data Problem
    • Web Container Manages Session Instances
    • Sessions with Cookies
    • Cookie-Based Sessions
    • Basic Session Implementation
    • Cookie Detection is not Standardized
    • Getting Rid of Http Sessions
    • Session with URL Rewriting
  37. Application and Session Events
    • Event Listener Model
    • Life Cycle Events in a Web-Application
    • Declare the Listener
    • Type of Events
    • Context Listeners; Session Listeners
    • Session Listeners for Session-Objects
  38. Overview of Filters
    • What is a Filter
    • Single Filter
    • Filter Objects
    • doFilter Method
    • init Method
    • Filter Life Cycle
    • Cascading Filters
  39. Filtering Requests and Responses
    • Request Wrapper
    • Process the Request
    • Examples of Request Filters
    • Filter the Response
    • Response Wrapper
  40. Introduction to JavaServer Pages
    • Separating Presentation from Model
    • Java Server Page (JSP): An Extension of Servlet
    • Lifecycle of a JSP
    • Example JSP
    • JSP Syntax Consists of Three Types
    • JSP Scripting: Declarations; Expressions; Scriptlets & Directives
    • The session Attribute
    • The errorPage/isErrorPage Attribute
    • JSP Actions
    • JSP Actions: Include/Forward
    • Typical JSP Access Model
    • JSP Action: useBean
    • Implicit Objects
    • JSPs or Servlets?
    • The web.xml in JEE 5
    • JSP Format Rules
    • JSP Error Pages
  41. JSP Implicit Objects
    • Implicit Objects
    • Page Object; Config Object
    • Request Object; Response Object
    • Out Object
    • Output Buffer
    • Session Object
    • Application Object
    • PageContext Object
    • Attributes
    • Session Attributes
    • Exception Handling