Training > All Courses > Java > Ajax for Java™ Developers

Course Summary

Ajax For Java Developers Training Course starts with an introduction to using XMLHttpRequest and a brief introduction to JavaScript fundamentals. It includes in-depth coverage of programming with Ajax to send/retrieve data to/from a server, updating a Web page with JavaScript, and using CSS to modify the look of a Web page. You will cover in detail how to handle Ajax requests using Servlets/JSP and Java Web applications and how to use frameworks, both client side JavaScript and server side Java. Ajax for Java Developers course is hands-on with labs to reinforce all the important concepts.

Duration

4 days.

Objectives

By the end of this course, you will build working Ajax applications, and understand most of the important concepts and technology in a very short time.

Audience

Web developers using Ajax (about 2/3 of the course does not require Java knowledge) and Java developers who need to work with Ajax-based Web applications.
Basic knowledge of HTML and JavaScript and practical Java and Servlet/JSP programming experience.

Outline

Ajax Overview

  • Rich Internet Applications
  • What are Rich Internet Applications?
  • RIA Technologies
  • Ajax Introduction
  • What is Ajax?
  • The Ajax Difference
  • Ajax, JavaScript, DHTML, and More
  • XMLHttpRequest
  • How Ajax Works
  • Overview of Ajax Technologies

JavaScript Basics

  • Java Script Introduction
  • What is JavaScript
  • Exploring JavaScript
  • JavaScript Variables
  • JavaScript – Writing to the Web Page
  • JavaScript PopUp Boxes
  • JavaScript Functions
  • External JavaScript Files
  • Functions as Data
  • Standard JavaScript Functions
  • Accessing and Modifying HTML Elements
  • A More Complex HTML Page
  • Accessing Elements via the document Object
  • The innerHTML Property

XMLHttpRequest

  • XMLHttpRequest Basics
  • More about XMLHttpRequest
  • Creating an XMLHttpRequest Object
  • Submitting a Request
  • XMLHttpRequest Properties
  • Asynchronous Request
  • Handling an Asynchronous Response
  • Submitting a Request
  • XMLHttpRequest Properties
  • Asynchronous Request
  • Handling an Asynchronous Response
  • The readyState Property
  • onreadystatechange Event Handler
  • XMLHttpRequest Methods

Servlets and JSP with Ajax

  • Overview of Servlets
  • Java EE and Web Applications
  • Simple Web-centric Architecture
  • Java EE Web Applications
  • Web Application Structure
  • Using Servlets
  • A Simple HTTP Servlet
  • How a Servlet Works
  • The Web Archive (war) File
  • Deploying Web Applications
  • Servlets and Ajax
  • Accessing the Servlet Using Ajax
  • A Servlet Handling a Post Request
  • Overview of JavaServer Pages (JSP)
  • What is a JSP?
  • A Very Simple JSP – simple.jsp
  • JSPs Look Like HTML
  • JSP Expressions
  • JSPs are Really Servlets
  • Lifecycle of a JSP
  • Object Buckets or Scopes
  • Predefined JSP Variables – Implicit Objects
  • Working with <jsp:useBean>
  • More <jsp:useBean>
  • How a Servlet Works With a JSP
  • Issues with JSP
  • Custom Tags
  • Custom Tags and Tag Libraries
  • The JSTL
  • taglib Directive in JSP
  • A Servlet and JSP Cooperating

More JavaScript and Ajax

  • Browser Events
  • Event Based programming
  • Event Handlers
  • Defined Browser Events
  • Defined Events
  • Form Validation
  • onload and onunload Events
  • Using Ajax and Events
  • JavaScript Objects and Arrays
  • JavaScript Objects
  • Creating JavaScript Objects
  • Workign with Objects and Functions
  • Working with Object Properties
  • Arrays in JavaScript
  • Working with Arrays
  • Array methods
  • Objects as Arrays
  • Classes in JavaScript
  • javaScript Constructors
  • The new Operator
  • More on Constructors
  • The Object Class
  • The prototype Property
  • Properties of the Prototype
  • A More Complete Class
  • Modules and Namespaces
  • Utility Modules

Client Side Frameworks

  • Framework Overview
  • No Need to Reinvent the Wheel
  • Capabilities of Client Side JavaScript Libraries
  • General Library Capabilities
  • Some Client Side JavaScript Libraries
  • Prototype Overview
  • About Prototype
  • Utility methods and DOM Extensions
  • Utility methods of Element Class
  • The $() Utility Function
  • Using $ and the DOM Extensions
  • Prototype Ajax Support
  • Ajax.Request
  • Ajax.Request – Additional Options
  • Ajax.Updater
  • Other Prototype Capabilities
  • Much More Capability
  • script.aculo.us Overview
  • Using script.aculo.us
  • The Scriptaculous Autocompleter
  • Other Frameworks and Libraries
  • Some Well Known Frameworks
  • Dojo Functionality
  • dojo.xhr Functions
  • Using dojo.xhrGet()
  • Dojo.xhrGet Error Handling
  • Some Issues with Dojo
  • Yahoo User Interface Toolkit (YUI)
  • The YUI Dom Class
  • YUI and Ajax
  • TabView and TreeView
  • Rich Text Editor and Calendar Control
  • Other YUI Capabilities
  • The Google Ajax Search API
  • Google Search API Code
  • Google Search Page Display
  • Much More Capability
  • Google Maps API
  • Maps API Display
  • Additional Google Maps API Capability

