Customized Onsite 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

Looking for practical, hands-on training on servlets and JSP taught onsite at your organization? Look no further! These courses are personally developed and taught by leading Java EE and Ajax developer, speaker, and author Marty Hall. No contract instructor regurgitating someone else's materials! Marty has taught servlet, JSP, JSF, PrimeFaces, Ajax, GWT, Java 8, and Java EE courses onsite for dozens of organizations in the US, Canada, Mexico, Australia, Japan, Puerto Rico, India, Cambodia, Norway, and the Philippines, all to rave reviews. Marty is also the author of several popular Java EE books, including lead author of Core Servlets and JSP and co-author of the upcoming JSF 2.2 edition of Core JavaServer Faces.

If you have a group of at least eight interested developers (10 for courses outside North America), 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).

Expand some of the following sections for more details and various course options. Then email to discuss which options would work best for your developers.

Overview and Course Options

Most new apps should be developed with the Java-EE-standard JSF 2 (usually with PrimeFaces), not with the older and lower-level servlet and JSP libraries. However, there are two situations where organizations still use servlets and JSP:

  • When maintaining and extending successful legacy apps that were built with servlets and JSP
  • When using direct JavaScript libraries on the client side (e.g., jQuery, Ext/JS or Dojo)

If either of these situations describe your project, please contact Marty Hall to arrange a course at your location that is customized to your needs. Marty is the author of the world's alltime bestselling servlet and JSP text (Core Servlets and JSP) and has taught Java EE in 10 countries and dozens of US venues. Here are some of the possible course options, but of course things can be customized further to fit your needs.

  • Intermediate Servlets and JSP. For developers that know Java already and are working on full servlet/JSP applications.
  • Intermediate Servlets and JSP with Java. For developers that do not yet know Java, but need to work working on full servlet/JSP applications. THis is a single course that includes an abbreviated version of the Java programming crash course, followed by an abbreviated version of the first course above.
  • Ajax. This is a course that looks at Ajax in JavaScript (usually with jQuery), and uses Java on the server to answer to Ajax requests. More details on this course are at the Ajax training page.
  • Servlets for JSF Developers. This is a course for those that are experienced with JSF development and want to learn the underlying servlet API to give them even more control over the app.
Email to discuss which options would work best for your developers.

Intended Audience

All of the servlet and JSP courses presume that the students have moderate or extensive previous Java experience. The courses move much too fast for newcomers to Java. If your developers do not already know Java, then you should start with one of the crash courses in Java programming, then move on to servlets and JSP after that.

Syllabus Choices

Here is a potpourri of possible topics. As discussed above, the topics covered in any course are customizable, but the most common options are: core servlets and JSP, core servlets and JSP plus Java, advanced servlets and JSP, Ajax with Java on the server, and servlets for JSF developers. When you book a course, we will first decide on the exact topics based on your needs and level of experience. Email to inquire about a custom course at your location.

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

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

About the Instructor

