Find Courses Here
J2EE Programming using WebLogic 8.1 and JBuilder X Print E-mail
Course Length - 5 Days
 
Course Description

This course teaches the development of J2EE-based Web applications in the BEA WebLogic Server 8.1 environment.

 

You Will Learn How To:

After completing this course, the student should be able to:

  • Understand J2EE-based Web application architecture and development
  • Understand Web application development in the BEA WebLogic Server environment
  • Setup the WebLogic application development environment
  • Develop WebLogic applications using JBuilder and/or your favorite text editor
  • Deploy WebLogic applications  
 

Course Prerequisites

  • A good understanding of Web technologies and server-side programming for dynamic Web content
  • A good understanding of core Java syntax
  • A good understanding of OO concepts
 

Who Should Attend?

Web application designers and programmers who are interested in learning Java Web application development in the WebLogic environment.

 

Course Outline

Overview of Web Applications

  • Objectives
  • N-tier Architecture
  • Tiered Architectures
  • Presentation Layer
  • Middle Tier
  • Java Web Applications
  • Java Web Application Architecture
  • J2EE Architecture
  • Web Application Programming Model - MVC
  • Model View Controller
  • A Scenario of Using MVC
  • Typical Services provided by Application Servers
  • BEA WebLogic Product Family
  • JBuilder X EE
  • JBuilder X EE(continued)
  • Application Server Support
  • WebLogic Server
  • WebLogic Server Component Containers & Application Services
  • Summary

The JBuilder Application Development Environment

  • Objectives
  • Tools for WebLogic Applications
  • Tool Usage
  • JBuilder UML Browser
  • UML Browser
  • Package Dependency Diagram
  • Combined Class Diagram
  • JBuilder UML Browser(continued)
  • JBuilder Features
  • The JBuilder Environment
  • JBuilder AppBrowser
  • Working with JBuilder Projects
  • Debugging in JBuilder
  • Working with Source Code
  • Compiling Projects
  • Running Projects
  • Debugging Projects
  • Configure WebLogic in JBuilder
  • JBuilder and Web Services
  • Support for Web Service
  • Summary

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
  • Create a Project
  • Associate The Project With A Server
  • Create a new Web Module
  • Create the servlet
  • Code The Servlet
  • Deployment Descriptor
  • Test The Servlet
  • Server Window
  • Execution Results
  • Debugging a Servlet
  • Summary

JSP Basics

  • Objectives
  • JavaServer 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
  • Creating a JSP
  • Coding the JSP
  • Running / Debugging the JSP
  • JSP Output
  • Summary

Deploy Web Applications (Servlet and JSP) into WebLogic Server

  • Objectives
  • WebLogic Administration Domain
  • WebLogic Administration Server
  • WebLogic Managed Server
  • WebLogic Administration Console
  • WebLogic Server Deployments
  • Format of Web Application
  • Web Application Directory
  • WEB-INFO Directory
  • Files in JBuilder
  • Obtaining WARs
  • Examine the Content of the .war file
  • Sample web.xml file
  • Auto Deployment
  • Auto Deployment Intervals
  • Web Application in WebLogic
  • Install Web Application in WebLogic
  • Types of WebLogic Services
  • Create a JDBC Connection Pool
  • Create a JDBC DataSource
  • Create a JMS Connection Factory
  • Summary

Servlet Interaction Interface

  • Objectives
  • Request
  • Request Parameters
  • Request Attributes
  • Request Headers
  • Request Path
  • Other Request Information
  • Response
  • Servlet Context
  • Servlet Context Attributes
  • Resource
  • Tracking Techniques
  • Session Tracking
  • Cookies
  • Cookies – an Example
  • Cookies
  • Setting Cookies
  • 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

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
  • 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
  • Data Sources and Applications
  • Java Beans
  • Java Bean Usage
  • Java Beans and JBuilder
  • 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
  • Summary

JSP Programming Techniques

  • Objectives
  • Error Handling
  • Example Exception Handling
  • Using an Error Page
  • Form Validation – Client Side
  • Form Validation – Server Side
  • Session Tracking
  • Summary

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 tag
  • Java Bean scope
  • in Action
  • The tag
  • The tag
  • Mapping all the request parameters
  • Another Example
  • Mixing Scriptlets and Bean tags
  • Java Beans and JBuilder
  • Summary

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
  • WebLogic EJB Server Architectural Overview
  • Summary

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
  • JBuilder for EJB Development
  • Developing a Session Bean using JBuilder
  • EJB Project in JBuilder
  • Create an EJB Project
  • Create an EJB Module
  • Examine the EJB Module
  • Create a Session Bean
  • Code methods
  • Promote methods to interfaces
  • Deploying EJBs
  • EJB Deployment Descriptor
  • Generating Deployed Code
  • Deploy the bean
  • Testing the Bean
  • Creating a Test Client
  • Code the Test Client
  • Run the Test Client
  • "Exporting" the JAR
  • Summary

Entity Bean

  • 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
  • Writing finder methods
  • 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
  • Developing Entity Beans in JBuilder
  • Using the EJB Designer
  • Configuring the EJB Designer
  • The EJB Designer
  • The EJB 2.0 Designer
  • Adding fields
  • Editing Fields
  • Adding Methods
  • Viewing Bean Source
  • Editing Bean Source
  • Mapping Container Managed Fields: Creating a Data Source
  • Specifying Datasource properties
  • Associating the Datasource and the EJB
  • Creating a Field Group
  • Specify the Mappings
  • Deploy the Bean
  • Adding a Finder (Optional)
  • EJB 2.0 Relationships
  • Relationship Properties
  • Summary

Deploy EJBs into WebLogic Server

  • Objectives
  • Types of EJB Deployment
  • Configure a new EJB
  • Configured Deployment
  • Hot Deployment
  • Auto Deployment
  • Auto Deployment Setup
  • Undeployment of an EJB
  • Jar File Structure
  • weblogic.ejb utility
  • Examine a Jar file content
  • Deployment Descriptors
  • Format of Deployment Descriptor
  • Element Relationship in DDs
  • Use weblogic.deploy utility
  • Deployment Descriptors in a Table
  • Summary

Best Practices

  • Objectives
  • Remove Stateful Session Beans
  • Identify Read-Only Methods
  • 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
  • Turn off reloading of web applications
  • Make upstream queues progressively smaller
  • Avoid String Concatenations
  • Minimize Synchronization
  • Summary

EJB Design Patterns

  • 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

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
  • 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

Appendix B Additional Topics

  • JNDI
  • JNDI – Naming Concepts
  • JNDI - Directory Concepts
  • JNDI
  • JNDI and DataSources
  • JTA
  • JTA - Transactions
  • JTA as part of J2EE
  • Summary