Cascading Style Sheets

  • Issues with Formatting in HTML
  • Cascading Style Sheets (CSS)
  • Declaring Style Information
  • Style Sheets
  • Using Style Sheets
  • Resulting Display
  • The class Selector
  • Descendant Selectors
  • ID Selectors
  • Display and Visibility Style Properties
  • Other Style Properties
  • Scripting Styles
  • Scripting Classes
  • The ‘Cascading’ in CSS

JSON (JavaScript Object Notation)

  • What is JSON
  • Review of JavaScript Literals
  • Arrays and More Complex Objects
  • JSON Details
  • Creating JSON Strings in JavaScript
  • Parsing JSON Strings in JavaScript
  • Parsing Strings with JSON.parse()
  • JSON on the Server
  • Creating JSON Text on the Server
  • JSONObject and JSON
  • JSONArray
  • Creating JSON Text from POJOs
  • Creating jSON Text from Collections
  • Dealing with Dates
  • Custom Date Serialization
  • JSONSerializer
  • JSONSTringer
  • Other json-lib Capabilities
  • Autocomplete Example Using JSON
  • An Input Field Generating Ajax Request
  • Producing JSON in a Servlet
  • JavaScript Code Constructing Suggestions
  • Accessing the JSON Data We Want
  • JavaScript Code Constructing the Suggestions
  • Autocomplete at Work
  • Other JSON Tools
  • The JSON Universe

XML and Ajax

  • XML Overview
  • What is XMl?
  • The Underlying Theme of XML
  • JavaTunes Purchase order Document – Body
  • The Document Body and Elements
  • Attributes
  • Working with XML
  • Working with XML and Ajax
  • Accessing XML with Ajax
  • Working with XML Documents
  • JavaTunes Purchase Order Document
  • JavaTunes Order as a Dom Tree
  • More About the W3C DOM
  • Traversing a Document with JavaScript
  • Getting Node Information
  • Finding Nodes in a Document
  • White Space Handling and Other Issues
  • Creating XML Documents on the Server
  • Producing XML with a Servlet and JSP
  • The JSP Generating the XML
  • Autocomplete Example Using XML
  • An Input Field Generating Ajax Request
  • XML Document from Servlet/JSP
  • JavaScript Code Constructing the Suggestions
  • Accessing the XML Nodes We Want
  • Using the Suggestions
  • Autocomplete at Work
  • XML Versus JSON
  • XML and JSON for Data Interchange

DWR (Direct Web Remoting) and Other Technologies

  • DWR Overview
  • What is DWR?
  • How DWR Works
  • Getting Started with DWR
  • web.xml Configuration for SWR
  • dwr.xml Configuration File
  • Running the Test Page - <webapp>/dwr
  • Working with DWR
  • Including the DWR JavaScript Code
  • Using the SWR Proxies
  • Functions with Java Object Arguments
  • DWR Options
  • Reverse Ajax
  • Other Technologies
  • JSON-RPC
  • Using JSON-RPC-Java
  • Google Web Tooklit (GWT)
  • GWT Architecture
  • Hello World with GWT
  • The Generated Application
  • More About GWT
  • Pros/Cons of GWT

Ajax and JSF

  • JSF Overview
  • JSF Purpose and Goals
  • JSF API
  • Using JSF
  • JSF as MVC
  • JSF Views
  • Managed Beans as JSF Model
  • Managed Beans as JSF Controller
  • JSF Controller Components
  • Architecture Overview
  • faces-config.xml Details
  • Your First JSF Application
  • Configuring FacesServlet in web.xml
  • JSF Controller
  • Writing a Managed Bean
  • A Simple Managed Bean
  • faces-config.xml <managed-bean>
  • Examining the Logon Form
  • Linking Input Fields to Bean Properties
  • Submitting the Form
  • Method Binding Expressions
  • Dynamic Navigation Rule
  • Creating / Deploying a JSF Application
  • Ajax4jsf
  • Using Ajax with JSF
  • Ajax4jsf
  • Ajax4jsf Component Structure
  • How the Ajax Filter Works
  • Ajax4jsf Request Processing Flow
  • Ajax4jsf Action Components
  • Ajax4jsf Container Components
  • RichFaces
  • RichFaces Overview
  • RichFaces Suggestionbox Component
  • The SearchBean Managed Bean
  • RichFaces Suggestionbox Display

Design and Best Practices

  • JavaScript Best Practices
  • JavaScript is a Key Ajax Technology
  • Object-Oriented Modular JavaScript
  • Dealing with Browsers
  • Separate Content, Behavior, & Presentation
  • JavaScript Tips and Techniques
  • Don’t Reinvent the Wheel
  • Ajax Design
  • Ajax is Still Evolving and Maturing
  • Basic Ajax Design Principles and Patterns
  • Basic Ajax Design Patterns
  • Use Ajax Where Appropriate
  • Network Usage Considerations
  • Ajax and the Back Button – The Problem
  • Ajax and the Back Button – Solutions
  • User Interface Design Considerations
  • Other Ajax Design Considerations
  • Ajax Security Ideas
  • General Security Issues for Ajax
  • Basic Security Guidelines
  • Scripting Vulnerabilities – Malicious Code
  • The Dangers of Code Injection
  • XSS – Same Origin Policy
  • Same Origin Policy – The Good and the Bad
  • Preventing Malicious Content
  • JSON Issues