webMathematica is based on two standard Java technologies: Java Servlet and JavaServer Pages (JSPs). Servlets are special Java programs that run in a Java-enabled web server, which is typically called a "servlet container" (or sometimes a "servlet engine"). There are many different types of servlet containers that will run on many different operating systems and architectures. They can also be integrated into other web servers, such as the Apache web server.
webMathematica allows a site to deliver HTML pages that are enhanced by the addition of Mathematica commands. When a request is made for one of these pages, the Mathematica commands are evaluated and the computed result is placed in the page. This is done with the standard Java templating mechanism, JavaServer Pages, making use of a special tags; examples of these are given in a later section.
webMathematica provides a large library of Mathematica commands to handle the many possible ways of working with Mathematica computations. An important part of webMathematica is the kernel manager that calls Mathematica in a robust, efficient, and secure manner. The manager maintains a pool of one or more Mathematica kernels and, in this way, can process more than one request at a time. An overview of the workings of a webMathematica site is shown here.
There are many different combinations of hardware and operating systems that support these components. Most systems that run Mathematica will support webMathematica. At present Windows, Linux, and Mac OS X are fully supported, http://www.wolfram.com/mathematica/system-requirements.html. Setting up the servlet container is discussed in a later section.