再看JAVAEE

软件151  雷楷文

1. 技术(Technologies)

  1. 技术体系

    JavaEE 首先是一个技术体系,且指定了一系列的规范来定义这个技术体系。

    再看JAVAEE

    可以看到,这里面都只是各种文档的下载。

    最上面是Java EE 平台整体的技术规范,下面还有具体的Enterprise Application TechnologiesWeb Application TechnologiesWeb Services TechnologiesManagement and Security Technologiesjava EE-related Specs in Java SE 中的各种Java EE 技术的文档。

  2. 所有文档都分为两类

    再看JAVAEE

    • 阅读评估:用以让人了解规范;

    • 实现:用以让想开发JavaEE实现 的人/组织/公司参考

    这两类文档其实绝大部分部分一样,甚至有的就一模一样。

  3. 内容 
    文档中用严谨的文字、图、示例表格等形式描述了某一个java ee 技术。

2. 下载(Downloads)

  1. 官方实现

    oracle 官方还必须对JavaEE 平台 做一个模范的实现,来给其它想开发的人带头。

    再看JAVAEE

    可以下载Java EE 7 SDK Update 2 看一下,你会发现其实这个官方实现就是叫 GlassFish 服务器 。虽然这个SDK 实现了所有JavaEE规范 ,不过好像大家都不怎么用,而是根据需要去找了其它厂商的第三方SDK 了。

    SDK就是GlassFish 
    再看JAVAEE

    各种实现 - glassfish( Web方面)、mq(JMS)、javadb等 
    再看JAVAEE

    samples - 使用这些实现的例子 
    再看JAVAEE

3. 怎么用JavaEE API

  1. API由实现方提供

    所以,当我们开发Java EE 应用过程中如果要使用JavaEE API 的话,其实它是在相应的实现方的API中的,也就是实现方提供的jar包。

    比如,现在要开发一个Java EE 应用,它包含一些Web 组件 - Java Servlet 、JavaServer Page(JSP) 。我们常用的是Tomcat,先来看下Tomcat 自己的介绍吧:

    The Apache Tomcat® software is an open source implementation of the Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket technologies. - 简单翻译就是:Tomcat是4种Java EE技术的开源实现。

    进一步,我们可以看到Tomcat 提供的jar包有:

    再看JAVAEE

    所以,现在你应该明白了为什么当你开发基本的Java EE Web应用 时需要引用Tomcat 的库了(当然你也可以用Maven 之类的管理依赖):

    再看JAVAEE

  2. API的差异

    不同的实现方对于相同版本技术的API Interface的声明其实是一样的,它们都保证所实现的API 符合Java EE 规范,但是实现方式当然看实现方自己的方法了,肯定有差异。不过,这对我们普通开发人员是透明的。

    来看下,Maven 库中的提供的Servlet.classMaven 中Java EE API地址点这里)和Tomcat的Servlet.class差异吧:

    可以看到,开头部分Licence 是不同的,下面还有一些都是格式差异、注释差异我就没必要放上来了。但是代码部分是没有差异的:

    再看JAVAEE

    再看JAVAEE

4. 综上所述

    • Java EE 首先是一个技术体系、根据这些技术它有一系列规范文档,而任何想实现某个技术或全部技术的人/组织/公司都可以依据规范去开发符合规范的实现。

    • Java EE 也有官方的实现,就是GlassFish 。

    • 我们可以根据需要选择任意的Java EE实现 去开发。