Topics  
 
  • Develop and test servlets
  • Develop and test JavaServer Pages (JSPs)
  • Develop and test J2EE applications following the Model/View/Controller architecture
  • Integrate business logic using Java Beans and Java Database Connectivity (JDBC)
  • Apply best practices to servlet and JSP development
 
 
Practical Work  
  Students will have the opportunity to build a simple Java program, servlets and JSPs using RAD v7.0. Students will also deploy a J2EE application into WebSphere Application Server v6.  
 
What you will learn  
  After completing this course, the student should be able to:
  • Use RAD v7.0 as a truly integrated development environment
  • Build servlets according to the current Servlet 2.4 specification
  • Build JSPs according to the current JSP 2.0 specification
  • Build custom JSP tag libraries
  • Integrate servlets and JSPs into a complete J2EE application
  • Test servlets and JSPs using the WebSphere Test Environment
  • Deploy a J2EE application to WebSphere Application Server
 
 
Audience  
  Java programmers who build server-side web applications interested in leveraging RAD v7.0 to streamline their development cycle.  
 
Prerequisites  
  You should understand essential concepts of Object-Oriented Programming and be able to write simple Java programs with assistance  
 
Duration  
  Five days.  
Lab Setup Guide

Outline for Servlets & JSP Development with Rational Application Developer (RAD) v7.0 Training

1. Introduction to Rational Application Developer (RAD) v7.0

 
  • Objectives
  • The RAD 7 Product
  • Eclipse Platform
  • Rational Web Developer
  • Rational Application Developer
  • Key Features in RAD v7.0
  • Views, Perspective, and Editor Areas
  • Basic Operations with RAD Views and Perspectives
  • The Java Perspective
  • The Debug Perspective
  • Navigator View
  • Package Explorer
  • Outline View
  • Task and Problems View
  • Build and Validation
  • Import and Export Project
  • Code Completion, Templates and Snippets
  • Searching
  • Setup Compiler Class Path
  • JRE Switching
  • Refactoring
  • Changing Class Name
  • Changing Method Name
  • Changing Variable Name
  • Moving a Class to a Different Package
  • Extracting Code to a Method
  • Pull Up and Push Down Methods
  • Migrating Workspace from RAD v6 or WSAD v5.1.2
  • Project Interchange Feature
  • Migrating J2EE Applications
  • J2EE Migration Wizard
  • Summary
 

2. J2EE Overview

 
  • Introduction
  • Why Do We Need J2EE?
  • J2EE Components
  • J2EE Technologies
  • Useful J2SE Technologies
  • Application Artifacts
  • J2EE Architecture
  • J2EE 1.4 Version Levels
  • J2EE Software Packaging
  • Deployment Descriptor
  • Enterprise Archive (EAR)
  • Web Modules and WAR
  • EJB Modules
  • Building Module Dependency
  • Objectives
  • Project Explorer
  • Servers View
  • The J2EE Perspective
  • The Web Perspective
  • Create an Enterprise Application
  • Setup Utility JAR
  • Create an EJB Project
  • Create a Web Project
  • Setup Dependent JAR Files
  • Create Server Instance and Server Configuration
  • Configure Server Instance
  • Add an Enterprise Application Project to the Test Server
  • Start and Stop the Server
  • Test a Servlet
  • Debug a servlet
  • Test a JSP
  • Debug a JSP
  • Summary
 

3. Overview of Web Applications

 
  • Objectives
  • Tiered Software Architecture
  • Tiered Runtime Environment
  • Tiered Architectures
  • Presentation Layer
  • Web Presentation Layer
  • Business Logic Tier
  • Tier Integration
  • Java Web Applications
  • Java Web Application Architecture
  • J2EE Architecture
  • Web Application Programming Model - MVC
  • Model View Controller
  • A Scenario of Using MVC
 

4. 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
  • Registering the Servlet
  • 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
  • Create a Servlet in RAD
  • Code Servlet Methods
  • The Web Deployment Descriptor
  • Test the Servlet
  • Debug Servlets in the WebSphere Test Environment
 

5. JavaServer Page (JSP) Basics

 
  • Objectives
  • JavaServer Pages
  • A Simple Example - Hello.jsp
  • JSP Benefits
  • Evolution of Dynamic Content Technologies
  • How JSP Works
  • JSP Invocation
  • Generated Servlet
  • 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
  • Request time inclusion
  • Include at compile time vs. at request time
  • 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
  • Summary
  • Creating a JSP With RAD
  • Editing a JSP With RAD
  • Testing a JSP With RAD
  • Debugging a JSP With RAD
 

