The Java Servlet architecture lets you use a persistent Java Virtual Machine to run code. Since the JVM is persistent, it has a long-term memory, simplifying things such as memory management and maintaining state, and eliminates problems such as forking and filled process tables. There are a few implementations of servlets; Sun has one, of course, as does Apache.