Home 
            What's 
              New? 
            
            com.oreilly.servlet 
            Servlet 
              Polls 
            Mailing 
              Lists  
            Servlet 
              Engines 
            Servlet 
              ISPs 
            Servlet 
              Tools 
            Documentation 
            Online 
              Articles 
            The 
              Soapbox  
            "Java 
              Servlet  
              Programming,  
              Second Edition" 
            "Java 
              Enterprise  
              Best Practices" 
            Speaking 
              & Slides  
            About 
              Jason 
            XQuery 
              Affiliate 
              
           | 
           
            
            
            
            
            
			
            
              
            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="${tomcat.build}"/>
  </target>
  
  <target name="main" depends="prepare">
    <javac srcdir="src/share" destdir="${tomcat.build}/classes"
         classpath="${tomcat.build}/lib/xml.jar" debug="on"/>
    <rmic base="${tomcat.build}/classes"
         class="org.apache.tomcat.shell.AdminImpl"/>
  </target>
  <!-- and so on -->
                 The exciting thing is that each tag is just a class (ie Javac.java) 
                  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  
                  http://jakarta.apache.org/cvsweb/index.cgi/jakarta-ant/ 
                  Source "tarball" is available from  
                  http://jakarta.apache.org/from-cvs/jakarta-ant/ 
               -   
              
-  
                
 
                  -   
              
 -  
                
 
                -  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 ESPN.com. 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 AltaVista.com. 
                WebMacro is written by Justin Wells and available free under an 
                Apache-style license. I've used it for parts of Servlets.com 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 (my.yahoo.com, 
                www.excite.com) 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 
                Servlets.com, Jetspeed might be just the thing. Stay tuned. 
                
 
                -  ReportMill 
              
 -  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 
              
 -  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 Phone.com/Openwave 
                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 
              
 -  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. 
                
 
                -  Melati 
              
 -  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. 
                
 
                -  eContent 
              
 -  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." 
                
 
                -  J2J 
              
 -  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 
              
 -  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 mmbase.org and vpro.nl sites. Available 
                under the Mozilla Public License. 
                
 
               -  
                
 
                 -  OTembo 
              
 -  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 
              
 -  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. 
                
 
                -  
                alaJSP 
              
 -  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. 
                
 
                -  GifServlet 
              
 -  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. 
                
 
                -  iText 
              
 -  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. 
                
 
                -  PJ 
              
 -  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. 
                
 
                -  retepPDF 
              
 -  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. 
                
 
                  
               
              
              
             
             
            
              
            
            
               
                  
                  Copyright 
                  © 1999-2005 Jason Hunter 
                 |  | 
                 
                   webmaster@servlets.com 
                    Last updated: 
                    March 1, 2009
                     
                 | 
               
             
            
           |