According to Java Servlet Programming, 2nd Edition—O'Reilly
A servlet is a generic server extension—a Java class that can be loaded dynamically to expand the functionality of a server. Servlets are commonly used with web servers, where they can take the place of CGI scripts.
Servlets are executed inside a Java Virtual Machine. The official reference implementation and most commonly used servlet container is Apache's Tomcat Server, which is packaged with Red Hat Application Server and is also freely available from the Apache web site http://jakarta.apache.org.
Servlet/JSP engines are embedded in J2EETM servers. Red Hat Application Server supports Tomcat.