
1.3 J2EE容器
容器在应用服务器中扮演了中间件的角色,如Web容器就是为JSP,Servlet提供一个运行环境;EJB容器则是为EJB组件提供各种系统级别的服务,比如事务管理,安全管理,并且对EJB组件进行高效的管理。目前常见的容器有Tomcat,Resin,WebLogic,WebSphere等。
1.3.1 容器服务
没有容器,实现J2EE的程序就无法运行。因此,在运行J2EE程序前,必须为J2EE应用程序中的每一个组件及J2EE应用程序本身指定容器的设置,包括安全性、事务管理、Java命名目录接口搜寻以及远程连接等。下面是其中的主要部分。
● J2EE的安全性模式使得只有授权的用户才可以访问Enterprise Bean。
● J2EE的事务模式可以让开发者指定方法之间的关系以组成一个单个的事务,这样在一个事务中的所有方法将被视为一个单一的整体。
● JNDI搜寻服务提供了统一的接口,这使得应用程序组件可以访问企业中的多种命名目录服务。
● J2EE远程连接模式提供了客户端和Enterprise Bean之间底层通信的管理功能。这使得客户端在调用Enterprise Bean的方法时就像Enterprise Bean直接运行在同一个虚拟机上一样方便。
J2EE体系结构提供了方便的可配置服务,这表明相同的J2EE应用中的组件根据其被部署的环境在实际运行时会有所不同。J2EE容器还负责管理Enterprise Bean和Servlet的生命周期、数据库连接池,以及数据持久化等功能。
1.3.2 容器类型
既然J2EE有多个组件,那它也就有多个J2EE容器,J2EE容器有如下几种。
● Enterprise JavaBean(EJB)容器:一个J2EE服务器提供EJB容器和Web容器,EJB容器负责管理J2EE应用程序中Enterprise Bean的执行,Enterprise Bean和它的容器运行在J2EE服务器中。
● Web容器:Web容器管理J2EE应用程序的JSP页面和Servlet组件的执行,Web组件和它的容器也运行在J2EE服务器中。
● 客户端程序容器:客户端程序容器管理应用程序客户端组件的运行,应用程序客户端和它的容器运行在客户端中。
● Applet容器:Applet容器管理Applet的执行,由运行在客户端的一个Web浏览器和Java插件组成。
J2EE应用程序部署时将组件安装到J2EE容器中的示意图如图1.6所示。

图1.6 将组件安装到J2EE容器中的示意图