JavaServer Pages
Copyright © 2002 ProsoftTraining. All rights reserved.
Lesson 1:
Introduction to
JavaServer Pages
Copyright © 2002 ProsoftTraining. All rights reserved.
Objectives
•
•
•
•
•
•
•
•
Define JavaServer Pages (JSP)
Define Java servlets
Define Enterprise JavaBeans (EJB)
Compare JSP to other server-side
programming environments
Explain the advantages of JSP
Understand the mechanics of JSP documents
Use basic JSP syntax
Describe how to invoke JSP documents
What Is
Enterprise JavaBeans (EJB)?
• EJB = An architecture for deploying
component-based distributed applications
– J2EE-compliant application servers
What Are
Java Servlets?
• Java servlets provide the functionality of the
CGI for Java-driven Web applications
– Managed and executed on a Web server
that provides a servlet container
– Executed within a single JVM and server
process
What Is JSP?
• Server-side programming environment
– Contains normal HTML with special syntax
that allows dynamic content
Web Application Technologies
• Common Gateway Interface (CGI)
• Server extensions
• Server-side scripting
– ColdFusion
– PHP Hypertext Preprocessor (PHP)
JSP
Advantages and Mechanics
• Java = powerful programming language
– Built-in APIs
• JSP applications are portable
• JSP engine  locates the JSP document
• JSP engine  processes the JSP document
into a servlet
• JSP engine  passes control to servlet engine
Basic
JSP Syntax
• Script blocks
<% //Java code %>
• JSP files with comments
<%-- JSP comment --%>
Summary








Define JavaServer Pages (JSP)
Define Java servlets
Define Enterprise JavaBeans (EJB)
Compare JSP to other server-side
programming environments
Explain the advantages of JSP
Understand the mechanics of JSP documents
Use basic JSP syntax
Describe how to invoke JSP documents
Lesson 2:
JSP Fundamentals
Copyright © 2002 ProsoftTraining. All rights reserved.
Objectives
•
•
•
•
•
Describe various styles of JSP syntax
Use JSP expressions
Use JSP scriptlets
Use JSP declarations
Use predefined variables
Evaluating
Java Expressions
• Syntax:
<%= new java.util.Date( ) %>
Using JSP Scriptlets
• Scriptlets allow you to:
– Perform complex operations within a JSP
document
– Intersperse blocks of Java code with
normal HTML
Using JSP Declarations
• JSP declarations:
– Provide a construct in which to declare
methods and variables
– Do not produce output
– Use the following syntax:
<%! //Java code %>
Using JSP
Predefined Variables
•
•
•
•
•
•
•
•
The request variable
The response variable
The out variable
The application variable
The session variable
The config variable
The pageContext variable
The page variable
Summary





Describe various styles of JSP syntax
Use JSP expressions
Use JSP scriptlets
Use JSP declarations
Use predefined variables
Lesson 3:
JSP Directives
Copyright © 2002 ProsoftTraining. All rights reserved.
Objectives
•
•
•
•
•
•
Define JSP directives
Use the page directive
Use page directive attributes
Use the include directive
Use the jsp:include element
Add and manipulate Java applets in JSP files
using the jsp:plugin element
Introduction
to JSP Directives
• The page directive
– The import attribute
– The language attribute
– The contentType attribute
– The pageEncoding attribute
– The extends attribute
– The isThreadSafe attribute
– The session attribute
– The buffer attribute
– The autoFlush attribute
– The errorPage attribute
– The isErrorPage attribute
– The info attribute
Including
Files in JSP
• Using the include directive
• Using the jsp:include element
Using the
jsp:plugin Element
• The jsp:plugin element is used to:
– Add Java applets to JSP files
– Determine the appropriate tag for the client
browser accessing the JSP file
Summary






Define JSP directives
Use the page directive
Use page directive attributes
Use the include directive
Use the jsp:include element
Add and manipulate Java applets in JSP files
using the jsp:plugin element
Lesson 4:
JSP and JavaBeans
Copyright © 2002 ProsoftTraining. All rights reserved.
Objectives
• Define JavaBeans
• Explain the concept of component-centric
architecture
• Describe the advantages of JavaBeans
• Instantiate JavaBeans
• Use JSP-JavaBeans tags to access and
manipulate JavaBeans properties
• Explain the conventions for constructing
JavaBeans
• Use the serializable interface
• Access JavaBeans through scripting elements
Component-Centric
Architecture
• Component-centric architecture:
– Allows for handling complexity
– Divides complex systems into components
JavaBeans
Database
server
Java
server
JSP—JavaBeans Tags
Tag
Description
<jsp:useBean>
Used to instantiate a JavaBean
and create a reference to it
<jsp:getProperty>
Used to access a JavaBean
property
<jsp:setProperty>
Used to modify a JavaBean
property
Rules for
Constructing JavaBeans
•
•
•
•
Class
Constructor
Property
Methods
– Regular methods
– Access methods
The JavaBean
Serializable Interface
• When a JavaBean is serialized, its property
values are frozen
• To make the JavaBean serializable, it should
implement the Serializable interface
Accessing JavaBeans Through
Scriptlets and Expressions
• After the <jsp:useBean> tag instantiates a
JavaBean and has a reference to it, the
JavaBean can be used in scriptlets and
expressions throughout the scope of the
JavaBean
Summary
 Define JavaBeans
 Explain the concept of component-centric