Marty Hall Marty Hall is president of, a training and consulting company focusing on server-side Java technology, Android development, and front-end development with JavaScript and jQuery. In addition to long Java development and consulting experience, Marty has an extensive background in teaching and training, having given training courses on Java (now using Java 8), JSF 2, PrimeFaces, Android, Ajax/jQuery, GWT, and other Java EE topics in Japan, Canada, Australia, the Philippines, Mexico, Puerto Rico, India, Cambodia, Norway, and dozens of US venues. He has taught onsite at Google (both the Mountain View and NY offices), the NSA, the CIA, General Dynamics, Northrup Grumman, General Motors, VeriSign, Symantec, the Federal Reserve Bank, Comcast, Hewlett Packard, Fannie Mae, Motorola, Learjet, the US Navy, the Australian Treasury Department, Telenor Norway, and dozens of other organizations around the world. (A more extensive list can be found on Marty's bio page.)

JavaU @ JavaOne

A popular and entertaining speaker, Marty has also spoken at conferences and user groups around the world, including Comdex, the Web 2.0 Expo, and six times at JavaOne, most recently in 2015. Marty is also adjunct faculty in the Johns Hopkins University part-time graduate program in Computer Science, where he directs the Java and Web-related concentration areas.

Marty Hall is also the lead author of six popular Java EE books from Pearson, including Core Servlets and JSP, and is the co-author of the upcoming JSF 2.3 edition of Core JSF. He has also produced training videos for Pearson on JSF, PrimeFaces, Java 8 lambdas and streams (for those that know Java 7), general Java programming using Java 8 (for those new to Java), JavaScript, and jQuery.

  • Core Servlets and JSP is the all-time worldwide bestselling servlet/JSP book, published in Bulgarian, Chinese Simplified Script (Mainland China), Chinese Traditional Script (Taiwan), Czech, Greek, English, French, German, Hebrew, Japanese, Korean, Polish, Portuguese, Russian, and Spanish.
  • Core JSF is widely recognized as the leading text on Web App development with JavaServer Faces.
  • In addition be being best sellers in industry, Marty's books have been widely used in academia (including Stanford, MIT, Princeton, U.C. Berkeley, UCLA, Johns Hopkins, and dozens of others).

For more details, please see the Marty Hall bio.

Course Reviews

Here are a few of the reactions of previous students; we are confident that you will have the same reaction. So confident, in fact, that we offer an unconditional guarantee: if you are not satisfied with the course, we will refund the full cost.

“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. ”

“Masterful, quick-paced presentation. Witty, but never trite. Discussed but never belabored. A Java ed-venture. A gaggle of Goslings could not have done better!”

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

“Excellent course. The best instructor-led course I have attended, by far. The course was exactly what I was hoping for.”

“Best short course ever!”

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

“This course was AWESOME. I came with very little knowledge of JSF and now I look forward to using it on my next project.”

“GREAT class [JSF]. Do you make house calls?”

Promos for Marty Hall at GIDS conference in Bangalore

Ads for Marty at GIDS conference in India

“I'm not easily pleased by industry courses. Luckily, not all presenters are as good as Marty, otherwise University lecturers like myself would be out of work.”

“This was, by far, the best Java training course I have attended... After 4 days, I feel prepared to dive into JSF development with a solid understanding of the basics. I know this is going to make my life easier over the next year. Thank you!”

“Marty is a fantastic teacher and communicator. I thoroughly enjoyed the course and it was timely for my current work.”

For more reviews, please see the course review page.

Other Onsite Java EE Training Courses offers customized onsite courses on general Java programming using Java 8 (for those new to Java), Java 8 lambdas and streams (for those experienced with earlier Java versions), JSF 2, PrimeFaces, Hadoop (including certification prep), the Java EE 8 MVC framework, Android programming, JavaScript and jQuery, the Spring Framework, GWT, servlets/JSP, and custom combinations of topics. Available at any location worldwide.

  • Guinea pigs? No! Our courses are well-tested, having been taught in 9 countries and dozens of US venues. We don't use your developers as guinea pigs for new materials.
  • Regurgitation? No! Our instructors developed all their own materials. No contract instructor regurgitating memorized PowerPoint slides.
  • Green? No! Our instructors are experienced developers, and most have authored popular Java EE texts, spoken at JavaOne, and done extensive onsite training. The course gives best practices and real-world strategies. No newbie instructor dodging tough questions.

For more details, please see the training course home page, or email

Public Training Courses

Coreservlets normally runs on-site training courses at customer locations. This is easier administratively, is better for clients since the topics and schedule can be customized, and is more cost effective for students since no travel is required. However, due to demand from those who do not have enough students for an on-site course, we periodically run public training course at the Johns Hopkins Dorsey Center in Elkridge MD. These courses feature the same experienced instructors as our onsite courses, and are co-sponsored by Johns Hopkins Engineering for Professionals.


For more details, please see the public course schedule.