Skip to Secondary Navigation | Skip To Content

Web Application Development with Servlets and JSP

Dates:
May 10-14, 2010

Time:
TBD

Instructor:
Marty Hall

Location:
Dorsey Center, Elkridge, MD

Tuition:
The 5-day course costs $2395 per student and includes an extensive course notebook, a copy of Marty's book, exercises, exercise solutions, breakfast, snacks, and lunch.

How to Register:
Submit Registration Form PDF version link opens an adobe pdf file (286 KB) by fax at 410.579.8049, email a scanned copy, or by USPS mail. If you register for more than one non-credit course during the Spring 2010 semester or send more than one student from the same organization, enter "Multiple" as the discount code on the registration form PDF version link opens an adobe pdf file (286 KB) and subtract $200 per person per course. Bonus: Register at least two weeks in advance and receive a $50 gift certificate from amazon.com.

Course Description

The Java EE Platform has become the technology of choice for developing professional e-commerce applications, interactive Web sites, and Web-enabled applications and services. Servlet and JSP technology is the foundation of this platform: it provides the link between servers and Web clients (browsers, cell phones, Ajax applications, etc.). This course provides a practical, hands-on introduction to building Web applications in Java. It gives details on the most important topics, surveys more advanced or lesser-used topics, stresses best practices, and gives plenty of working examples.

Prerequisites

The course consists of an approximately equal mixture of lecture and hands-on lab time. The course assumes that all students already have at least moderate previous Java experience, but not necessarily any experience with server-side Java or HTTP. Although the course will use Java 6, previous experience with earlier Java versions is sufficient. Working knowledge of HTML is helpful but not absolutely required.

Syllabus

Overview and Setup

  • Understanding the role of servlets
  • Evaluating servlets vs. other technologies
  • Understanding the role of JSP
  • Configuring the server
  • Configuring your development environment
  • Testing the server setup
Servlet Basics
  • The basic structure of servlets
  • A simple servlet that generates plain text
  • A servlet that generates HTML
  • Servlets and packages
  • Some utilities that help build HTML
  • The servlet life cycle
  • Servlet debugging strategies
Handling the Client Request: Form Data
  • The role of form data
  • Creating and submitting HTML forms
  • Reading individual request parameters
  • Reading the entire set of request parameters
  • Handling missing and malformed data
  • Dealing with incomplete form submissions
  • Filtering special characters out of the request parameters
Handling the Client Request: HTTP Request Headers
  • Reading HTTP request headers
  • Building a table of all the request headers
  • Understanding the various request headers
  • Reducing download times by compressing pages
  • Differentiating among types of browsers
Generating the Server Response: HTTP Status Codes
  • Format of the HTTP response
  • How to set status codes
  • What the status codes are good for
  • Shortcut methods for redirection and error pages
  • A servlet that redirects users to browser-specific pages
  • A front end to various search engines
Generating the Server Response: HTTP Response Headers
  • Format of the HTTP response
  • Setting response headers
  • Understanding what response headers are good for
  • Building Excel spread sheets
  • Generating JPEG images dynamically
  • Sending incremental updates to the browser
Handling Cookies
  • Understanding the benefits and drawbacks of cookies
  • Sending outgoing cookies
  • Receiving incoming cookies
  • Tracking repeat visitors
  • Specifying cookie attributes
  • Differentiating between session cookies and persistent cookies
  • Simplifying cookie usage with utility classes
  • Modifying cookie values
  • Remembering user preferences
Session Tracking
  • Implementing session tracking from scratch
  • Using basic session tracking
  • Understanding the session-tracking API
  • Differentiating between server and browser sessions
  • Encoding URLs
  • Storing immutable objects vs. storing mutable objects
  • Tracking user access counts
  • Accumulating user purchases
  • Implementing a shopping cart
  • Building an online store
JSP Intro and Overview
  • Understanding the need for JSP
  • Evaluating the benefits of JSP
  • Comparing JSP to other technologies
  • Avoiding JSP misconceptions
  • Understanding the JSP lifecycle
  • Installing JSP pages
  • Looking at JSP in the real world
Invoking Java Code with JSP Scripting Elements
  • Static vs. dynamic text
  • Dynamic code and good JSP design
  • JSP expressions
  • Servlets vs. JSP pages for similar tasks
  • JSP scriptlets
  • JSP declarations
  • Predefined variables
  • Comparison of expressions, scriptlets, and declarations
Controlling the Structure of Generated Servlets: The JSP page Directive
  • Understanding the purpose of the page directive
  • Designating which classes are imported
  • Specifying the MIME type of the page
  • Generating Excel spreadsheets
  • Participating in sessions
  • Setting the size and behavior of the output buffer
  • Designating pages to handle JSP errors
  • Controlling threading behavior
Including Files and Applets in JSP Pages
  • Using jsp:include to include pages at request time
  • Using <%@ include ... %> (the include directive) to include files at page translation time
  • Understanding why jsp:include is usually better than the include directive
  • Using jsp:plugin to include applets for the Java Plug-in
Using JavaBeans Components in JSP Documents
  • Understanding the benefits of beans
  • Creating beans
  • Installing bean classes on your server
  • Accessing bean properties
  • Explicitly setting bean properties
  • Automatically setting bean properties from request parameters
  • Sharing beans among multiple servlets and JSP pages
Integrating Servlets and JSP: The Model View Controller (MVC) Architecture
  • Understanding the benefits of MVC
  • Using RequestDispatcher to implement MVC
  • Forwarding requests from servlets to JSP pages
  • Handling relative URLs
  • Choosing among different display options
  • Comparing data-sharing strategies
Simplifying Access to Java Code: The JSP 2.0 Expression Language
  • Motivating use of the expression language
  • Understanding the basic syntax
  • Understanding the relationship of the expression language to the MVC architecture
  • Referencing scoped variables
  • Accessing bean properties, array elements, List elements, and Map entries
  • Using expression language operators
  • Evaluating expressions conditionally
Ajax: Asynchronous Page Updates
  • The basic Ajax process
  • Using dynamic content and JSP
  • Using dynamic content and servlets
  • Sending GET data
  • Sending POST data
  • Displaying HTML results
  • Parsing and displaying XML results
  • Ajax toolkits
Using and Deploying Web Applications
  • Purpose of Web applications
  • Structure of Web applications
  • Setting up Web applications with Tomcat
  • Giving custom addresses to servlets
  • Sharing data among Web applications
Creating Custom JSP Tag Libraries: The Basics
  • Java-based tags
    • Components of a tag library
    • Basic tags
    • Tags that use body content
    • Tags that optionally use body content
  • JSP-based tags (tag files)
    • Components of a tag library
    • Basic tags
    • Tags that use attributes
    • Tags that use body content
Custom JSP Tag Libraries: Advanced Topics
  • Tags with dynamic attribute values
  • Tags with complex objects for attributes
  • Manipulating the tag body
  • Looping tags
  • Nested tags
  • Using SAX and TagLibraryValidator to validate tag library syntax
Accessing Databases with JDBC
  • Overview of JDBC technology
  • JDBC drivers
  • Seven basic steps in using JDBC
  • Using JNDI with JDBC
  • Retrieving data from a ResultSet
  • Using prepared and callable statements
  • Handling SQL exceptions
  • Submitting multiple statements as a transaction

Schedule: Spring 2010 Course Schedule by Program: Online Course Offerings: Graduate Information: