What's New?


Servlet Polls

Mailing Lists

Servlet Engines

Servlet ISPs

Servlet Tools


Online Articles

The Soapbox

"Java Servlet
Second Edition"

"Java Enterprise
Best Practices"

Speaking & Slides

About Jason

XQuery Affiliate

Useful URLs
Development Tools

Without tools, people are nothing more than animals. And pretty weak ones at that. Here's a list of servlet development tools you can use so you won't be a servlet weakling.

Have an addition? Please write tools-idea at servlets dot com.

Cyscape BrowserHawk4J (Highly recommended!)
BrowserHawk4J is a JavaBean that knows most everything about client browsers and their capabilities, and makes that information available to servlets and JSPs. Sites that use BrowserHawk4J can build pages perfectly targetted for each visitor, making for the best experience for the user, while providing graceful degradation for users with older browsers. The code executes fast and is quite solid -- I know, I helped develop the product. Free evaluation. Pricing from $99 to $429. The BH4J 2000 version has added the ability to detect:
  • Disabled cookies, disabled JavaScript, and disabled Java applets
  • Visitor connection speed
  • Visitor connection type (LAN vs. modem), on IE5+
  • Screen size resolution and browser window size
  • Screen color depth in bits per pixel (i.e. 16, 32, etc)
  • Plug-ins including Flash, Director/Shockwave, Acrobat, Media Player, RealPlayer, and QuickTime
  • Plug-in build/version numbers, on IE5+
  • All HDML and WAP devices, including maximum deck size, screen size, subscriber ids, WAP gateways and more
  • All PDA devices

Ant Build Tool (Highly recommended!)
Ant is an amazingly cool build tool. It's named ant because it's a small tool with power enough to build large projects. It was developed by Sun to build the Tomcat web server (the reference implementation for servlets and JSP), and is now open sourced along with Tomcat. Ant now is the build tool of choice for most of the Java-Apache projects. It uses simple XML configuration files to manage the build with tags like <javac>, <mkdir>, <copyfile>, <deltree>, <rmic>, and such.

Here's some snippets from the build.xml that builds Tomcat:

  <target name="prepare">
    <mkdir dir="${}"/>
  <target name="main" depends="prepare">
    <javac srcdir="src/share" destdir="${}/classes"
         classpath="${}/lib/xml.jar" debug="on"/>
    <rmic base="${}/classes"

  <!-- and so on -->

