Serving Up Servlets

Karl LaFong

Adult Webmasters have always led the way, being ‘early adopters’ of the latest and greatest technological advances designed to enhance the user’s experience while maximizing their resources and profitability. Given this history of innovation and cutting-edge technical prowess, it's surprising to me that so many Webmasters eschew the use of Java servlets in favor of the more established, but much less robust Perl / CGI based applications.

An Introduction to Java Servlets
Java Servlet technology provides Web developers with a simple, consistent mechanism for extending the functionality of a modern Web server and for accessing existing business systems: In its most basic terms, a servlet can almost be thought of as a Java applet that runs on the server side. Java servlets have evolved to make many different Web applications possible, and understanding – and implementing – them can provide many benefits to sites that have traditionally relied upon Perl-based CGI applications.

Servlets are the Java platform technology of choice for extending and enhancing Web servers. Servlets provide a component-based, platform-independent method for building Web-based applications, without the performance limitations of CGI programs. And unlike many proprietary server extension mechanisms (such as the Netscape Server API or Apache modules), servlets are server- and platform-independent. This leaves you free to select a "best of breed" strategy for your servers, platforms, and tools.

Servlets have access to the entire family of Java APIs, including the JDBC API that accesses enterprise level databases. Servlets can also access a library of HTTP-specific calls and receive all the benefits of the mature Java language, including portability, performance, reusability, and stable crash protection. Today, servlets are a popular choice for building interactive Web applications, with third-party servlet containers (which are usually a component of Web and application servers) available for the Apache Web Server, Microsoft IIS, and other Web servers.

Four Good Reasons to Use Java Servlets
In general, Java servlets are programs that sit on a web server and interact in some way with web clients. Specifically, servlets are a great way to replace tired, old CGI programs. Why are servlets better than CGI programs written in languages such as Perl and C? Here’s four good reasons:

1) Servlets Are Cross-Platform: Because servlets are written in Java, they can be used on multiple platforms without worrying about compatibility issues or recompilation.

2) Servlets Are Fast: Standard CGI programs are slow because a new process must start up and run for every client request. For example: if a Perl CGI search engine is being used by 25 users, 25 separate versions of the program have to be loaded into memory and executed... that's a lot of overhead. Java servlets are fast because they are persistent. The same search engine as a servlet would load only once and then service all 25 clients using multiple threads. It would then stay loaded in memory and wait for more requests instead of shutting down.

3) Servlets Are Elegant: Because Java was created from the start to be object-oriented, programs written in that language tend be organized more effectively into easily manageable parts. This makes servlets easier to maintain and understand.

4) Servlets Are Secure: Servlets are run in the Java ‘security sandbox’ so they can be easily insulated from disrupting the operating system or breaching security. Additionally, many old security holes in traditional CGI languages result from those languages being weakly typed. Java's strong typing helps to ensure fewer accidental security mistakes.

You might also want to check out the latest information on JavaServer Pages (JSP). JSP technology is an extension of the Java servlet technology that was created to support authoring of HTML and XML pages. It makes it much easier to combine your fixed or static template data with dynamic content. Even if you're quite comfortable writing and / or using servlets, there are several compelling reasons to investigate JSP technology as a complement to your existing work, but the details are beyond the scope of this article.

The point of this article is that while many of the established automation methodologies that you might have employed in the past were functional, their functions may be markedly improved upon by updating to newer and more robust technologies. Given the competitive nature of this business, it only makes sense to try…