Purple Servlet FAQ and Resources

By Alex Chaffee (alex@purpletech.com)
$Revision: 1.2 $ $Date: 2003/02/05 21:16:44 $
Revision History is at the end of this document.

The current version of this document can be found at http://www.purpletech.com/servlet-faq/
Please send comments, corrections, questions you want answered, answers you want questioned, or additional resources to faq@purpletech.com

The FAQ has moved to jGuru!

I'm now maintaining the Servlet FAQ at jGuru. All the existing questions have been moved over, plus there's a great interface for submitting questions and answers and feedback. This is all part of jGuru's plan to provide a great place for Java developers to learn from each other.

I'm going to keep the list of Servlet-Related Resources up to date on this page for the time being, so you can keep bookmarking this page until further notice.

More news: I've put my Purple Technology Source Code online, including several sample Servlets.

If you want to see the old version of the FAQ written in XML and XSL using LotusXSL and XML for Java from IBM, the source files are faq.dtd, servletfaq.xml, and faq.xsl if you'd like to see how I did it.

Table of Contents



Servlet Home Pages
  • Servlet API and the Servlet Development Kit - Sun's official Servlet page

  • Java Server Pages - Sun's official JSP page

  • The Java-Apache Project - a volunteer effort, developing Apache JServ, JSSI, JMeter, Cocoon, etc.

  • The Jakarta Project - Developers of Tomcat, an implementation of the Java Servlet 2.2 and JavaServer Pages 1.1 Specifications

  • Servlets.com - Jason Hunter's web site companion to his "Java Servlet Programming" by O'Reilly

  • Servlet Central - the server-side Java magazine - lots of information about servlets, including a list of available servlets

  • Servlet Source - code, tips, tutorials

  • Servlets Taverne - Daily news and product announcements on Servlets, Web Servers, EJB, XML, JDBC

  • Specifications and Whitepapers
  • A "relatively old" Servlet API Whitepaper

  • Java Servlet API Spec Version 2.1

  • Java Servlet API Spec Version 2.2 - Public Draft now available

  • JSP Spec - Version 1.1 is available for public review

  • RFC2045 - MIME

  • RFC 2109 - Cookies

  • FAQs
  • jGuru Servlet FAQ

  • Java-Apache FAQ

  • New Atlanta Servlet FAQ

  • Purple Technology Servlet FAQ (this document)

  • Java Web Server FAQ (from Sun)

  • Java Server Pages (JSP) FAQs

  • Documentation
  • Java Web Server Documentation

  • Tutorials
  • JavaSoft Servlet Tutorial - Required reading

  • Java Web Server Servlet Tutorial - Also available in the JWS download

  • "Servlet Essentials" Tutorial by Stefan Zeiger

  • "Building Java Servlets with JBuilder" - walks you through creating servlets that utilize JDBC, RMI, and CORBA.

  • XML Java Tutorial by Nazmul Idris - has a section on using Servlets with XML

  • Using Apache JServ 1.0b1 by Ari Halberstadt - "a wonderful step-by-step process for bootstrapping Jserv and testing a simple servlet" - Reid M. Pinchback (reidmp@MIT.EDU)

  • WebMonkey Servlet Tutorial by Dr. Richard Blaylock

  • Articles
  • Intelligence.com - has a wealth of links to articles about Servlets (as well as pretty much any other technology you can think of!)

  • The Servlet Series - stories from java.sun.com

  • Servlet Central - The server-side Java magazine

  • "Migrating CGI Scripts to Java Servlets" - Java Developer's Journal, Jan 98

  • "Developing 3-Tier Database Apps w/ Java Servlets" - Java Developer's Journal, Feb 98

  • Mailing Lists and Newsgroups
  • Servlet Interest Mailing List - jserv-interest@javasoft.com - to subscribe, send "SUBSCRIBE java-interest Joe Blow" in the body of a message to listserv@javasoft.com

  • JSP Interest Mailing List - jsp-interest@javasoft.com - to subscribe, send "SUBSCRIBE jsp-interest Joe Blow" in the body of a message to listserv@javasoft.com

  • The Java-Apache Project Mail Lists - Separate lists for users of mod_jserv and developers of mod_jserv

  • ServletExec Mailing List - to subscribe, send "subscribe servletexec" in the body of a message to list-requests@newatlanta.com

  • Servlet Training Companies
  • Purple Technology - Java Training

  • jGuru Java Training by the MageLang Institute - the best Java training in the known universe

  • Advanced Web Technologies

  • Nova Laboratories - Java Developer Kitchen Series

  • Servlet-Enabled Web Servers
  • Sun's definitive list of servlet runners

  • The Java Web Server by Sun Microsystems

  • IBM's WebSphere

  • Lotus Domino Application Server

  • Avenida - certified 100% Pure Java web server

  • Jetty - Jetty is an Open Source HTTP Servlet Server written in 100% Java

  • LiteWebServer - A small (less than 100 KB) pure Java web server with support for the Servlet 2.1 API

  • jo! - A small, pure Java HTTP server with support for Servlet API 2.1.1, part of WebApp Framework.

  • Jigsaw - W3C's open-source Java HTTP server

  • M5 Web Server - Inexpensive Java web server

  • Zeus Web Server - Commercial web application server

  • Paperclip - Open-source Servlet 2.1 Server

  • BEA WebLogic - "With 4.5 we fully implement JSP 1.0 as well"

  • Servlet Engines

    Servlet Engines make servlets run inside existing web servers

  • Apache JServ - a servlet engine for Apache Web Server

  • Tomcat - an implementation of the Java Servlet 2.2 and JavaServer Pages 1.1 Specifications

  • JRun by Live Software - Supports: Apache, Microsoft IIS and PWS, O'Reilly WebSite, Netscape FastTrack & Enterprise, StarNine WebSTAR, Apple AppleShare IP

  • ServletExec by New Atlanta Communications - Supports: Microsoft Internet Information Server (IIS), Netscape FastTrack & Enterprise servers, Apache (including on Linux) and all major Mac OS web servers

  • WAICoolRunner by Gefion Software - Supports: Netscape servers

  • WebSphere by IBM - Supports: Lotus Domino Go Webserver, Apache HTTP Server, Microsoft IIS, and Netscape Enterprise Server
    Includes CORBA 2.0 conformant object request broker and object server, supports Enterprise Java Beans (EJB)

  • Locomotive - an Open Source Java-based Web Application Server. Locomotive is built on Java and provides integration with Apache via the Apache API, Netscape servers via NSAPI and IIS servers via the ISAPI. The Locomotive currently supports Oracle, Informix, MySQL, Cloudscape:JDBMS, SQL Server. The Locomotive supports the Servlet API, has dynamic load balancing and failover capabilities and a sophisticated template language, STEAM.

  • Dynamo Web Application Server by ATG

  • Other Servlet-related Products
  • John Carnahan's Java Module for Apache (mod_java) - Forks a new process for each servlet request

  • N-Ary Consulting - Has several servlets for sale, also an interesting servlet interface to the comp.lang.java.programmer newsgroup.

  • Spin - an authoring tool based on JavaBeans that can author servlets

  • Live Software Products
    • ServletDebugger - helps test and debug servlets
    • ServletWizard - servlet project wizard for Symantec's Visual Cafe
    • ServletKiller - stress test your site and applications

  • WebApp Framework

  • HTML Page Template Systems

    Here is a brief brief list of alternate page template systems (initially compiled by Dan Stiefel (dan@entago.com) )

  • JSP

  • GnuJSP - a free implementation of Sun's Java Server Pages

  • GSP - Gnu Server Pages

  • Apache JServSSI

  • Hamilton - Open Source Application Server

  • STEAM - part of Locomotive

  • FreeMarker (formerly Dexios)

  • ASPy (Active Server Python) - Script your HTML pages using JPython

  • WebMacro Servlet Framework

  • WASP - Web Application Server Platform. The WASP is an OpenSourceTM platform (library) for developing complex web applications. It is written in Java and runs under any system which will support the Java Servlet API.

  • ExpertVista by NetReturn - specializes in database access and report writing via XML

  • HtmlScreen

  • WinWin Software's ATP Template Toolkit

  • CF_Anywhere by Live Softwre - runs Cold Fusion CFML pages in a servlet

  • Instant ASP by Halcyon Software - Runs Microsoft IIS-style ASP pages in a servlet, allowing scripting in JScript, VBScript, Perl, JavaScript, and more, as well as JSP.

  • ESP - ECMAScript Pages - a servlet add-on that allows you to write servlets directly in JavaScript (aka ECMAScript) and HTML

  • Lightning Servlet Suite - Page generation system built on JNDI

  • Metaphoria - Virtual Web Server architecture

  • TRiX by Anders Kristensen (ak@hplb.hpl.hp.com) - Template Resolution in XML/HTML

  • Caucho - Powerful JSP engine with built-in support for XSL and DOM and JavaScript

  • HTML Generation Classes
  • HTMLKona - part of BEA WebLogic (formerly Tengah)

  • Mort Bay HTML Generation Classes - Source code available as part of the Jetty release

  • JSP Format Bean Library by IBM Alphaworks - Handy Servlet Beans for formatting HTML from JSP, including JSPTableFormat Bean.

  • Element Construction Set (ECS) - The Element Construction Set is a Java API for generating elements for various markup languages. It directly supports HTML 4.0 and XML.

  • HTML Generation Package by Anders Kristensen (ak@hplb.hpl.hp.com) - an implementation of the java.servlet.html API, which has been removed from Sun's Java Web Server distribution

  • Other Servlets
  • Servlet Central's Archive

  • Live Software Servlets
    • CF_Anywhere - runs Cold Fusion CFML pages in a servlet
    • Servlet Pack One - servlets for sending email, maintaining file-based counters, looking up a user's domain name from their IP address, displaying sophisticated date/time information, performing database queries, and file uploading
    • NewsServlet - allows for the reading and posting of messages to standard NNTP-based news servers

  • Tim McCune's Servlet Toolbox - WinCGI Servlet, PageCounter Servlet, WeatherBox Servlet, AtRandom Servlet

  • JavaExchange - Database Connection Broker servlet

  • Servc Servlet Authoring Tool

  • Mort Bay Tracker: A WWW Servlet for issue/defect tracking

  • Cookie Detector by Alex Chaffee - Tries to drop a cookie on the user's browser, and detects whether the browser accepted my cookie or not.

  • InstantOnline by Gefion - A servlet suite for devlopment of dynamic web sites without coding. Components for database access, email, file upload, session data handling, and more.

  • Java Software by Anders Kristensen (ak@hplb.hpl.hp.com)
    • WebSter - gateway to Webster's English Dictionary servers
    • JdbcGateway - display tables, get database metadata, and submit arbitrary SQL statements
    • Servlet Utilities - FormMultiPart parser, Cookie sender, HTML template stuff

  • GifServlet by Aaron Porter - resize and recolor GIFs

  • Image Processing Classes
  • GifEncoder by Jef Poskanser - Create and export GIFs in 100% Java

  • Focus on Java: Creating Images from the Command Line - a brief article describing the use of the Java 2 JPEGCodec class.

  • Essential JPEG by James R. Weeks (jwweks@bayou.com) - a "surprisingly fast" JPEG encoder in Java that can write to a file

  • Pure Image and ImageBuilder by Purple Technology - a class that can combine multiple transparent GIFs into a single GIF

  • Jimi by Activated Intelligence - a Java image processing toolkit

  • GifServlet by Aaron Porter - resize and recolor GIFs

  • Java E-mail Resources
  • Sun's JavaMail Home Page

  • Intro to JavaMail article by JRun Magazine

  • Qsmtp by Jim Driscoll

  • version of Qsmtp rewritten by Alex Chaffee - supports multiple recipients and additional headers

  • Servlet Central article - describes (and has code for using) the sun.net.smtp package

  • IBM Alphaworks SMTP Bean

  • EasyMail - a very easy package for sending simple messages

  • Revision History

    $Log: index.html,v $
    Revision 1.2  2003/02/05 21:16:44  alex
    *** empty log message ***
    Revision 1.1  2002/01/19 18:50:21  alex
    new build structure, new web directory
    Revision 1.1  2001/07/15 03:39:41  alex
    Initial import 7/2001
    Revision 1.1  2000/07/16 01:27:40  alex
    new webapp arrangement
    Revision 1.2  2000/03/10 12:00:59  alex
    adding from site
    Revision 2.6  2000/01/22 22:34:26  alex
    clarified "moved to jguru", fiddled with resources
    Revision 2.5  2000/01/08 01:35:52  alex
    Removed all questions (they're at jGuru now)
    Revision 2.4  2000/01/07 21:46:33  alex
    caucho, misc
    Revision 2.3  1999/09/04 00:43:22  alex
    added weblogic links
    added applet-servlet communication article
    Revision 2.2  1999/07/22 14:10:01  alex
    added may wone's debugging advice
    Revision 2.1  1999/06/29 13:22:27  alex
    converted to XML
    many minor corrections
    changed first question to more general CLASSPATH question
    Revision 1.32  1999/06/21 20:34:03  alex
    added JSP FAQ and reshuffled FAQs in References section
    Revision 1.31  1999/06/11 22:36:08  alex
    jsdk webserver added to debug section
    Revision 1.30  1999/06/11 21:17:09  alex
    note about Jason Hunter
    Revision 1.29  1999/06/11 21:06:45  alex
    more on encodeURL
    Revision 1.28  1999/06/11 20:57:17  alex
    encodeUrl -> encodeURL
    Revision 1.27  1999/06/02 20:34:49  alex
    added apache mod_rewrite info
    Revision 1.26  1999/06/02 15:52:06  alex
    Added question 20 (file upload) and 21 (database access)
    Revision 1.25  1999/06/01 20:26:01  alex
    Fixed answer to question 8 (getRequestURI)
    other minor changes
    Revision 1.24  1999/05/30 16:08:39  alex
    several more servlet engines, servlets.net, etc.
    Revision 1.23  1999/05/28 18:17:41  alex
    jdb password=[password]
    Revision 1.22  1999/05/28 16:38:21  alex
    added a user comment to debugging section, added Gefion products
    Revision 1.21  1999/05/28 15:06:19  alex
    added ECS, moved apache faq to java.apache.org/faq
    Revision 1.20  1999/05/28 14:58:58  alex
    formatting snafus
    Revision 1.19  1999/05/28 14:37:15  alex
    Added Image Processing Classes to References list
    Revision 1.18  1999/05/28 14:09:28  alex
    Added question 18, How can I debug my servlet, and 19, How do I create an image
    Added InstantASP, Qsmtp, SVWH, jGuru, GifServlet, Jimi, Acme
    Revision 1.17  1999/04/24 20:55:03  alex
    fixed typos, redid question 6, revamped References
    Revision 1.16  1999/04/24 19:25:51  alex
    added question 17, "How can my applet communicate with my servlet?"
    added and revised many references
    Revision 1.15  1999/04/24 18:00:16  purple
    Revision 1.14  1999/01/07 14:08:27  purple
    revised question 11. How do I use Session Tracking?
    Revision 1.13  1999/01/07 13:56:10  purple
    Added question 16, What is the difference between URL encoding and URL rewriting?
    Slightly revised question 13, How do I integrate HTML design into my Servlet?
    Other minor corrections
    Revision 1.12  1998/12/24 17:36:02  purple
    #15 ISPs who host Servlets
    Revision 1.11  1998/12/09 14:11:22  purple
    Question 14, how do I send email from a servlet?
    Revision 1.10  1998/12/01 16:34:38  purple
    fixed version, log formatting
    Revision 1.9  1998/12/01 16:29:55  purple
    Added questions 12 & 13