Servlet Development Tools
- 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.
- PreparedHTML
- A simple class to help servlet programmers separate content
from presentation without getting into the intricacies of JSP.
It seems like a simplified template engine with HTML pages containing
text like this: <!--PreparedHTML.PlaceHolder:placeHolderName-->.
The code is free (explicitly unlicensed). Written by Garth Fisher.
-
-
-
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.
-
Java Interactive Servlet Development Tool
-
|
|
|
|