Java Servlets
Copyright © 2002 ProsoftTraining. All rights reserved.
Lesson 1:
Introduction
to Java Servlets
Copyright © 2002 ProsoftTraining. All rights reserved.
Objectives
• Describe the differences between servlets and
other Web application technologies
• Explain the difference between the GET and
POST methods of making an HTTP request
• Create a simple servlet using GET
• Create a simple servlet using POST
• Define a simple deployment descriptor
Introduction
to Web Applications
• Web application technologies
– Common Gateway Interface (CGI)
– Server extensions
– Server-side scripting
– JavaServer Pages
– Java servlets
Hypertext
Transfer Protocol
• The GET method
• The POST method
• Additional methods
Writing a
Simple Servlet
javax.servlet.Servlet
GenericServlet
HttpServlet
Responding
to Form Data
• FormServlet
• getParameter method
• Using the POST method
Deployment
Descriptors
• XML files conforming to Sun Microsystems
DTD
– Describes servlets contained within a Web
application
Summary
 Describe the differences between servlets and
other Web application technologies
 Explain the difference between the GET and
POST methods of making an HTTP request
 Create a simple servlet using GET
 Create a simple servlet using POST
 Define a simple deployment descriptor
Lesson 2:
The Servlet Life Cycle
Copyright © 2002 ProsoftTraining. All rights reserved.
Objectives
•
•
•
•
•
•
•
Describe the servlet life cycle
Create init and destroy methods
Retrieve servlet initialization parameters
Use the SingleThreadModel interface
Retrieve CGI environment variables
Retrieve and use the ServletContext object
Use temporary files
The
Multithreaded Model
• Servlets typically operate in a multithreaded
environment
– The Web server usually instantiates only
one instance of a servlet to serve all clients
• Deployment descriptors and the multithreaded
model
The
Single Thread Model
• The Web server guarantees that no two threads
will ever operate concurrently on the same servlet
instance
• To designate servlets to use the single thread
model, implement the following interface:
– javax.servlet.SingleThreadModel
The init
and destroy Methods
• The init method
– Initialization parameters and the
deployment descriptor
• The destroy method
CGI
Environment Variables
•
•
•
•
•
•
•
•
•
AUTH_TYPE
CONTENT_LENGTH
CONTENT_TYPE
HTTP_ACCEPT
HTTP_REFERER
HTTP_USER_AGENT
PATH_INFO
PATH_TRANSLATED
QUERY_STRING
•
•
•
•
•
•
•
•
REMOTE_ADDR
REMOTE_HOST
REMOTE_USER
REQUEST_METHOD
SCRIPT_NAME
SERVER_NAME
SERVER_PROTOCOL
SERVER_PORT
The ServletContext
• Methods for obtaining server information
• Using temporary files
Summary







Describe the servlet life cycle
Create init and destroy methods
Retrieve servlet initialization parameters
Use the SingleThreadModel interface
Retrieve CGI environment variables
Retrieve and use the ServletContext object
Use temporary files
Lesson 3:
Responding to a Request
Copyright © 2002 ProsoftTraining. All rights reserved.
Objectives
•
•
•
•
•
•
•
Use client-side caching
Use client pull to update a client
Redirect the client to another URL
Use persistent connections
Use response status codes
Return a file to a client
Dynamically generate images
Controlling
the Client
• Using client-side caching
• Using client pull
• Redirecting the client
Persistent
Connections
public class PersistentConnection extends HttpServlet
{
public void doGet(HttpServletRequest req,
HttpServletResponse resp)
throws ServletException, IOException
{
resp.setBufferSize(32 * 1024);
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
// Generate a response
}
}
Status Codes
• Status code constants
• sendError method used to set status code
Multimedia Content
• Returning a file
• Dynamically generating images
Summary







Use client-side caching
Use client pull to update a client
Redirect the client to another URL
Use persistent connections
Use response status codes
Return a file to a client
Dynamically generate images
Lesson 4:
Servlet Sessions
Copyright © 2002 ProsoftTraining. All rights reserved.
Objectives
• Track a session using hidden form fields
• Track a session using URL rewriting
• Track a session using cookies
Hidden
Form Fields
<INPUT TYPE="HIDDEN" NAME="SID" VALUE="1234567890">
Hidden form field named "SID"
with an assigned value of
"1234567890"
URL
Rewriting
• Servlets can build URLS that add information
in the form of additional path information
Cookies
• Small pieces of information transmitted from a
Web server to a Web browser
• Represented in Java using the Cookie class
Summary
 Track a session using hidden form fields
 Track a session using URL rewriting
 Track a session using cookies
Lesson 5:
Authentication
and Security
Copyright © 2002 ProsoftTraining. All rights reserved.
Objectives
• Authenticate a user using HTTP-based
authentication
• Authenticate a user using a form
• Use Secure Sockets Layer to improve security
HTTP-Based
Authentication
• Users
• The deployment descriptor
• Servlets and authentication
Form
Authentication
• Requires modification of the deployment
descriptor
– The login-config element must be
modified to indicate that form
authentication is to be used and to provide
the URL for a login page and login error
page
Summary
 Authenticate a user using HTTP-based
authentication
 Authenticate a user using a form
 Use Secure Sockets Layer to improve security
Lesson 6:
Inter-Servlet
Communication
Copyright © 2002 ProsoftTraining. All rights reserved.
Objectives
• Share data with another servlet
• Handle a single request using multiple
servlets
Sharing Data
• Data-sharing methods of the
ServletContext interface
• Sharing data with another ServletContext
Dispatching
to Another Servlet
• The forward method
• The include method
Summary
 Share data with another servlet
 Handle a single request using multiple
servlets
Lesson 7:
Building Enterprise
Web Applications
Copyright © 2002 ProsoftTraining. All rights reserved.
Objectives
• Use JNDI to look up EJBs, resource factories
and environment entries
• Write servlets for use in a distributed
environment
• Use JavaMail to send e-mail
Java Servlets and JNDI
• Referencing EJBs
• Referencing resource factories
• Referencing environment entries
Clustering
and Java Servlets
• Clustering styles
• Developing distributable servlets
JavaMail
• Add-on API that creates a full-fledged
POP/iMAP client
– Session class
– getDefaultInstance static method
Summary
 Use JNDI to look up EJBs, resource factories
and environment entries
 Write servlets for use in a distributed
environment
 Use JavaMail to send e-mail
Lesson 8:
Internationalization
Copyright © 2002 ProsoftTraining. All rights reserved.
Objectives
• Use the Unicode escape sequence to specify
special Latin characters
• Use alternative character sets to generate a
non-Latin character response
The Latin
Character Set
• Non-English Latin characters
• Languages and language codes
Non-Latin
Character Sets
•
•
•
•
•
Arabic
Chinese
Japanese
Korean
Russian
Summary
 Use the Unicode escape sequence to specify
special Latin characters
 Use alternative character sets to generate a
non-Latin character response
Java Servlets








Introduction to Java Servlets
The Servlet Life Cycle
Responding to a Request
Servlet Sessions
Authentication and Security
Inter-Servlet Communication
Building Enterprise Web Applications
Internationalization