What Are J2EE Containers and What is Their Relation to Application Server Vendors?
A J2EE component needs an execution environment to run in. J2EE containers are runtime hosts for J2EE components. Since there are basically two types of middle-tier J2EE components (Web components and EJBs), there are two types of J2EE containers – Web component containers and EJB containers. Web component containers are basically servlet engines, JSP engines, and Web containers. A servlet container provides network services for servlet execution, such as support for HTTP, and other request-response protocols. JSP containers are basically servlet containers with the additional functionality of compiling JSP pages into servlets. As mentioned above, JSPs become servlets at runtime. Web containers provide the additional functionality of access to other J2EE APIs, such as RMI and JDBC. EJB containers provide the runtime life-cycle management environment for EJB components. This includes EJB instantiation, communication, persistence, and transaction management, as well as access to other J2