Customized Advanced Servlet and JSP Training Courses

“Wonderful. In 20 years, this is the best organized, most pragmatic and enjoyable course I've taken.”

“The best instructor-led course I have attended, by far.”

“Best short course ever!”

“Compared to the other short courses I have taken, this one completely redefined my scale from 1-10.”

“In my 35+ years of taking technical courses, Marty's classes consistently come out ranking #1 on my list. Highly relevant material is delivered with enthusiasm, humor, and a high degree of class interaction that is unmatched anywhere.”

more student reviews

Here are the potential topics covered in the advanced servlet and JSP course taught by Marty Hall.
If you have a group of at least eight interested developers (10 for courses outside the US or Canada),
contact Marty to arrange a course at your location.

Onsite courses are easier administratively, are better for clients since the topics and pace can be customized, are more cost effective for students since no travel is required, and are more convenient (for companies in the Baltimore/Washington area) because the schedule is flexible (e.g. afternoons or evenings instead of n consecutive days). However, if you have too few developers for an onsite course, check out our upcoming servlet and JSP training course in Maryland (co-sponsored by the Johns Hopkins Engineering for Professionals program).

Please note that topics can be added or removed to fit the interest and experience of your developers,
and topics from this course can be combined with topics from other related J2EE courses.

For example, some organizations want to mix some of the intermediate topics with these more advanced topics.

Still others want to cover only a few of the advanced topics and then move on to Struts or JSF.
However, the syllabus below gives an idea of the most popular option.


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

Controlling Web Application Behavior with web.xml

  • Location and purpose of web.xml
  • Custom URLs
  • Initialization parameters
  • Preloading pages
  • Welcome pages
  • Error pages

Declarative Web Application Security

  • Major security concerns
  • Declarative vs. programmatic security
  • Using form-based authentication
  • Using BASIC authentication

Programmatic Security

  • Problems with declarative security
  • Combination security: mixing server-managed and servlet-managed (programmatic) security
  • Pure programmatic security

Servlet and JSP Filters

  • Filter basics
  • Accessing the servlet context
  • Using initialization parameters
  • Blocking responses
  • Modifying responses

Web Application Lifecyle Listeners

  • Reason for listeners
  • Monitoring creation and destruction of the servlet context
  • Detecting changes in servlet context attributes
  • Recognizing session creation and destruction
  • Watching for changes in session attributes
  • Combining activities

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

The JSP Standard Tag Library (JSTL)

  • Obtaining JSTL documentation and code
  • The JSTL Expression Language
  • Looping Tags
  • Conditional Evaluation Tags
  • Database Access Tags
  • Other Tags

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

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