Chapter 1: An Overview of Servlet and JSP Technology
   
  Understanding the role of servlets
  Building Web pages dynamically
  Looking at servlet code
  Evaluating servlets vs. other technologies
  Understanding the role of JSP
   
  Chapter 2: Server Setup and Configuration
   
  Installing and configuring Java
  Downloading and setting up a server
  Configuring your development environment
  Testing your setup
  Simplifying servlet and JSP deployment
  Locating files in Tomcat, JRun, and Resin
  Organizing projects into Web applications
   
  Chapter 3: 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
  How to deal with multithreading problems
  Tools for interactively talking to servlets
  Servlet debugging strategies
   
  Chapter 4: Handling the Client Request: Form Data
   
  Reading individual request parameters
  Reading the entire set of request parameters
  Handling missing and malformed data
  Filtering special characters out of the request parameters
  Automatically filling in a data object with request parameter values
  Dealing with incomplete form submissions
   
  Chapter 5: 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
  Customizing pages according to how users got there
  Accessing the standard CGI variables
   
  Chapter 6: 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
   
  Chapter 7: 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
   
  Chapter 8: 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
   
  Chapter 9: 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
   
  Chapter 10: Overview of JSP Technology
   
  Understanding the need for JSP
  Evaluating the benefits of JSP
  Comparing JSP to other technologies
  Avoiding JSP misconceptions
  Installing JSP pages
  Surveying JSP syntax
   
  Chapter 11: Invoking Java Code with JSP Scripting Elements
   
  Static vs. dynamic text
  Dynamic code and good JSP design
  The importance of packages for JSP helper/utility classes
  JSP expressions
  JSP scriptlets
  JSP declarations
  Servlet code resulting from JSP scripting elements
  Scriptlets and conditional text
  Predefined variables
  Servlets vs. JSP pages for similar tasks
   
  Chapter 12: 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
   
  Chapter 13: 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
   
  Chapter 14: 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
   
  Chapter 15: Integrating Servlets and JSP: The Model View Controller (MVC) Architecture
   
  Tutorial on JSF (JavaServer Faces) and Apache MyFaces (an MVC Framework)
  Tutorial on Jakarta Struts (another MVC Framework)
  Topics in Chapter:
   
  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
  Forwarding requests from JSP pages
  Including pages instead of forwarding to them
   
  Chapter 16: Simplifying Access to Java Code: The JSP 2.0 Expression Language
   
  Motivating use of the expression language
  Invoking the expression language
  Disabling the expression language
  Preventing the use of classic scripting elements
  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
   
  Chapter 17: Accessing Databases with JDBC
   
  Connecting to databases: the seven basic steps
  Simplifying JDBC usage: some utilities
  Using precompiled (parameterized) queries
  Creating and executing stored procedures
  Updating data through transactions
  Using JDO and other object-to-relational mappings
   
  Chapter 18: Configuring MS Access, MySQL, and Oracle
   
  Configuring a DSN to connect to Microsoft Access
  Installing and configuring MySQL
  Creating databases and users in MySQL
  Installing and configuring Oracle9i
  Using the Database Configuration Assistant to create a database in Oracle9i
  Manually creating a database in Oracle9i
  Creating users in Oracle9i
  Testing your database through a JDBC connection
  Determining the JDBC version of your database driver
  Setting up the example music table
   
  Chapter 19: Creating and Processing HTML Forms
   
  Data submission from forms
  Text controls
  Push buttons
  Check boxes and radio buttons
  Combo boxes and list boxes
  File upload controls
  Server-side image maps
  Hidden fields
  Groups of controls
  Tab ordering
  A Web server for debugging forms
  More Information
   
  Online documentation
   
  Servlet 2.4 API
  JSP 2.0 API
  Java 1.4 API
  Java 1.5 API
  Struts Developer and User Guides
  Struts API
  JSF 1.1 Java API
  JSF 1.1 Tag Library API
  Apache MyFaces Documentation