|

|
(703)246-9100 Northern Virginia
(804)285-5830 Central Virginia
(757)420-3810 Tidewater Area
(800)294-7497 Toll Free
(804)285-3722 Fax
www.ACTisIT.com
|
Advanced J2EE Using
Eclipse and JBoss
Print Outline in PDF format
Course Description
This course teaches
programmers how to write enterprise applications based on the Java 2 Enterprise
Edition (J2EE) architecture using Eclipse as an IDE and JBoss as and application
server and JSP for dynamic web Development. In addition to the core concepts of
J2EE, this course provides specific instruction on building J2EE applications
using the best practices established in the field.
What You Will Learn:
After completing this course, the student should
be able to:
-
The core concepts of J2EE:
Servlets, Java Server Pages, Java Beans and Enterprise Java Beans
-
How to develop and maintain
J2EE applications
-
How to deploy J2EE
applications into JBoss Application Server
Who Needs to Attend:
This course is
designed for Java programmers and web application designers who have interest in
learning how to build or maintain enterprise applications based on the J2EE
architecture using open source tools like JBoss and Eclipse.
Prerequisites:
Students are
expected to have a good understanding of web technology and server-side
programming for dynamic web content. Experience with Java is recommended, but
even a beginner's knowledge of Java is sufficient.
Course Content:
1. Introduction to Eclipse IDE and Open Source Servers
-
Objectives
-
The Eclipse Platform
-
Eclipse 3.0 Java IDE
-
Views, Perspective and Editor
Areas
-
Basic Operations with Eclipse
Views and Perspectives
-
The Java Perspective
-
The Debug Perspective
-
Navigator View
-
Package Explorer
-
Outline View
-
Problems View
-
Tasks View
-
Build and Validation
-
Import and Export Project
-
Templates and Code Completion
-
Searching
-
Setup Compiler Class Path
-
JRE Switching
-
MyEclipse 3.8
-
MyEclipse - Visual HTML
Designer
-
MyEclipse – JSP Development
-
MyEclipse – EJB Support
-
MyEclipse – Struts Modeler
-
MyEclipse – XML Editor
-
MyEclipse – Application
Connector
-
Summary
2. Servlet Basics
-
Objectives
-
History – CGI
-
Server Extension APIs
-
Java Servlet
-
Servlet Container
-
Servlet Responsibilities
-
J2EE and Servlet
-
The Servlet Class
-
An Example – Hello World
-
The Servlet Container
-
The Servlet API
-
Life Cycle – Initialization
-
Example Initialization
-
Life Cycle – Processing
-
Life Cycle – Destroy
-
User Input
-
Example – User Input
-
Output to Client
-
Servlet Error Handling
-
Threading Issues
-
Summary
3. Java Server Page Basics
-
Objectives
-
Java Server Pages
-
A Simple Example - Hello.jsp
-
JSP Benefits
-
Evolution of Dynamic Content
Technologies
-
How JSP Works
-
JSP Invocation
-
JSP Scripting Elements
-
JSP Directive
-
page Directive Attributes
-
page Directive – an Example
-
page Attribute – errorPage
-
page Attribute – isErrorPage
-
Directives – include
-
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 Comments
-
JSP Predefined Variables
-
The request Object
-
The response Object
-
The out Object
-
Out – an Example
-
J2EE Deploytool
-
Summary
4. JSTL & EL
-
Objectives
-
JSTL – what does it provide?
-
Core JSTL Tags
-
Core JSTL Tags- continued
-
Formatting tags
-
I18N tags
-
More formatting
-
Database tags
-
Database Tags - continued
-
XML Tags
-
The JSTL Expression Language
-
JSTL EL
-
JSTL Operators
-
JSTL Implicit objects
-
Expression Language
-
Need for EL
-
EL & JSPs
-
Expression Language - Syntax
-
Literals
-
Operators
-
Operator Precedence
-
Variables
-
Implicit Objects
-
Functions
-
Defining Functions
-
Declaring Functions
-
Functions
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
-
URL Rewriting
-
Using HttpSession
-
Session Invalidation
-
An Example of Session
Tracking Code...
-
An Example of Session
Tracking Code…
-
Session Details
-
URL Rewriting
-
Summary
6. 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
-
Create a Connection
-
Connection
-
Statement
-
PreparedStatement
-
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
-
Java Beans
-
Web Applications
-
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
7. JSP Programming Techniques
-
Objectives
-
Error Handling
-
Example Exception Handling
-
Using an Error Page
-
Form Validation – Client Side
-
Form Validation – Server Side
-
Session Tracking
8. Using Java Beans with JSP
-
Objectives
-
What is a Java Bean?
-
Structure of a Java Bean
-
Life Cycle
-
Properties
-
Very Simple Bean
-
Using Java Beans in JSP
-
The tag
-
Java Bean scope
-
in Action
-
The tag
-
The tag
-
Mapping all the request
parameters
-
Another Example
-
Mixing Scriptlets and Bean
tags
9. Overview
-
Objectives
-
Needs for EJB
-
Distributed Computing
-
Distributed Transaction
-
Distributed Security
-
What are EJBs?
-
Main Characteristics of EJBs
-
EJB Technologies
-
CORBA Object Distribution
-
RMI over IIOP
-
EJB Architecture Components
-
EJB Client
-
EJB JAR File
-
EJB Server
-
EJB Container
-
EJB Container - Persistence
-
EJB Container - Transaction
-
Enterprise Java Beans
-
Session Beans
-
Entity Beans
-
EJB Classes and Interfaces
-
Basic Components of Entity
and Session Beans
-
EJB Home Interface
-
An EJB Home Interface Example
-
EJBHome Object
-
EJB Remote Interface
-
Remote Interface Example
-
EJB Local Home Interface
-
EJB Local Interface
-
Remote EJB Objects
-
Local EJB Objects
-
EJB Implementation Class
-
EJB Container - Relationships
-
EJB Container –
Relationships…
-
How do (remote) EJBs Work
-
Remote v. Local EJBs
-
EJB Application Development
-
Deploying Enterprise Beans
-
Major Components of Deployed
EJBs
-
Summary
10. Session Bean
-
Objectives
-
Session Beans
-
Stateless Session Bean
-
Stateful Session Bean
-
Components of Session Beans
-
Home Interfaces
-
Remote interface
-
Local interface
-
The Session Bean Class
-
ejbCreate() Method
-
Business Methods
-
A Simple Stateless Session
Bean Example
-
A Simple Stateful Session
Bean Example
-
Session Context
-
EJB Context
-
EJB Context…
-
Session Bean Lifecycle
-
Lifecycle - Stateless
-
Lifecycle - Stateful
-
Lifecycle – Stateful
-
Lifecycle - Stateful
-
Concurrency Issues
-
Invoking Session Beans from
client Application
-
Looking Up a Home Object
-
Looking Up a Local Home
Object
-
Create an EJB Object
-
Calling business methods
-
Summary
11. Entity Beans
-
Objectives
-
Entity Beans
-
Entity Bean Components
-
Container
-
Container…
-
Primary Key Class
-
A Primary Key Class Example
-
(Remote) Home Interface
-
(Remote) Home Interface…
-
Local Home Interface
-
Remote Interface
-
Local Interface
-
Entity Bean Class
-
Entity Instance
-
Entity Object Lifecycle
-
Bean Instance Lifecycle
-
Bean Instance Lifecycle…
-
Persistence
-
Bean Managed Persistence
-
Container Managed Persistence
-
Writing BMP Bean
-
Writing BMP Bean…
-
A BMP Bean Example
-
A BMP Bean Example…
-
Writing a CMP Bean
-
Writing a CMP Bean…
-
Indicating Persistent Fields
-
EJB Query Language
-
EJBQL: Simple examples
-
EJBQL: SELECT clause
-
EJBQL: SELECT clause…
-
EJBQL: FROM clause
-
EJBQL: WHERE clause
-
EJBQL: WHERE clause…
-
EJBQL: Watch out!
-
Using EJBQL in a CMP bean
-
Business Methods
-
EntityContext
-
Writing CMP Beans
-
Defining and Mapping CMP
Fields
-
A CMP Entity Bean Example
-
Summary
12. Best Practice
-
Objectives
-
Remove Stateful Session Beans
-
Reduce the Transaction
Isolation Level where possible
-
Access Entity Beans from
Session Bean
-
Reuse EJB Homes
-
Avoid two-phase commit if
possible
-
Avoid transactions for
non-transactional methods
-
Avoid Stateful Session EJBs
-
CMP Pooling
-
Do not store large Object
Graphs in HttpSession
-
Release HTTP Sessions
-
Use JDBC Connection Pooling
-
Release JDBC Resources
-
Avoid String Concatenations
-
Minimize Synchronization
13. J2EE Design Pattern
-
EJB Design Patterns
-
Types of EJB patterns
-
Session Façade Pattern
-
Session Façade
-
Session Facade
-
Session façade pattern
shortcomings
-
Message Façade Pattern
-
Message Façade
-
Message façade pattern
shortcomings
-
EJB Command pattern
-
EJB Command
-
EJB Command pattern
shortcomings
-
Generic Attribute Access
pattern
-
Generic Attribute Access
-
Data Transfer Object (DTO)
-
Data Transfer Rowset
-
Version Number pattern
-
Version Number Pattern
-
Fast Lane Pattern
-
Data Access Command Beans
-
EJBHomeFactory
-
Business Delegate
-
Sequence Blocks
-
Stored Procedures for
Autogenerated Keys
-
Summary
14. 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
-
JMS Programming: Example
-
JMS Programming: Example…
-
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.ejb.MessageDrivenBean
-
javax.jms.MessageListener
-
javax.jms.Message
-
Lifecycle
-
Example: Message Counter
-
Class MessageCounter
-
Class MessageCounter…
-
Processing the Message
-
Deployment Descriptor Entry
-
Binding the Queue or Topic
-
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
15. Custom Tag Libraries
-
Objectives
-
The taglib directive
-
Components of a tag library
-
Tag Library Descriptor
-
Tag Handler Class
-
Tag handler life cycle
-
The Java Server Page
-
Example: Car Price
-
Tag Library Descriptor
Details
-
carPrice.tld
-
Tag Handler class
-
CarPriceHandler
-
CarPriceHandler…
-
carPrice.jsp
-
Packaging a Tag Library
Within the Web Application
-
The Struts Tag Library
-
Struts Bean Tags
-
-
Handling Tag Bodies
-
Example: Body Tag Support
-
Summary
16. Collections
-
Collections
-
Vector
-
Linked List
-
Array List
-
Hash Set
-
Tree Set
-
Map Class
-
Stack Class
-
Summary