A servlet engine handles the client requests for servlets, JSP files, and other types of server-side include coding. The servlet engine creates servlet instances, loads and unloads servlets, manage the servlet life cycle, creates and manages request and response objects, and performs other tasks for managing servlets effectively.
If the server application is written as a Java Servlet, it will need a place to execute, and this place is typically called a Servlet Engine. When you move on to Enterprise JavaBeans, you move into the application server space. An Application Server is any server that supplies additional functionality related to enterprise computing -- for instance, load balancing, database access classes, transaction processing, messaging, and so on.
EJB Application Servers provide an EJB container, which is the environment that beans will execute in, and this container will manage transactions, thread pools, and other issues as necessary.