CHAPTER 1. OVERVIEW OF SERVLETS
Java Servlet
Java EE and Servlet
Servlet Responsibilities
The Servlet Container
The Servlet Class
The HttpServlet Class
Servlet Configuration – web.xml
Servlet Configuration – Annotations
Life Cycle – Request Processing
User Input
Example – User Input
Request
Request Parameters
Request Attributes
Response
Tracking User State
Tracking Techniques
Using HttpSession
Session Invalidation
CHAPTER 2. OVERVIEW OF JAVASERVER PAGES (JSP)
JavaServer Pages
A Simple Example – Hello.jsp
JSP Benefits
How JSP Works
JSP Scripting Elements
JSP Directive
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
MVC Implementation
Request Dispatching – Forward Request to JSP
Using Java Beans in JSP
CHAPTER 3. 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
Facelets
Facelets in JSF 2
A Simple JSF Application
The Input Form: form.xhtml
The Result: thanks.xhtml
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
CHAPTER 4. BASIC JSF USER INTERFACE COMPONENTS
JSF UI Components
JSF Component Tag Libraries
Using the Tag Libraries
HTML Tag Library
Identifying Components
Component Identifier
Client Identifier
Form Input Field Names
Define a Form
Labels and Images
Buttons
Links
Adding Parameters to Links
Text Input
Simple Check Box
Check Box Group
Check Box Group Example
Radio Button
List Boxes
Dynamic List Box
Example
Another Example
JSF Core Library
JSF Core Library – Components
CHAPTER 5. MANAGED BEAN SCOPES IN JSF
Managed Bean Scopes
Implications of Various Scopes
View Scoped Managed Beans
Defining Managed Bean Scope
Getting Rid of the Session
Application Scope
“None” Scope
Custom Scopes
CHAPTER 6. OVERVIEW OF CONTEXTS AND DEPENDENCY INJECTION
Once upon a time
What is CDI?
The JSRs
CDI Example
What Good is DI
Old Bean Scope
CDI Bean Scope
Other Advanced Features of CDI
CDI Implementation
CHAPTER 7. DEFINING CDI BEANS
Requirements of Bean Classes
Bean Initialization Methods
beans.xml
Managed Bean Type
Using Beans with EL
Beans Have Default Names
Bean Scopes
EJBs in CDI
CHAPTER 8. JSF INTEGRATION, SCOPE AND CONTEXT
CDI Beans in JSF
JSF Example
Introduction to Scopes
Normal and Pseudo- scopes
Declaring Scope of a Bean
Scope Boundaries
Instance Sharing
Conversation Scope
Use Cases of Conversation Scope
Starting and Ending Conversations
Propagating Conversations
How Dependent Scope Works
Forcing a Dependent Instance
CHAPTER 9. ADVANCED MANAGED BEANS
@ManagedProperty Annotation
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
CHAPTER 10. JSF EVENT HANDLING
Request Processing Phases
Action Request Processing Phases
JSF Event & Listener Model…
JSF Event Classes
Event Classes
Event Classes: Hierarchy
Action Event Handling
Action Event: Example
Action Listener
Value Change Event
Value Change Event Handler
Listener Classes
Listener Interfaces
Listener Classes: Hierarchy
Action Listener Class
Value Change Listener Class
Phase Event Listener
Request Processing Lifecycle
Phase Identifiers
CHAPTER 11. JSF NAVIGATION
JSF Navigation
Example Action Listener
faces-config.xml File
JSF Navigation
Choosing Between Redirect & Direct Rendering
Navigation Rules: Example
Navigation: Scenarios
CHAPTER 12. JSF GET REQUESTS AND VIEW PARAMETERS
Using GET Requests with JSF
POST-Redirect-GET (PRG) Pattern
Implementing PRG Pattern With JSF
Defining View Parameters
New <h:link> and <h:button> Tags
Passing Request Parameters
Passing Request Parameters from POST Action Methods
Causing Redirection
Using a PreRenderView Event
The Flash Object
CHAPTER 13. OVERVIEW OF ENTERPRISE JAVABEANS (EJB)
Need for EJBs
Distributed Computing
Distributed Transaction
Distributed Security
What are EJBs?
Main Characteristics of EJBs
EJB Client
EJB Container
Enterprise JavaBeans
Session Beans
Message-Driven Beans (MDBs)
Stateless Session Bean
Annotations
Stateless Session Bean Components
Example: Business Interface
Example: Bean Class
Business Interface Details
CHAPTER 14. OVERVIEW OF JAVA PERSISTENCE API
Data Persistence
Java Persistence API
Entities
Session EJB vs JPA 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
CHAPTER 15. JSR 303 BEAN VALIDATION
Validation in Applications
Using Validation
Built-in Validation Constraints
Using Constraints
Showing Error Messages in JSF
Custom Validation Messages
Externalizing Validation Messages
External Message Example
Defining Custom Constraints
Custom Constraint Example
Interface
Validator
Custom Constraint in JSF
Bootstrapping Validation
The Validator API
Validation Groups
Group Example
Using Bean Validation in JPA 2.x and JSF 2.x
CHAPTER 16. ADVANCED JSF USER INTERFACE COMPONENTS
HTML Panel
Applying Styles
Grouping Components
Data Table
Using a Data Table
Data Table Model
Using a Data Table
Displaying a Header and Footer Row
Applying Styles
Adding Links to a Row
Using Component Binding
Handling Action
Using the Data Table Model
Handling Action
CHAPTER 17. USING JSTL WITH JSF
Introduction to JSTL
Using JSTL with JSF
The <c:out> Tag
The <c:if> Tag
The <c:choose> Tag
The <c:forEach> Tag
<c:forEach> or <h:dataTable>?
CHAPTER 18. USING AJAX WITH JSF
Integrated AJAX Support in JSF 2.0
Challenges of AJAX with JSF
AJAX Handling in JSF 2.0
AJAX Handling in JSF 2.0 (cont’d)
Request Lifecycle for AJAX Requests
JSF JavaScript API
New <f:ajax> Tag
Partial Page Rendering
Third Party JSF Libraries with AJAX
Component Libraries Available
CHAPTER 19. JSF TECHNIQUES
A Typical Application
The Create Form
Create Action Method
Listing Items
Editing an Item
Adding the Edit Link
The Edit Form
Update Item
Things to Keep in Mind
CHAPTER 20. FACELETS PAGES AND TEMPLATES
Facelets
Facelets in JSF 2
Using Facelets
Page Templates
Define a Page Template
Define a Template Client
Run the Template Client
CHAPTER 21. FACELETS COMPOSITE COMPONENTS
Simplified Custom JSF Components
Defining a Library of Composite Components
Referencing the Library
Defining a Composite Component
Using a Composite Component
Simple Text Inclusion
Defining and Setting Component Attributes
Value Attributes
Other Composite Component Features