The exciting thing is that each tag is just a class (ie and you can define your own tags by writing classes for Ant to load.

Besides being easier to use than "make", ant is also faster at compiling Java code: The compiler code is loaded within ant and can be used repeatedly.

Ant has recently become its own project with a separate workspace so you can use Ant whether or not you're interested in Tomcat. A manual is available in the distribution under the docs directory.

Source is online at

Source "tarball" is available from


Tea (Highly Recommended!)
Tea is an open source product from the Walt Disney Internet Group,
created internally over the years to solve their tremendous web production
needs for sites such as It's similar to JSP although it avoids
many of JSPs problems, and already has terrific tools support.

WebMacro (Highly Recommended!)
WebMacro is a template engine created by Semiotek as part of the Shimari
project. WebMacro has been used on commercial sites such as WebMacro is written by Justin Wells and available free under an Apache-style license. I've used it for parts of and have found it more useful than JSP. There a vim (versions 5.5 and later) syntax coloring script available thanks to Claudio Fleiner.

Apache Velocity (Highly Recommended!)
Velocity is a Java-based template engine based on the WebMacro idea, but was an independent implementation undertaken back in the days when WebMacro was only under the non-commercial software friendly GPL. It's since been integrated in open source frameworks such as Turbine and Melati, and has been used in prominent open source projects such as JetSpeed. It's open source under the Apache license. At this moment it's had a final 1.0 release while WebMacro isn't quite final yet. It comes with a WebMacro to Velocity template converter script.

Apache Struts (Highly Recommended!)
Struts is a project to "provide an open source framework useful in building web applications with Java Servlet and JavaServer Pages (JSP) technology. Struts encourages application architectures based on the Model-View-Controller (MVC) design paradigm, colloquially known as Model 2 in discussions on various servlet and JSP related mailing lists."
Apache's Cocoon
Cocoon is an XML publishing framework based on servlets. It lets you manipulate the presentation layer using XSLT, which many find desirable. It's now in Version 2.0. Cocoon also includes a technology called "XSP" for Extensible Server Pages which some people adore.

Apache's Jetspeed
Jetspeed is an Open Source (Apache license) framework to build enterprise portals. In the style of famous portals (, it's intended to present a web front end to changing information. The information can come from multiple sources, everything from XML to SMTP, to newer protocols like iCalendar. It's built using JDK 1.1 and Servlet API 2.0, and features a Portlet API so content can be pluggable. It's integrated with other Apache technologies like Cocoon and ECS, supports RSS (Rich Site Summary) which is the big thing for portals, and even has a way to sync with Avantgo for Pilot users. With the issues we face running, Jetspeed might be just the thing. Stay tuned.

ReportMill is a graphical page layout tool (written in Swing) with an ability for its pages to act as templates for servlets. This lets you create a report graphically and on the web publish the report as a PDF with customized information for your client. The Swing app looks great, and it's WebStart enabled so you can run a demo by clicking a link.
XMLC makes use of XML to get a nearly 100% separation of content from presentation. It was created by Lutris as part of their Open Source Enhydra Application Server, and can be used as a separate component. Lutris is now defunct but XMLC lives on.
Visual Engineering's KavaChart
KavaChart (formerly known as JavaChart) contains a set of servlets designed to generate charts based on passed-in parameters. If you want to do dynamic chart creation on the server side, here's an easy way. And they're FREE!

XDE Java Spell Checker
XDE Java Spell Checker can use a servlet back-end to spell check an HTML page's textarea on the front end. Prices vary depending on usage.

AVIDRapidTools (ART)
ART is a Java framework for the rapid development of wireless and wired applications. Developers write a Java class for each screen, and the ART engine dynamically generated content optimized for the device currently attached. It supports WAP/WML, i-Mode, various Compact HTMLs (Palm, GoAmerica, AvantGo, Neomar, Pixo) and regular HTML. The same screen class file works with servlets, JSP pages, and Palm PQA files. It includes classes for alert message generation, SMS/SMTP messages, JDBC helper classes and pooling. Download includes the tagtraum's servlet engine and YoSpace phone emulator. Commercial. PS: you might recognize the book on the cover of their company brochure.

Element Construction Set
The Element Construction Set (ECS) package from the Apache Jakarta Project is a set of servlet utility classes for generating markup languages such as HTML and XML. It's similar to htmlKona, as discussed in Chapter 6 of Java Servlet Programming, 1st Edition, but has the siginificant advantage that it's Open Source as part of the Apache project. It's developed by Stephan Nagy and Jon S. Stevens.

Turbine (formerly known as Dash) is an Apache open source servlet framework to help "experienced Java developers quickly build secure web applications." It takes an object oriented approach to web application architecture. Apache's JetSpeed and Jyve applications use Turbine internally. The "Screen" component of Turbine responsible for generating actual content can integrate with tools like WebMacro, JSP, Freemarker, Cocoon, etc.

Expresso Framework
The open source Expresso Framework is a library of components to help in creating servlet and JSP-based web applications. There are components for security, connection pooling, accessing databases, email connectivity, job control, health checking, logging, event notification, managing configuration values, and accessing other server-side components including XML import/export and XSL transformation capability. It's now being integrated with struts. It's available under the very open Apache-style license, so source code is free; and support is available for $950/year.

From their summary: "Melati is a tool for building Java-programmed websites backed by a database. It provides the following features: a generic database administration system, allowing the site manager to edit both the contents and the structure of the database through a simple web based interface; rapid templating mechanism, using "templets" (sub-templates) for rendering interface elements (eg HTML input boxes, dropdowns), and providing an easy interface with persistent objects; close integration with the Webmacro/Velocity templating engines; cookie-based or HTTP-based login provoked automatically by access control failure; full integration with POEM (Persistent Object Engine for Melati)" Price is free (open source).

Java Barcode Package
From their summary: "Easily add barcodes to web and Java applications. The servlets and applets require no programming; the servlets may be embedded in HTML with the standard <IMG> tag. The Java Barcode Packages support Code 39, Code 128, Interleaved 2 of 5, Codabar, UPC, EAN, MSI, Code 11, Code 93, POSTNET, PLANET and 2D symbologies including PDF417, DataMatrix and MaxiCode. You may download the evaluation version in a ZIP file which contains the JavaBean, Applet, Servlet, Class Library, a user manual and source code for the applet and servlet." Price is $199 for a single server license.

From their summary: "eContent is a Web-based content management system for creating enterprise information systems for B2B, B2C, catalogs, etc. Written in Java servlets for scalability, eContent offers personalized content, content management, and electronic resource distribution: built-in security; unlimited table of contents; unlimites n-level categories; unlimited resources such as static reports, live reports with drill-downs, executables, all documents types, OLAP reports, Java programs, online forms and legacy integration. Includes support for XML-based content, including XSL transformations for WML support, etc. Integration with Apache Jetspeed. Use servers as distribution points for reports and other resources created on a wide variety of platforms - unifying & organizing access to disparate enterprise data sources."

JDJ is a tool that lets you call server-side Java methods from client-side JavaScript code, using a hidden applet communicating with a servlet as the conduit. J2J stands for "Java to JavaScript". Free for non-commercial use; contact the ColdJava folks for a commercial license.

ServletExec Debugger 2.2
A basic web server written in Java with the ServletExec servlet engine built-in. You run the debugger on the server to debug your servlets, as described in Chapter 13 of my book. For ServletExec users this debugging tool is particularly useful because you can move everything to a production server by simply copying over your classes and ServletExec configuration files. The product comes with detailed instructions for use with almost all Windows-based Java IDEs. Changes from 2.1 include support for JSP 1.0 and additional IDE instructions. Free.

Andere/iS TE
A servlet based webmail solution (like Yahoo Mail and Hotmail) you can use on your site. Free trial version, commercial version priced from $45 for a single user to $1000 for 100 users. Works with any servlet engine but comes bundled with Apache+Tomcat.

MMbase is an open source dynamic content management system, built using servlets. It's deigned to make publishing a content-rich website easy, even for people without extensive computer experience. I suspect MM stands for MultiMedia. MMbase was originally developed by the Dutch public broadcasting organization VPRO for their own needs, and they've open sourced the code to help keep it current. The tool is used on the and sites. Available under the Mozilla Public License.

According to their site, OTembo is "a small package for building your own HTML template processor that uses special tags to do [database] queries. The goal is to make it adaptable to handle XML code, SGML code or even JSP and ASP pages. Currently, it implements a tag extension set developed by Object Design, Inc for their ObjectForms program."

Servertec's iScript
iScript is a server-side interpreted scripting language based on BASIC but implemented in Java 1.1. It lets you write pages with a syntax like JSP/ASP but the language is iScript. It's unclear why you'd choose this over JSP. Binary license is $25/seat or $500 for a corporate subscription.

Servertec's iMake
iMake is a Java-based build tool modeled after "make" for creating web pages, classes, object files, libraries, and executables. It's unclear what this offers over traditional "make", maybe just that it's written in Java and portable? Binary license is $25/seat or $500 for a corporate subscription.

Servertec's iPP
iPP is a pre-processor modeled after the traditional C pre-processor intended to help create web pages from templates. Again, it's unclear what this offers over traditional "cpp" except the advantage that it's written in Java and portable and embeddable in another Java program. Binary license is $25/seat or $500 for a corporate subscription.

FreeMarker is another template engine for Java Servlets. It's written by Benjamin Geer and Mike Bayer and available free under the BSD license. It's on version 2.0.

Optimize It!
A performance tool designed to identify bottlenecks in an application. The tool shows where CPU cycles are being used and where objects are being created, all with a friendly yet powerful user interface. It comes with a simple servlet that they say can start Optimizeit from the following servers: WebSphere (IBM), iPlanet (iPlanet), ServletExec (New Atlanta Comm), JServ (Apache), WebObjects (Apple), WebLogic (BEA Systems), Java Web Server (Sun), JRun (Allaire), ServletRunner (Sun). Probably it just works with all servlet engines. Available from Intuitive Systems. Priced at $499 for the professional version, $299 if you're a student.

A tool for separating content from presentation using a servlet based preprocessor modeled after a "simplified" JSP syntax. Written by Dmitry Namiot from ColdJava (based in Russia). Free for non-commercial use, talk to them for commercial licensing terms. Now if only they could use a decent ISP that doesn't pop open ad windows...

Credit Card Validation
Not all 16 digit numbers are legitimate credit card numbers. There's actually a checksum included in the number sequence which can be used to quickly identify obviously mistyped numbers. A servlet could implement the validity check using the well-known algorithm. But even better, the above link contains a JavaScript routine to do the check on the client side before the order is even sent to a servlet. Once the number reaches the servlet it can be authorized using a tool like SkipjackIC.

A servlet superclass that provides methods to generate GIF images using the Acme encoder. Similar to Java Servlet Programming's Chapter 6 examples -- with the cool additional ability to encode a color as transparent. Written by Aaron Porter.

A library for generating PDF files from a servlet. Useful if you want to control exactly how your servlet's output will look. It requires JDK 1.2. It's available for free under the MPL license. Written by Bruno Lowagie.

Another library for generating PDF files from a servlet. Also in beta. Available for free under the GPL license; you can buy support. Written by Etymon Systems.

Yet another library for generating PDF files from a servlet. Only this library has actually been officially released. Available for free under the LGPL license. Written by Peter Mount.

Gallaware's ServletActionBroker
A framework to automatically call servlet methods based on passed-in form data. Essentially, in the form you specify what method you want called and what parameters you want passed, and the broker takes care of the rest. Even provides a query mechanism to find out what functions the servlet can perform. Behaves in some ways like HTML-to-servlet RMI. Unfortunately, requires significant manual setup. Currently beta. Free.


Home   com.oreilly.servlet   Polls   Lists   
Engines   ISPs   Tools   Docs   Articles   Soapbox   Book

Copyright © 1999-2005 Jason Hunter
Last updated: March 1, 2009