从j2se到j2ee,接触到了一些新的东西,关于jar,war,ear我理了理头绪,整理如下:
首先,这三种文件都可以看作是java的压缩格式,其实质是实现了不同的封装:
jar--封装类
war--封装web站点
ear--封装ejb。
它们的关系具体为:
jar:
是java Achieve--按java格式压缩的类包,包含内容 class、properties文件,
是文件封装的最小单元
级别:小
war:
是file web Achieve--包含Servlet、JSP页面、JSP标记库、JAR库文件
HTML/XML文档和其他公用资源文件,如图片、音频文件等
级别:中
ear:
是 file Enterprise Achieve--除了包含JAR、WAR以外,还包括EJB组件
部署文件 application-client.xml web.xml application.xml
级别:大
部署文件 application-client.xml web.xml application.xml
级别:大
一个web组件开发者执行以下的任务来传递一个包含web组件的WAR文件:
| 编写并编译servlet源代码
| 编写jsp、html文件
| 指定web的开发描述符
| 邦定.class,.jsp,.html和部署描述符到一个WAR文件。
以最终客户的角度来看,.jar文件就是一种封装,他们不需要知道.jar文件中有多少个.class文件,每个文件中的功能与作用,同样可以得到他们希望的结果。除jar以外对于j2ee来说还有war和ear。区别见下表:
jar war ear
英文 java archive file web archive file enterprise archive file
包含内容 class、properties文件,是文件封装的最小单元 servlet、jsp页面、jsp标记库、jar库文件、html/xml文档和其他公用资源文件,如图片、音频文件等 除了包含jar、war以外,还包括ejb组件
部署文件 application-client.xml web.xml application.xml
级别 小 中 大
jar war ear
英文 java archive file web archive file enterprise archive file
包含内容 class、properties文件,是文件封装的最小单元 servlet、jsp页面、jsp标记库、jar库文件、html/xml文档和其他公用资源文件,如图片、音频文件等 除了包含jar、war以外,还包括ejb组件
部署文件 application-client.xml web.xml application.xml
级别 小 中 大
ear中可以包含war,jar文件。jar文件可以将ejb包含其中。war可以将web组件包含其中。
jar表示java的标准档案文件,有一个有趣的双关语:a jar of beans(一罐豆子)。
jar表示java的标准档案文件,有一个有趣的双关语:a jar of beans(一罐豆子)。