architecture
 Describe the advantages of JavaBeans
 Instantiate JavaBeans
 Use JSP-JavaBeans tags to access and
manipulate JavaBeans properties
 Explain the conventions for constructing
JavaBeans
 Use the serializable interface
 Access JavaBeans through scripting elements
Lesson 5:
JSP Custom Tags
and Tag Libraries
Copyright © 2002 ProsoftTraining. All rights reserved.
Objectives
•
•
•
•
•
Describe JSP custom tags
Explain the need for JSP tag libraries
Define and use the taglib directive
Download, install and use a tag library
Create custom handler classes and descriptor
files
• Create tag attributes
• Use a custom tag
• Deploy tag libraries
Why Use
Tag Libraries?
• Custom tag libraries:
– Allow you to create complex objects that
can be used by JSP developers
– Allow you to reuse code across multiple
JSP applications
Using
Custom Tags
• Using a tag library
– The number of pre-existing tag libraries is
growing
Creating JSP
Custom Tag Libraries
• Three steps to creating a custom tag:
– Define a tag handler class
– Define a tag library descriptor
– Define a JSP page that uses the custom tag
• The taglib directive
Using Custom
Tags in JSP Files
• Key elements of a custom tag:
– Tag name
– Attributes
– Nesting
– Body content
Tag Handlers
Tag
Library Descriptor
• Root element = <taglib>
• Subelements = tlibversion
shortname
info
• Deploying tag libraries
Summary





Describe JSP custom tags
Explain the need for JSP tag libraries
Define and use the taglib directive
Download, install and use a tag library
Create custom handler classes and descriptor
files
 Create tag attributes
 Use a custom tag
 Deploy tag libraries
Lesson 6:
JSP and Java Servlets
Copyright © 2002 ProsoftTraining. All rights reserved.
Objectives
• Define servlets
• Write simple servlets
• Discuss the difference between servlets and
JSPs
• Explain the concept of MVC design pattern
• Describe the layers of MVC design pattern
• Explain Models 1 and 2 Web application designs
• Define the RequestDispatcher interface
• Use the RequestDispatcher to dispatch
requests
Servlets
• Java servlets = Java classes that implement
the javax.servlet.Servlet interface
• Servlets have no main method for handling
requests
– Using the GET method
Servlets vs. JSP
• Manageability problems with servlets
• How can JSP help?
Web
Application Architecture
• Presentation layer
• Application layer
• Control layer
MVC
Design Pattern
JSP vs. Servlet Architecture
• Model 1 architecture
• Model 2 architecture
• Model 1 and Model 2 architecture trade-offs
Model 1
Architecture
Model 2
Architecture
Page-Centric Design
Servlet-Centric Design
Controlling the Flow
with RequestDispatcher
•
•
•
•
Acquiring a RequestDispatcher object
Using the RequestDispatcher object
Where to place the servlets
Incorporating another resource's output in a
servlet
• Forwarding a request from a JSP to other
resources
Summary
 Define servlets
 Write simple servlets
 Discuss the difference between servlets and
JSPs
 Explain the concept of MVC design pattern
 Describe the layers of MVC design pattern
 Explain Models 1 and 2 Web application
designs
 Define the RequestDispatcher interface
 Use the RequestDispatcher to dispatch
requests
Lesson 7:
JSP,
HTML Forms and Databases
Copyright © 2002 ProsoftTraining. All rights reserved.
Objectives
• Describe the tiers in a three-tier distributed
application
• Discuss a Web communication between tiers
• Use HTML forms and their input elements
• Use the request object to communicate
between HTML forms and JSP files
• Explain the concept of relational databases
• Use the main SQL statements
• Describe Java Database Connectivity
• Connect to a database and access information
• Create an example of an HTML form
Distributed
Multi-Tiered Applications
• Client tier
• Server tier
• Database tier
Steps in a
Typical Web Communication
http://java.sun.com/getjava/download.html
Hypertext
Transfer
Protocol
Host name
Path name
HTML Forms
• Text field input
• Radio button input
• Check box input
• Drop-down menu input
• Reset and
submit buttons
Request Object
• Contains:
– Methods for storing and retrieving attribute
values
– Methods for accessing request parameters
– Methods for retrieving request headers
– Methods for other uses
Relational
Databases
• Database Management System (DBMS)
• Queries
Structured
Query Language (SQL)
• Data Definition Language (DDL)
• Data Manipulation Language (DML)
• Data Control Language (DCL)
Java Database
Connectivity (JDBC)
•
•
•
•
Load a JDBC driver
Connect to a database
Execute SQL statements
Disconnect from a database
Summary
 Describe the tiers in a three-tier distributed
application
 Discuss a Web communication between tiers
 Use HTML forms and their input elements
 Use the request object to communicate
between HTML forms and JSP files
 Explain the concept of relational databases
 Use the main SQL statements
 Describe Java Database Connectivity
 Connect to a database and access information
 Create an example of an HTML form
JavaServer Pages







Introduction to JavaServer Pages
JSP Fundamentals
JSP Directives
JSP and JavaBeans
JSP Custom Tags and Tag Libraries
JSP and Java Servlets
JSP, HTML Forms and Databases