PTR - People, Training ResultsPeople, Training, Results
Independent Technical IT Computer Training Courses

Scheduled Classroom based Training Courses

Fast Track to Java Enterprise Edition Course

Course Description

Java Enterprise Edition is a powerful platform for building web applications. This 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 Java EE technologies and how to leverage the strengths of each, with special focus on Servlets and JSP. At the same time, you'll be learning about the big picture of Java Enterprise Edition and how to design web applications that are robust, efficient, and maintainable. If you want to deliver an application on the web, you'll find this course essential.

Course pre-requisites:

This course is for Programmers interested in utilizing the capabilities offered by Java Enterprise Edition to create web applications.

Delegates should have a working knowledge of Java.

Topics covered on the 5 day Fast Track to Java Enterprise Edition course

Java EE Overview

  • Java EE’s Place within Java
  • Java EE – Distributed Multitier Applications
  • Important J2EE/Java EE 5 APIs
  • Commercial Java EE Products
  • Common Commercial Java EE App Servers
  • Enterprise Applications – The Three Pillars
  • Persistent Storage
  • Business Logic
  • Presentation Logic
  • Presentation Logic – Servlets
  • Presentation Logic – JavaServer Pages

Java EE Architecture

  • Multi-tiered Architecture
  • Web-Based Architecture
  • Web-Based Architecture with EJB
  • Swing Client Architecture with EJB
  • Supporting Both Web Clients and Rich Clients
  • Playing Server Games
  • SOA – Service Oriented Architecture
  • Java EE Roles
  • What’s Next?

How the Web Works

  • Clients and Servers
  • Client and Server Applications on the Web
  • HTML – The Language of the Web
  • Basic HTML Tags and a Basic HTML Page
  • HTTP and Addressing
  • Requests and Responses
  • Browsing a Simple Web Page
  • Java EE Web Applications
  • Web Application Structure

A Simple Servlet

  • Servlets and Dynamic Content
  • What are Servlets?
  • How a Servlet Runs
  • Advantages of Servlets
  • Packages and Classes
  • Creating a Servlet – The Simplest Way
  • A Simple HTTP Servlet
  • Declaring and Mapping Servlets
  • HTML Forms and HTTP Review

HTML Forms

  • A Simple Search Form in HTML
  • A Simple Form in the Browser
  • HTTP Request and Response Details
  • GET and POST Methods
  • Request Parameters

How Servlets Work

  • Servlet Interface and Servlet Lifecycle
  • Servlet Lifecycle – Initialization
  • Servlet Lifecycle – The service() Method
  • Important Types for Servlets
  • Class Diagram for Servlet Types
  • Class GenericServlet
  • Requests and Responses
  • Important ServletRequest/Response Methods
  • Getting Data / Sending Responses
  • Getting Data and Sending Response
  • HTTP Servlets
  • Class Diagram for HTTP Servlet Types
  • Class HttpServlet
  • HttpServletResponse
  • More About web.xml
  • Web.xmlElements
  • Look at the JavaDoc

Working with HttpServletResponse

  • HTTP Responses – Status and Errors
  • HttpServletResponse Status/Error Methods
  • HTTP Response Headers
  • Setting Response Headers
  • MIME Types
  • Specifying a MIME Type

Initialization

  • Initialization Overview
  • The ServletConfig Interface
  • The ServletContext Interface
  • Declaring and Mapping Servlets
  • Servlet Init Parameters
  • Retrieving Initialization Parameters
  • Web App Init Parameters
  • A Problem with SearchServlet
  • Null and Empty String Parameters

Error Handling

  • Specifying Error Pages
  • Error Page Configuration
  • Error Handling

JavaServer Pages (JSP)

  • Shortcomings of Servlets
  • What is a JSP?
  • A Very Simple JSP – simple.jsp
  • The Resulting Browser Output
  • JSPs Look Like HTML
  • JSP Expressions
  • Comments
  • JSPs are Really Servlets
  • Lifecycle of a JSP
  • The Generated Servlet
  • Generated Code Fragment for simple.jsp

