WA1649 Java EE 5 Programming Using WebLogic 10 Training and Courseware Course Outline
1. Introduction to BEA Workshop for WebLogic
Objectives
BEA Workshop for WebLogic
The Eclipse Platform
Eclipse 3.2 Java IDE
Views, Perspective and Editor Areas
Basic Operations with Eclipse Views and Perspectives
The Java Perspective
The Debug Perspective
Navigator View
Build and Validation
Templates and Code Completion
Searching
BEA Workshop for WebLogic
BEA WebLogic Server
Summary
2. Java Enterprise Edition (EE) Overview
Objectives
Introduction to Java Platform
Java Community Process (JCP)
Introduction to Java EE
Why Move to Java EE
Java EE - New and Enhanced Features
Java EE Software Packaging
Java EE Technologies
Summary
3. Servlet Basics
Objectives
History CGI
Server Extension APIs
Java Servlet
Servlet Container
Servlet Responsibilities
J2EE and Servlet
The Servlet Class
The HttpServlet Class
An Example Hello World
The Servlet Container
The Servlet API
Life Cycle Initialization
Life Cycle Initialization
Example Initialization
Life Cycle Processing
Life Cycle Processing
Life Cycle Destroy
User Input
Example User Input
Output to Client
Servlet Error Handling
Threading Issues
Summary
4. JavaServer Page (JSP) Basics
Objectives
JavaServer Pages
JavaServer Pages 2.1
A Simple Example - Hello.jsp
JSP Benefits
Evolution of Dynamic Content Technologies
How JSP Works
JSP Invocation
JSP Scripting Elements
The XML Syntax
JSP Directive
page Directive Attributes
page Directive an Example
page Attribute errorPage
page Attribute isErrorPage
Using XML Syntax
Directives include
Include an Example
Include an Example
Include at compile time vs. at request time
Request time inclusion
JSP Declarations
Declarations an Example
JSP Expressions
JSP Expressions an Example
JSP Scriptlets
JSP Scriptlets an Example
JSP Scriptlets an Example
JSP Comments
JSP Predefined Variables
The request Object
The response Object
The out Object
Out an Example
5. Servlet Interaction Interface
Objectives
Request
Request Parameters
Request Attributes
Request Headers
Request Path
Other Request Information
Response
Cookies
Setting Cookies
Servlet Context
Servlet Context Attributes
Resource
Session Tracking
Tracking Techniques
Cookies
Cookies an Example
HTML Hidden Fields
Using HttpSession
Session Invalidation
An Example of Session Tracking Code...
An Example of Session Tracking Code
An Example of Session Tracking Code
An Example of Session Tracking Code
An Example of Session Tracking Code
An Example of Session Tracking Code
An Example of Session Tracking Code
HttpSession - URL Rewriting
Summary
6. Using Java Beans with JSP
Objectives
What is a JavaBean?
Structure of a JavaBean
Life Cycle
Properties
Very Simple Bean
Using Java Beans in JSP
The <jsp:useBean> tag
Java Bean scope
<jsp:useBean> in Action
The <jsp:getProperty> tag
The <jsp:setProperty> tag
Mapping all the request parameters
Another Example
Mixing Scriptlets and Bean tags
Summary
7. Servlet Programming Advanced
Objectives
Key Issues for Web Application Development Productivity
Web Application Programming Model MVC
Model
View
Controller
What is JDBC?
JDBC Architecture
JDBC: Basic Steps
Loading a Driver
DB2 UDB JDBC Drivers
Oracle JDBC Drivers
Create a Connection
Connection
Statement
PreparedStatement
ResultSet
ResultSet
ResultSet
Example JDBC Servlet With Transactions
Close the Connection
Need for Connection Pooling
Connection Pooling in JDBC 2.0
Connection Pooling
Basic Steps in Using JDBC Connection Pooling
Access a DataSource
Get a Connection
Release Connections
Connection Pool Example
Resource References
JavaBeans
MVC Implementation
Request Dispatching
Request Dispatching - Forward vs. Include
HTTP Redirection
Dispatch vs. redirection
Integrating Servlet and JSP
Calling a JSP from a Servlet
Request Dispatching - forward Request to JSP
Supply Result information to the JSP
A Simple Example
Display JavaBean Properties in JSP
Summary
8. JSP Expression Language and Standard Tag Library
JSP Expression Language (EL)
Basic Usage
Unified Expression Language
Built-in Objects
Working With Arrays and Maps
Operators
Full Example
JSP Standard Tag Library (JSTL)
Run Time Version
Basic Tags
Condition Tags
Iterator Tags
Internationalization (I18N)
Setting Preferred Locale
Specifying Resource Bundle
Display Translated Text
Display Number
Display Date
JDBC Tags
Specify Data Source
Performing a Query
Display Result
Pagination Example
Function Tags
Function Syntax
fn Functions
9. Enterprise JavaBeans (EJBs) Overview
Objectives
Need for EJBs
Distributed Computing
Distributed Transaction
Distributed Security
What are EJBs?
Main Characteristics of EJBs
EJB Remote Method Call
EJB Architecture Components
EJB Client
EJB JAR File
EJB Container
EJB Server
Enterprise JavaBeans
Session Beans
Entity Beans
Java Persistence API - Entities
Message-Driven Beans (MDBs)
EJB Specification
Summary
10. Stateless Session Beans
Objectives
Session Beans
Stateless Session Bean
Stateless Session Bean Pooling
Stateless Session Bean Examples
Stateful Session Bean
Stateful Session Bean Examples
Annotations
Stateless Session Bean Components
Example: Business Interface
Example: Bean Class
Alternative Example
JNDI - Overview
Example: The Client
Business Interface Details
Bean Class Details
Session Bean Lifecycle
Stateless Session Bean Lifecycle
Summary
11. Stateful Session Beans
Objectives
Stateful Session Bean
Stateful Session Beans
Session Bean Lifecycle
Stateful Session Bean Lifecycle
Stateful Session Bean Components
Stateful Session Bean Example
Stateful Session Bean Client
Summary
12. EJB References and Dependency Injection
Objectives
Dependency Injection
Annotation Injection
Example: Field Level Injection
Example: Method Level Injection
Deployment Descriptor Injection
Example: Deployment Descriptor Injection
EJBContext
JNDI Lookup with EJBContext
Overriding Reference Annotations
Default Reference Name
Resolving References
mappedName Attribute
Overloaded Reference Names
EJB References
EJB Reference Annotations
Multiple EJB References
EJB References in Deployment Descriptors
Resource References
Resource Reference Annotations
Multiple Resource References
Resource References in Deployment Descriptors
Reference Lookup
Summary
13. Entities and Java Persistence API
Objectives
Data Persistence
Java Persistence API
Entities
Session Beans Vs Entities
Entities
Persisting and Retrieving Data
Accessing Entities
EntityManager & Persistence Unit
Persistence Context
Entities - Example
persistence.xml Hibernate Provider
persistence.xml Open JPA Provider
persistence.xml - Toplink
Entity Instance Lifecycle
Creating EntityManager in Session EJB
Creating EntityManager in a Plain Java Class
Working With the EntityManager Interface
Transaction Basics
Entity Lifecycle
When is an Entity Managed or Detached?
Implementing the CRUD Pattern
Accessing Entities Using Stateless Session Beans
Inserting Data
Retrieving Data
Updating Data
Deleting Data
Merging Entities
Life-Cycle Callbacks
Example: Internal callback
External Callback Class
Listener Class - Example
Synchronizing with Databases
Entity Lookup
EJBQL (EJB Query Language)
Summary
14. Introduction to EJB Design Patterns
Objectives
Patterns Overview
EJB Design Patterns
EJB Design Pattern
EJB Layer Patterns
Session Facade Pattern
Common Issues and Mistakes
Message Facade Pattern
Command Pattern
Common Issues and Mistakes
Summary
15. More EJB Design Patterns
Objectives
Inter-Tier Data Transfer Patterns
Data Transfer Object Pattern
Custom Data Transfer Object Pattern
Cached RowSet Pattern
Common Mistakes and Issues
Transaction and Persistence Patterns
Version Number pattern
Version Number Pattern
Fast Lane Pattern
Read for Update Pattern
Summary
Appendix A. Message-Driven Beans
Objectives
The Trouble with RMI/IIOP
Messaging to the Rescue
Messaging Features
Message-Oriented Middleware
Messaging Domains
Publish/Subscribe
Point-to-Point
Java Message Service
JMS Programming: Overview
JMS Programming: Overview
The JMS Interfaces
Integrating JMS and EJB
Message-Driven Beans Are Different From Other EJBs
Message-Driven Beans Cannot Talk to Their Clients
Message-Driven Beans are Stateless
Durable Subscription
Message-Driven Bean Interfaces
javax.jms.MessageListener
javax.jms.Message
Specialized Message Types
Lifecycle
Message Driven Bean - Example
Message Driven Bean - Client Example (JSP)
Transactions
Security
Load Balancing
Clustering and Topics
Clustering and Queues
A Few Tips
Poison Messages
How the Programmer Can Avoid Poison Messages
How the System Administrator Can Avoid Poison Messages
Building a Response
Potential Problems
A Simple Alternative
Type Checking and Messages
Testing Message-Driven Beans
Summary
References
Appendix B. JSP Custom Tag Development
Objectives
What is Custom Tag?
Why Develop Custom Tags?
The Nature of a Custom Tag
Tag Body
Fragment Attribute
Dynamic Attributes
Tag Library Descriptor (TLD)
Tag Implementation Options
The Simple Tag API
Example Tag Class
Life Cycle of a Simple Tag
The JspContext Object
Dealing With the Body
Implementing an Iteration Tag
Accessing a Parent Tag
Working With Fragment Attributes
The TLD File
Defining a Tag
Packaging a Tag Library
Using a Tag Library
The Tag File Approach
Example Tag File
The Tag Directive
Defining Attributes
Working With Variables
Working With Fragment Attributes
Packaging Tag Files
Creating the TLD File
Using a Tag File From a JSP
Appendix C. JMS Overview
Objectives
Messaging Intro
Messaging Example
Messaging Components
Messaging Types
JMS (Java Messaging Service)
Message Driven Beans (MDB)
MDB as Message Consumer
JMS Resources
JMS Messaging Configuration Questions
JMS Messaging Configuration Answers