6. 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
  • HttpSession - URL Rewriting
  • 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
  • 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 Request to JSP
  • Request Dispatching - Forward vs. Include
  • HTTP Redirection
  • Dispatch vs. redirection
  • Calling a JSP from a Servlet
  • Supply Result information to the JSP
  • A Simple Example
  • Display JavaBean Properties in JSP
  • Summary
 

8. 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
 

9. JSP Expression Language and Standard Tag Library

 
  • Objectives
  • JSP Expression Language (EL)
  • Basic Usage
  • Built-in Objects
  • Working With Arrays and Maps
  • Operators
  • Full Example
  • JSP Standard Tag Library (JSTL 1.1)
  • Basic Tags
  • Condition Tags
  • Interator 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
  • Summary
 

10. Servlet Filters

 
  • Objectives
  • What is a filter?
  • Why use a filter?
  • Uses for Filtering
  • Features of filters
  • The Filter interface
  • How a filter works
  • In what order?
  • A Simple Logging Filter
  • Configuring the filter
  • Mapping the filter
  • The Web Deployment Descriptor
  • Common filter tasks
  • Request and Response Wrappers
 

11. Servlet Event Listener

 
  • What are Listeners
  • Types of Listeners
  • Writing a Servlet Context Listener
  • Writing a Servlet Context Attribute Listener
  • Writing a Session Activation Listener
  • Writing a Session Attribute Listener
  • Registering Listeners
  • Lifecycle of Listeners
 

12. Introduction to JavaServer Faces

 
  • What is JavaServer Faces (JSF)?
  • Why Use JSF?
  • Nature of a JSF Application
  • The Sun Reference Implementation (RI)
  • JSF and MVC
  • Faces Servlet
  • Managed Bean
  • The View
  • A Simple JSF Application
  • The Input Form: form.jsp
  • The Result: thanks.jsp
  • The Controller: AddressBean
  • Page Flow or Navigation Rule
  • How Does the Application Work?
  • Under the Covers: The Rendered Form HTML
  • Under the Covers: The Layout Tree
 

13. Managed Bean

 
  • What is a Managed Bean?
  • Why Do You Need Managed Beans?
  • Managed Bean As a Controller
  • Registering a Managed Bean
  • Lifecycle of a Managed Bean
  • Initializing a Managed Bean
  • What Scope to Use?
  • Value Binding
  • Property Data Conversion
  • Advanced Property Types
  • Component Binding
  • Other Binding Types
  • Basic Input Processing
  • Advanced Input Processing
  • JSF Expression Language
  • Language Basics
  • Use of Expression in JSF
  • Basic Expression
  • Property Access Expression
  • Map Access Expression
  • Complex Access Expression
  • Predefined Objects
  • Operators
 

14. 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
 

15. J2EE Security

 
  • Security Functionality
  • What Can You Secure in J2EE?
  • Challenge Mechanism
  • Basic Challenge
  • Client Certificates
  • Form-based Authentication
  • User Registry
  • J2EE Authorization Model
  • Protecting Web Resources
  • Protecting EJB Methods
  • EJB Delegation Policies
  • Delegation Scenario
  • Defining Roles at Application Level
 

16. J2EE Application Deployment

 
  • Objectives
  • Overview
  • Generate Deployed Code
  • Export EAR
  • Separate Client Side Code
  • Export EJB Client JAR
  • Export Utility JAR
  • J2EE Deployment
  • Administrative Console
  • Environment Variables
  • Security
  • Resources
  • Creating JDBC Provider
  • Creating Data Source
  • WebSphere MQ JMS Configuration
  • WebSphere MQ JMS Provider
  • Connection Factory
  • Destination
  • Listener Port
  • Relationship Between Messaging Components
  • Installing Applications
  • Server Options
  • Starting an Application
  • Summary
 

Appendix A. Enterprise JavaBean (EJB) Overview

 
  • Objectives
  • Needs for EJB
  • 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 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
  • Remote v. Local EJBs
  • EJB Application Development
  • Deploying Enterprise Beans
  • Major Components of Deployed EJBs
  • Summary
 

Appendix B. Basic Struts Programming

 
  • The Action Class
  • Action Life Cycle
  • The ActionServlet Class
  • The execute() Method
  • Registering an Action
  • The ActionMapping Class
  • Accessing User Input
  • Form Bean
  • Registering Form Bean
  • Form Bean Life Cycle
  • HTML Form Example
  • Accessing User Input
  • Bean Scope
  • Invoking Business Logic
  • Passing Data to Model
  • Using Separate DTO Classes
  • Controlling Page Flow
  • Redirecting the Browser