我看的是第一版,针对j2ee1.3的,新版的图书馆也有,但太厚了,看起来有点怕,还是从这本小书开始吧。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
序言部分介绍了书中的主要内容:
☆ Enterprise JavaBean
☆ Java Servlet
☆ JavaServer Pages
☆ Java Message Service (JMS,Java消息服务)
☆ Java Naming and Directory Interface (JNDI,Java名字与目录接口)
☆ XML
☆ J2EE Connector Architecture (J2EE连接器架构)
☆ JavaMail
☆ JDBC
为了缩减开发成本,快速跟踪企业应用的设计和开发,J2EE技术提供了基于组件的设计方法,开发、集成、部署应用程序。J2EE平台提供了多层分布式应用模式,使具有重用的能力,并集成了基于XML的数据交换——一个统一的安全模式及灵活的事务控制。
J2EE平台使用多层分布式的应用模式。应用逻辑根据其功能分成多个组件,各种不同的应用组件构成分布在不同的依赖于层的机器上的J2EE程序。下面列出了位于不同层的组件
☆ 运行在客户机上的客户层组件
☆ 运行在J2EE服务器上的Web层
☆ 运行在J2EE服务器上的业务逻辑层
☆ 运行在EIS服务器上的企业信息层
尽管J2EE应用程序可以由三层或四层构成,J2EE应用程序通常由三层构成,因为他们分布于三个不同的位置:客户及,服务器,后台数据库服务器。通过这种方式运行的三层应用模式拓展了基于客户/服务的两层模式。
J2EE应用程序由组件构成。一个J2EE组件是自包含的,与其相关的语气它组件通信的类及文件集成到J2EE应用程序的功能软件单元。J2EE规范定义了下面一些组件:
☆ 运行在客户端的应用客户程序及小程序。
☆ 运行于服务器Web层的Servlet&Jsp组件。
☆ 运行于服务端的企业业务逻辑组件——EJB。
J2EE组件用Java语言编写,通过相同的方法编译。J2EE组件与标准Java类的不同之处在于J2EE组件集成到了应用程序中,与J2EE规范兼容,并部署到负责运行、管理的J2EE服务器上。J2EE客户端可以使网络浏览器也可以是桌面应用程序。业务逻辑代码是解决、达到特定业务领域的需求,如银行、零售、金融,又EJB处理的业务逻辑层。
企业Bean可以重新从存储器找回数据,如果必要并处理它,然后发送到客户程序。总共有三种EJB:会话bean,实体bean,消息驱动bean。会话bean代表短暂的与客户的会话,当客户结束执行时,会话bean及它的数据就消失了。与会话bean相比,实体bean代表存储在数据库的表,如果客户结束程序或服务器关闭,潜在的服务方法会将数据存储。
基于组件和平*立的J2EE平台使J2EE应用程序容易开发,因为商业逻辑被封装在可重用的组件(EJB)中。另外J2EE服务器以容器的形式为所有组件提供底层服务,因此你不必再为这些底层服务二伤脑筋,而可以专注于解决商业问题。
容器(Container)是组件和支持组件功能的底层特定平台(如数据库)之间的接口。在运行Web组件、企业Bean或者J2EE应用程序客户端之前,你必须将它们装配到一个J2EE应用程序中,并部署它们到容器中。
装配的过程包括为J2EE应用程序的每个组件 和J2EE应用程序本身设置容器的配置信息。这些配置信息定制J2EE服务器支持的底层服务,包括安全,事务管理,Java命名和目录接口(JNDI)查找和远程连接等。下面使这些服务的精简描述:
☆ J2EE安全模型让你配置Web组件或者企业Bean以使系统资源只被授权用户访问
☆ J2EE事务模型让你指定属于同一个事务的多个方法以使这些方法作为一个原子操作被执行
☆ JNDI查找服务为企业应用中的多种命名和目录服务提供统一接口使应用程序组件可以统一访问这些命名和目录服务。
☆ J2EE远程连接模型管理客户端和企业Bean之间的底层通信。企业Bean被创建后,客户端调用它的方法就像在本地虚拟机中的调用一样。
事实上,J2EE体系结构提供可配置服务意味着同一个J2EE应用程序中的组件可以根据不同的部署环境而有不同的行为。例如,一个企业Bean的安全配置可以使它在一种产品环境中有一个级别的数据库数据访问权限,而在另一种产品环境中有不同的数据库数据访问权限。
容器也管理着很多不可配置的服务,如企业Bean和Servlet的生命周期,数据库连接池,数据持久化机制和J2EE平台API的访问权等等。尽管数据持久化机制是不可配置服务,但是J2EE体系结构允许你忽略容器管理的持久性(Container-Managed Persistence,CMP)机制在企业Bean实现中加入合适的代码,当然除非你确实需要比容器管理持久性机制提供的更多的应用程序控制权,否则使用容器管理的持久性。例如你可以用Bean管理的持久性(Bean-Managed Persistence,BMP)机制来实现自己的查找方法或者创建一个定制的数据库缓冲池。
J2EE server(J2EE服务器)
J2EE产品的运行时服务部分。一个J2EE服务器提供EJB容器(EJB Container)和Web容器(Web Container)。
EJB容器
管理J2EE应用程序中企业Bean的运行。企业Bean和它们的容器在J2EE服务其中运行。
Web容器
管理J2EE应用程序中JSP页面和Servlet组件的运行。Web组件和容器也在J2EE服务其中运行。
Application client container(应用程序客户端容器)
管理应用程序客户端组件的运行。应用程序客户端和它的容器运行在客户机。
Applet container(Applet容器)
管理Applet的运行。由在客户端运行的浏览器和Java插件组成。
J2EE应用程序和它的所有模块都被打包到一个EAR(Enterprise Archive)文件中。EAR文件是后缀为.ear的标准JAR(Java Archive)文件。(在J2EE SDK提供的GUI版的应用程序部署工具中,需要先创建一个EAR文件然后将JAR和WAR(Web Archive)文件加到EAR中。而命令版本的部署工具正好相反。)下面是这些打包文件的描述:
☆ EJB JAR文件包含一个部署描述符文件,企业Bean文件和用到的其他文件
☆ 应用程序客户端JAR文件包含一个部署描述符文件,客户端类文件和其他用到的文件
☆ WAR文件包含一个部署描述符文件,Web组件(JSP和Servlet)文件和用到的其他文件
使用模块和EAR文件的打包方式,使用相同的组件装配成不同的应用程序成为可能,而且不需要额外的编码,只需要将用到的J2EE模块的任意组合装配成一个J2EE EAR文件。