1、定义
容器就是组件和底层服务细节之间的接口。在web组件、企业级Bean等能够执行之前,它必须被装配为一个JavaEE模块,并部署在容器上。如下图:
装配的过程主要包括:定制容器事务管理特性;JNDI服务等。当然,在JAVA EE中,各种不同类型的模块既可以单独打包(JAR)部署,也可以将这些模块综合起来做成一个EAR包进行部署。
2、服务
JavaEE容器提供了企业应用开发中的各种服务。如,处理事务管理、管理EJB和Servlet的生命周期、数据库连接池、数据持久化等底层复杂的细节。
3、分类
我们知道,JavaEE组件经过部署之后,被安装到JavaEE容器中。首先看在JavaEE的项目开发中的组件构成:
根据组件构成,将JavaEE项目开发中的容器分为以下几类,(由上到下):Applet容器、(ApplicationClient)应用客户端容器、Web容器、EJB容器,如下图:
容器的主要作用如下:
? 应用客户端容器,管理客户端应用程序的运行。比如:应用客户端容器会提供JNDI服务。
? Applet容器,管理着Applet小应用程序的运行。
? Web容器,管理Servlet和JSP的运行。
? EJB容器,管理EJB的运行。
4、总结
J2ee的核心概念就是组件+容器,随着越来越多的J2ee框架出现,相应的每种框架都一般有与之对应的容器。
组件,本意是指可以重用的代码单元,一般代表着一个或者一组可以独立出来的功能模块,在J2ee中组件的种类有很多种,比较常见的是客户端组件、Web组件、EJB组件、DAO组件等,它们有个共同特点是会打包成.jar,.war,.ear等类似的压缩文件格式,每个组件由特定格式的xml描述符文件进行描述,而且服务器端的组件都需要被部署到应用服务器上面才能够被使用。