Java 2 Enterprise Edition – JAV270
This Java Enterprise Edition (j2EE) training course is a Java-based platform for building secure web applications. It utilizes many standards-based technologies, including JDBC, RMI, SOA, servlets, XML, JSP, JSTL, JSF, JNDI, and JMS. In this Java programming training course, we’ll show you how to develop and build your own web applications. You’ll learn how all of the Java EE technologies work and how they fit together in the overall platform. This course teaches the important concepts to create and deploy an application to the web.
Java 2 Enterprise Edition Training Course Delivery
This is a five day J2EE training course that is available on our public schedule for individuals and groups. We can deliver the Java Enterprise Edition training course as a live, instructor-led online, onsite or classroom style class.
Course ID: JAV270
Duration: 5 days
Audience: Java programmers who will use the J2EE to develop transportable distributed applications.
Java 2 Enterprise Edition Topics:
Java EE Overview
Java EE’s Place within Java
Java EE – Distributed MultitierApplications
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
Multitiered 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>
Details
The Other Scopes
JavaBean Properties
Jsp:useBean Creates Page Scope
References
JSP Mixes Dynamic and Template Data
JSP Directives
The include Directive
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)
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
Putting JSTL and EL in JSP
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
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
28. Programmatic Security
Programmatic Security
Programmatic Security –
HttpServletRequest
Design Issues
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
JavaServer Faces
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
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
38. Java Persistence API – Overview
Other Database Access Technologies
O-R Mapping Tools
Java Persistence API Overview
Entity Classes
Advanced JDBC Features – Overview
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