109. JavaServer Pages
Rev. 2.0.1
This course is now available directly from our partner, Capstone Courseware.
This four-day course develops skills in JavaServer Pages, or JSP,
which is the standard means of authoring dynamic content for Web applications
under the Java Enterprise platform. It
treats JSP 2.0, including older features such as scriptlets but focusing on
newer features and techniques, including JSP expressions and the JSTL. At the end of the course, students will be
well prepared to author JSPs for small- or large-scale Web applications, either
“by hand” (they use only a text editor in class) or using an authoring tool.
The first module begins with an introduction of Web applications in
general, shows how Java servlets and JSPs establish a framework for writing Web
applications, and then covers JSP 2.0 features in detail, from scripting
elements to use of dedicated JavaBeans to JSP expressions, and quick
introductions of JSTL and custom tag development.
By the end of the module students will be able to create their own
JSP applications, including interactive applications using HTML forms and pages
that perform fairly complex processing using scripts and or actions. Although scripting is covered, the scriptless
authoring style encouraged by the JSP 2.0 specification is emphasized, and
students will be well equipped to develop concise and effective JSP
applications.
The second module covers the JSTL, or JSP Standard Tag Library,
actually a set of four custom tag libraries that establish a portable standard
for common processing tasks in JSP. JSTL
is a major part of the new scriptless authoring style encouraged (and enabled)
by the JSP 2.0 specification. This
module covers all four JSTL libraries in depth:
·
The core actions, which support JSP expressions
for JSP 1.x containers, flow control for procedural processing in JSPs, and
resource access.
·
The formatting and
internationalization/localization actions, which standardize formatted numeric
and date/time output as well as multi-language support.
·
The SQL actions, which dramatically simplify
access to relational data from a JSP.
·
The XML actions, which give JSPs a simple,
powerful framework by which to parse, address and transform XML data using
XPath and XSLT.
Each individual tag in each library is covered, with precise
syntactic rules shown in a standard format in the student guide, and JSTL
techniques and best practices are discussed for each library. An extensive set of example applications
illustrates common usage of each major group of actions, and the module
culminates with a wrap-up workshop that brings core, SQL, and XML techniques to
bear in a single application.
LEARNING OBJECTIVES
·
Explain the fundamentals of HTML and HTTP in the
World Wide Web.
·
Describe JavaServer Pages and their relationship
to servlets and J2EE generally.
·
Describe how a JSP is translated into a servlet
and processed at runtime.
·
Explain the use of directives on JSPs and
outline the principal directives.
·
Implement simple JSPs that use Java code in
declarations, expressions and scriptlets.
·
Enumerate and use the implicit objects available
to scripting elements.
·
Implement an interactive Web application using
HTML forms and JSP.
·
Use Java exception handling and JSP error pages
to handle errors in JSP applications.
·
Implement session management for a JSP
application.
·
Manage cookies to store client-specific
information at various scopes and durations.
·
Use JavaBeans to implement effective interactive
JSP applications.
·
Describe custom tags in JSP and explain how they
are implemented, both using Java and JSP itself, and how they are used.
·
Discuss threading issues in JSP and describe the
use of directives to control how threading is handled.
·
Describe the various uses of XML in JSP
applications.
·
Deploy a logical Web application to a Web server
in a WAR file.
·
Describe the use of the JSP expression language to
simplify dynamic page output.
·
Write JSP expressions and implement JSPs that
use them in favor of scripts.
·
Implement JSPs that use basic JSTL actions to
simplify presentation logic.
·
Decompose a JSP application design into
fine-grained, reusable elements including JavaBeans, custom tag handlers and
tag files that use JSTL.
·
Use core JSTL actions to complement standard
actions, custom actions, and JSP expressions for seamless, script-free page
logic.
·
Direct conditional and iterative processing of
page content by looping through ranges of numbers, over elements in a
collection, or over tokens in a master string.
·
Set locale and time zone information in JSPs,
and use them to correctly format numbers, dates and times for all clients.
·
Use resource bundles to manage application
strings, and produce the appropriate strings at runtime for a particular client
locale.
·
Locate a data source, query for relational data,
and parse result sets.
·
Perform updates, inserts and deletes on
relational data using SQL actions.
·
Manage queries and updates in transaction
contexts.
·
Derive information from parsed XML content using
XPath expressions.
·
Implement conditional processing and loops based
on XML information.
·
Apply XSLT transformations to XML content.
·
Implement a simple Web service that reads and
writes SOAP.
Duration: 4 days.
Prerequisites: No formal prerequisites; knowledge of HTML and background in Web
applications, and/or Java programming experience, are helpful but not
necessary.
Module 1. Introduction to
JavaServer Pages
1.
Web Applications
The World Wide Web
HTML
Web Servers
HTTP
Dynamic Web Pages
CGI
Java Web Technologies
Servlets
JSP
2.
JSP Architecture
JSP Containers
Servlet Architecture
Page Translation
Types of JSP Content
Directives
Content Type
Buffering
Scripting Elements
JSP Expressions
Standard Actions
Custom Actions and JSTL
Objects and Scopes
Implicit Objects
JSP Lifecycle
3.
Scripting Elements
Translation of Template Content
Scriptlets
Expressions
Declarations
Dos and Don’ts
Implicit Objects for Scriptlets
The request Object
The response Object
The out Object
4.
Interactive JSP Applications
HTML Forms
Reading CGI Parameters
JSPs and Java Classes
Error Handling
Session Management
The Session API
Cookies and JSP
5.
Using JavaBeans
Separating Presentation and Business Logic
JSP Actions
JavaBeans
Working with Properties
<jsp:useBean>
<jsp:getProperty> and <jsp:setProperty>
Using Form Parameters with Beans
Objects and Scopes
Working with Vectors
6.
The Expression Language and the JSTL
Going Scriptless
The JSP Expression Language
EL Syntax
Type Coercion
Error Handling
Implicit Objects for EL
The JSP Standard Tag Library
Role of JSTL
The Core Actions
Using Beans with JSTL
The Formatting Actions
Scripts vs. EL/JSTL
7.
Advanced JSP Features
Web Components
Forwarding
Inclusion
Passing Parameters
Custom Tag Libraries
Tag Library Architecture
Implementing in Java or JSP
Threads
Strategies for Thread Safety
XML and JSP
JSP for Web Services
Module 2. The JSP Standard
Tag Library
1.
Effective JSTL
The JSP Standard Tag Library
JSTL Namespaces
Going Scriptless
Object Instantiation
Sharing Objects
Decomposition
Parameterization
2.
The Core Actions
The JSTL Core Library
<c:out>
<c:set>
Gotchas
Conditional Processing
Iterative Processing
Iterating Over Maps
Tokenizing Strings
Catching Exceptions
Resource Access
3.
The Formatting and i18n Actions
The JSTL Formatting Library
Locales
Determining Locale
Time Zones
Setting Locale and Time Zone
Formatting and Parsing Dates
Formatting and Parsing Numbers
Internationalization
Working with Resource Bundles
Supporting Multiple Languages
4.
The SQL Actions
The JSTL SQL Library
Using Relational Data
Connecting with a DriverManager
Connecting via a DataSource
The Result Interface
Making a Query
Inserts, Updates and Deletes
Parameterized SQL
Transactions
5.
The XML Actions
The JSTL XML Library
Using XML
XML Data Sources
Parsing and Addressing
Using XPath in JSTL
XPath vs. EL
XPath Context
Implicit Objects for XPath
Conditional Processing
Iterative Processing
Changing XPath Context
Working with XML Namespaces
Using XSLT
Chaining Transformations
Reading XML from the Request Body
XML and SOAP Web Services
Learning Resources
System Requirements
This module can be presented on Windows or Linux systems. Tools required are all free downloadables
available for either platform: the J2SE
SDK, the Tomcat 5 Web server, the MySQL RDBMS and a MySQL JDBC driver. Hardware requirements are modest: a good
minimal system for this module would have a Pentium 500MHz or equivalent CPU,
256 meg of RAM and at least 500 megabytes of free disk space for tools
installation and lab software.