Fast Track to Java Enterprise Edition Course
Course Description
Course pre-requisites:
Delegates should have a working knowledge of Java.
Topics covered on the 5 day Fast Track to Java Enterprise Edition course
Java EE Overview
- Java EEs Place within Java
- Java EE Distributed Multitier Applications
- 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
- Multi-tiered 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
- Whats 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>
- <jsp:useBean> Details
- The Other Scopes
- JavaBean Properties
- <jsp:getProperty>
- Jsp:useBean Creates Page Scope References
- JSP Mixes Dynamic and Template Data
- JSP Directives
- The include Directive
- <jsp:include> Action
Custom Tag Libraries Overview
- Issues with Vanilla JSP
- Suns 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)
- 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
- Using <c:if>
- <c:if< Test Expressions
- <c:choose>
- More on
- <c:set>
- <c:url>
- <fmt:formatDate>
- <fmt:formatNumber>
- 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
- 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
Programmatic Security
- Programmatic Security HttpServletRequest
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
- 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
- Type 1 JDBC-ODBC Bridge
- Type 2 Native API, Part Java
- Type 4 Native Protocol, Pure Java
- Type 3 JDBC-Net, Pure Java
Java Persistence API Overview
- Other Database Access Technologies
- O-R Mapping Tools
- Java Persistence API Overview
- Entity Classes
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
Course Classification:
Technical Training Course
This is an instructor led training course taught in a classroom based environment.
Scheduled course dates
| July 2010 | August 2010 | October 2010 | October 2010 | December 2010 |
| 26-30 | - | - | - | 20-24 |
View full schedule of Java Programming courses
View full schedule of Java courses
Print / Download PDF Version of full course schedule
If you would prefer to run this course at your premises as you have several employees to place on the course perhaps, then we are also able to offer onsite Programming Training and bespoke Programming courses