Model View Controller (MVC) Architecture

  • Servlet and JSP architecture
  • Model 1 Architecture
  • Model View Controller (MVC)
  • Servlets as the Controller
  • JSP as the View
  • JavaBeans as the Glue and the Model

Servlets as Controllers

  • RequestDispatcher
  • Servlets as Controller
  • Forwarding to a Resource
  • Including Output of Another Resource
  • RequestDispatcher Paths

Data Sharing Among Servlets and JSPs

  • Object Buckets or Scopes
  • Using the Scopes
  • JSPs and JavaBeans
  • Putting Data on a Scope
  • Careful – Servlets are Multi-Threaded
  • Predefined JSP Variables – Implicit Objects
  • <jsp;useBean>
  • <jsp:useBean> Details
  • The Other Scopes
  • JavaBean Properties
  • <jsp:getProperty>
  • Jsp:useBean Creates Page Scope References
  • JSP Mixes Dynamic and Template Data
  • JSP Directives
  • The include Directive
  • <jsp:include> Action

Custom Tag Libraries Overview

  • Issues with Vanilla JSP
  • Sun’s Solution – Custom Tags
  • Custom Tags
  • Custom Tag Overview
  • Tag Libraries
  • Using a Tag Library in a Web Application
  • Taglib Definition – How it Works
  • More About URIs and Prefixes

JSP Standard Tag Library (JSTL)

  • The JSTL
  • A Brief Word about JSTL & Jakarta Taglibs
  • Introduction to Using JSTL Tags
  • Using the c:out Tag to Output Data
  • JSTL Expression Language
  • Data Objects and the JSTL EL
  • Request Parameters and JSTL
  • Using the c:out Tag and Bean Properties
  • Iterating Over a Collection
  • Using the c:forEach Tag for Iteration
  • Using the c:url Tag for URLs
  • Using the c:param Tag for URL Parameters

HTTP Session Overview

  • HTTP is a Stateless Protocol
  • Online Shopping with a Stateless Protocol
  • Storing Contextual Information
  • Hidden Form Fields

Cookies

  • Cookie Details
  • Accessing Cookies with the Servlet API
  • Persistent Cookies and Session Cookies
  • Cookie Usability Issues

Sessions

  • Servlet/JSP Sessions
  • Using Sessions
  • How Session Tracking Works
  • Sessions and Cookies – How They Work

Error Pages

  • Servlet Exceptions and Error Pages
  • The Implicit exception Object
  • Exception Handling in a JSP
  • web.xml – Declarative Exception Handling
  • Server Logging

Java Scriptlets

  • Scriptlets
  • Scriptlet Syntax
  • How do Scriptlets Work?
  • Generated Code Fragment for simple.jsp
  • When to Use Scriptlets
  • Declarations

JSTL Actions

  • JSTL Overview
  • JSTL Tag Libraries at a Glance
  • JSTL Expression Language (EL)
  • JSP Expressions vs. JSTL EL
  • The State of JSTL
  • Custom Tag (Including JSTL) Architecture
  • More About JSTL URIs
  • JSTL Prefixes
  • Core Actions
  • Formatting Actions
  • SQL Actions
  • XML Actions

JSTL Expression Language (EL)

  • EL and JSTL Action, Made for Each Other
  • EL Syntax
  • EL Identifiers
  • EL Operators
  • . and [] Operator Usage
  • JSTL-EL Implicit Objects
  • Implicit Object: pageContext
  • JSTL-EL Literal Values

Putting JSTL and EL in JSP

  • Using <c:if>
  • <c:if< Test Expressions
  • <c:choose>
  • More on
  • <c:set>
  • <c:url>
  • <fmt:formatDate>
  • <fmt:formatNumber>
  • JSTL-EL Resources

JSP 2.0

  • Expression Language (EL)
  • Functions and the JSTL Function Library
  • JSTL 1.1 Functions Library
  • JSTL Function Library
  • New EL Operator
  • JSP Pages as XML Documents
  • Improved Error Handling in JSP Pages
  • Using ErrorData
  • Creating Custom Tags

Java EE Security Overview

  • Security Requirements
  • Java EE Security
  • Web Tier Security in Java EE
  • Transport Level Security with HTTPSSSL

Declarative Security

  • Roles
  • Specifying Security Constraints
  • Security Constraints – Deployment Descriptor
  • Mapping Users to Roles
  • Security – The Big Picture

Web Authentication

  • Authentication
  • HTTP Basic Authentication
  • HTTP Basic Authentication on the Browser
  • Configuring Basic Authentication
  • Basic Authentication Pros and Cons
  • Form Based Authentication
  • Using Form Based Authentication
  • Form Based Authentication Pros and Cons
  • Digest Authentication
  • Digest Authentication Pros and Cons
  • HTTPS Client Authentication

Programmatic Security

  • Programmatic Security – HttpServletRequest

Design Issues

  • Divide and Conquer
  • Minimize Network Overhead
  • Scalability – Clustering
  • Sessions and Clustering
  • Scalability – Separating Static Content
  • Scalability – Java Virtual Machine
  • Scalability – CPUs and 64 Bit Machines
  • Maintainability – Write Your JSPs Well
  • Use the Technology Wisely
  • Use a Framework

JavaServer Faces (JSF) Overview

  • JSF Architecture
  • JSF Capabilities
  • JSF Componenets
  • The UI Runs on the Server
  • Event Handling
  • Process Flow
  • JSF Advantages
  • JSF Disadvantages

Servlet Filters

  • Servlet Filter Overview
  • What Can Filters Do
  • Filter API
  • Using Filters
  • Filter Processing
  • Filter Chain
  • A Simple Filter
  • Filter is Mapped in the web.xml File
  • How A Filter can Modify a Request or Response
  • The Way a Response Normally Works
  • Manipulating the Response
  • Wrapping the Response

Relational Database and JDBC Overview

  • The Power of Information
  • Relational Database overview
  • Relational Database Description
  • Database Table Relationships
  • Web-Based Architecture
  • Database Access Wish List
  • JDBC Overview
  • JDBC Characteristics
  • JDBC Specification and Packages

JDBC Architecture and API

  • JDBC Architecture
  • The Fundamental JDBC API
  • The DriverManager Class
  • What is a JDBC Driver?
  • Drivers Must be Loaded
  • Naming Databases with URLs

Database Connections

  • Database Connections, Connection Interface
  • Establishing a Database Connection
  • The DatabaseMetaData Interface
  • Database Exceptions – SQLExceptin
  • Wrapped Database Exceptions – Illustrated
  • Database Exceptions – SQLWarning
  • Closing JDBC Objects
  • try-catch May Not be Good Enough
  • Using finally to Close JDBC Objects

Data Access Objects and O-R Mappings

  • Data Access Objects – Rationale
  • Value Objects – Rationale
  • Object-Relational (O-R) Mappings
  • JavaTunes O-R Mapping
  • Value Objects and JavaBeans
  • Data Access Object – Illustrated

Processing Database Data

  • Creating Statements
  • The Statement Interface
  • The ResultSet Interface
  • Extracting Data from a ResultSet
  • SQL-Java Type Mappings
  • Dealing with Result Set NULL Values
  • Closing JDBC Objects – Revisited
  • Using finally to Close JDBC Objects
  • Prepared Statements
  • Benefits of Prepared Statements
  • Calling Database Stored Procedures
  • The CallableStatement Interface
  • Update Statements
  • Transaction – Overview
  • Controlling Transactions in JDBC
  • Storing Dates

JDBC Driver Types

  • Type 1 – JDBC-ODBC Bridge
  • Type 2 – Native API, Part Java
  • Type 4 – Native Protocol, Pure Java
  • Type 3 – JDBC-Net, Pure Java

Java Persistence API – Overview

  • Other Database Access Technologies
  • O-R Mapping Tools
  • Java Persistence API Overview
  • Entity Classes

Advanced JDBC Features

  • Batch Updates
  • Methods for Performing Batch Updates
  • Scrollable, Updatable Result Sets
  • Result Set Scrollability Types
  • Result Set Concurrency Types
  • Getting Advanced Result Set Functionality
  • Rowset Overview
  • The RowSet Interface
  • Rowset Implementation
  • SQL3 User-Defined types (UDTs)
  • Mapping a UDT to a Java Type
  • BLOBs and CLOBs
  • What is a Blob Object
  • Getting the Actual BLOB Data

System Design Choices

  • User Action – JavaTunes and Catalog Search
  • The Roles of “Client” and “Server”
  • The Simple Approach – Illustrated
  • The Simple Approach – Analysis
  • Using a JSP for the View – Illustrated
  • Using a Data Access Object – Illustrated
  • A More Modular Approach – Analysis
  • Using EJB – Illustrated
  • Using EJB – Analysis
  • Using Web Services – Illustrated
  • Using Web Services – Analysis

Database Access

  • Java EE and JDBC
  • Why DataSource?
  • How do Clients get Access to a DataSource?
  • JNDI – Java Naming and Directory Interface
  • EJB Container Binds a Reference into JNDI
  • Client Looks up Reference in JNDI
  • JNDI Overview
  • JNDI Name Tree
  • JNDI Tree Structure
  • JNDI in the Java EE Platform
  • Defining a Resource Reference in web.xml
  • The Context Interface
  • Obtaining a DataSource by Lookup
  • Mapping the ENC Name to the JNDI Name
  • ENC and JNDI – Putting it all Together
  • Connection Pooling
  • Pooled Connections – Illustrated
  • Getting a Pooled Connection – Illustrated
  • Closing a Pooled Connection – Illustrated
  • Connection Pooling Implementations
  • Statement Pooling
  • Statement Pooling – Illustrated
  • Getting a Pooled Statement – Illustrated
  • Closing a Pooled Statement – Illustrated
  • Be Neat

EJB Overview

  • What is EJB
  • EJB Goals
  • Types of Enterprise JavaBeans
  • Java Persistence API
  • JPA Goals
  • EJB and Java EE
  • ENB in Java EE Architecture
  • EJB Transaction Support
  • EJB 3.0 Overview
  • EJB 3.0 Goals
  • Session Bean Usage
  • Persistent Entity Usage
  • MDB Usage
  • Benefits of Using EJB
  • Issues with EJB

Web Services Overview

  • Service Oriented Architecture )SOA)
  • The Evolution of Computing
  • SOA Concepts
  • Some Advantages of SOA
  • Some Issues with SOA
  • Web Services Defined
  • Value Proposition
  • Web Services Defined
  • TW-* Web Services Specifications
  • The Web Services Stack
  • Web Services Tacks
  • Architectural Details
  • SOAP Concepts
  • WSDL Concepts
  • Java Web Services (JWS) Standards
  • Defining a Web Service
  • Writing a JAX-WS Client

JMS Overview

  • What is Messaging?
  • Loose Coupling
  • When is Messaging Used?
  • Two Messaging Models
  • Publish/Subscribe – Illustrated
  • More on Publish/Subscribe
  • Point-to-Point – Illustrated
  • More on Point-to-Point (P2P)
  • Overview of JMS API
  • What is Java Message Service?
  • API Structure
  • JMS Interfaces
  • Administered Objects
  • Administered Objects and JNDI – Illustrated
  • Client Workflow
  • Synchronous Queue Consumer Client
  • Asynchronous Queue Consumer Client
  • JMS Message Types

Course Classification:  Technical Training Course

This is an instructor led training course taught in a classroom based environment.


Course Fee = £1725   (excl.VAT)

Scheduled course dates

July 2010August 2010October 2010October 2010December 2010
26-30---20-24

View full schedule of Java Programming courses

View full schedule of Java courses

Print / Download PDF Version of full course schedule

If you would prefer to run this course at your premises as you have several employees to place on the course perhaps, then we are also able to offer onsite Programming Training and bespoke Programming courses