说到JavaEE(曾经叫J2EE)是什么,你可能回答:JavaEE是一组规范,这么说是没错,可是自己不认为这个答案非常大、非常空么?什么又是规范?规范能组成应用么?能在JVM中跑起来么?要理解这些,先得从什么是规范说起。

规范

由于Java开源,不论什么开发人员都能写代码,然后提供给其它人使用,以数据库訪问为例,如今有MySQL、Oracle两家数据库厂商,各自用java写自己的数据库訪问流程代码:

MySQL提供了3个类,各自是:Connection、SQLStatement、File

开发流程为:

  • 使用Conenction获取数据连接
  • 为数据库连接传入SQLStatement
  • 依据SQLStatement返回数据的二进制数据
  • 使用File将二进制数据还原为Table

Oracle看到MySQL的数据库开发这么复杂,于是精简开发,仅仅提供了两个类:Connection、Table

开发流程为:

  • 使用Connection数据库连接
  • 从数据库直接返回一张特定的完整表
  • 开发人员操作这张表就可以

后来,又出来了非常多数据库:SQLServer、DB2……每一个厂商都有提供了自己的类和开发流程,每出一种数据库,java开发人员都须要又一次学习,数据库方面开发越来越乱。Sun一看,这不行,这样谁愿意使用java,于是作为权威的一方,加上几个主流的数据库支持厂商,商定了开发数据库的核心内容,如:

  • 定义接口类:Driver、Connection、Result、Statement
  • 定义每一个接口类的主题,如Driver负责驱动管理
  • 定义每一个接口类中的接口,如Driver中有getConnection定义
  • 定义数据库操作流程,如第一步为载入驱动;第二步为获取数据库连接

为什么使用规范

这个核心内容一出,大家都惬意了:

  • 开发人员惬意了,仅仅须要面向接口编程就可以,再有新的数据库也不用再新学习。
  • 数据库厂商惬意了,原来仅仅会使用A数据库的开发人员,如今能够使用己方公司的数据库,潜在的利益。
  • Sun惬意了,开发人员不再抱怨,社区变得更为活跃,Java变得更为流行。

Sun说:既然大家都惬意,以后仅仅要是訪问数据库,咱们都依照这个做,这个就定义为JDBC规范吧。一般为了更明显,Sun也会提供一组实现供厂商和开发人员借鉴。

以上关于Oracle和MySQL的纯属虚构,仅仅是为了说明:什么是规范,为什么要制定规范。

现有规范

现有的JavaEE规范是:EJB、JSP、Servlet、JPA、JTA……,这些规范都是为了应对一类开发所提出的接口定义。如,JPA为关于持久化的;JTA是事务一方面的;JSP是表现层一方面的……

未来规范

随着Java的不断壮大,将来越来越多开发人员使用Java开发语音通信,可是JavaEE中还没有这个规范,于是Oracle又站出来,叫上主流支持厂商说:为了统一开发,减少开发成本,编写语音通信要有规范,我们定义为JVA(Java Voice API),当中包含3个接口类:IPManager、WaveManager、ResultManager,IPManager接口类中的接口有xx,凝视说明是yy……

开发流程为:

  • 使用IPManager进行三次握手
  • 发送WaveManager发送A方语音信息
  • 使用ResultManager监听B方回信
  • ……

JavaEE应用

那么,什么又是企业级应用?能够说用到JavaEE中不论什么规范的,都能够称之为企业级应用,仅仅用到JSP,广义上来说也叫企业级应用。

规范是接口,仅仅有接口,是开发不了程序的,需要实现,于是你想开发数据库訪问,必需要引入一种JDBC的实现:数据库驱动的jar包;想开发JSF,必须引入MyFaces等jar包……

总结

以上说明了什么是规范,为什么要使用规范,接下来会逐个分析JavaEE中的经常使用的规范。

再说Java EE的更多相关文章

  1. Eclipse for Java EE软件操作集锦(一)

    以下是我在Java网站开发过程中,关于软件操作Eclipse中,遇到的一些问题并提供了解决方案.一.java web开发使用的集成开发工具是eclipse for Java EE 官方下载地址:htt ...

  2. 【Java EE 学习 80 上】【WebService】

    一.WebService概述 什么是WebService,顾名思义,就是基于Web的服务,它使用Http方式接收和响应外部系统的某种请求,从而实现远程调用.WebService实际上就是依据某些标准, ...

  3. 【Java EE 学习 74 上】【数据采集系统第六天】【使用Jfreechart的统计图实现】【Jfreechart的基本使用方法】

    之前已经实现了数据的采集,现在已经有了基本的数据,下一步就需要使用这些数据实现统计图的绘制了.这里使用Jfreechart实现这些统计图的绘制.首先看一下Jfreechart的基本用法,只有知道了它的 ...

  4. 【Java EE 学习 69 中】【数据采集系统第一天】【SSH框架搭建】

    经过23天的艰苦斗争,终于搞定了数据采集系统~徐培成老师很厉害啊,明明只是用了10天就搞定的项目我却做了23天,还是模仿的...呵呵,算了,总之最后总算是完成了,现在该好好整理该项目了. 第一天的内容 ...

  5. 【Java EE 学习 67 下】【OA项目练习】【SSH整合JBPM工作流】【JBPM项目实战】

    一.SSH整合JBPM JBPM基础见http://www.cnblogs.com/kuangdaoyizhimei/p/4981551.html 现在将要实现SSH和JBPM的整合. 1.添加jar ...

  6. 轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)

    轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)(国家级奖项获奖作品升级版,四版累计印刷27次发行量超10万册的轻量级Jav ...

  7. MyEclipse的项目中把 java EE 5 Libraries 删掉后怎么重新导入

    myeclipse中鼠标右击项目->properties->java Build Path=>Libraries=>Add Library...=>选择MyEclipse ...

  8. 《Java EE 开发技术与案例教程》 这是一本好书啊:简洁精辟(相见恨晚)

    第一章:Java EE 概述 1.get:JPA:Java Persistence API, 数据持久化API: JPA是一种ORM规范,它的实现实例:Hibernate.mybatis 2.Web ...

  9. 【Java EE 学习 25 上】【网上图书商城项目实战】

    一.概述 1.使用的jdk版本:1.6 2.java EE版本:1.6 3.指导老师:传智播客 王建 二.小项目已经实现的功能 普通用户: 1.登陆 2.注册 3.购物 4.浏览 管理员用户(全部管理 ...

  10. eclipse for java developer和eclipse for java ee developer的区别

    eclipse是基于插件机制的软件,插件本身是不能启动和操作的,它们需要一个环境,eclipse使用osgi r4规范实现了这个环境. osgi是java动态模块化的规范,该规范不光要让java程序模 ...

随机推荐

  1. 插件化-开启另外应用的activity

    1.清单文件 android:sharedUserId="com.zyh.tplugin" 2.视图 <LinearLayout xmlns:android="ht ...

  2. 富文本编辑器 - wangEditor 插入代码

    效果: 项目结构: 注意事项: highlightJS 代码高亮插件,wangEditor 本身就是集成的highlightJS代码高亮插件. 在wangEditor-1.3.12.js里找到var ...

  3. 如何判断是否安装了VC RUNTIME

    先得说下GUID,它是Globally Unique Identifier的简称,中文翻译为“全球唯一标示符”,在Windows系统中也称之为Class ID,缩写为CLSID.对于不同的应用程序,文 ...

  4. .NET支持上下左右移动操作

    效果如下图: 代码如下: public partial class ShowSet : System.Web.UI.Page { Hashtable resources = EquStatusSear ...

  5. Linux内核-系统调用

    Linux内核-系统调用 1.与内核通信 #系统调用在用户空间进程和硬件设备之间添加了一个中间层 作用:1.为用户空间提供了一种硬件的抽象接口 2.系统调用保证了系统的稳定和安全 3.出于每一个进程都 ...

  6. C++ Primer学习笔记2--c++标准库中的 vector、string 和 bitset 类型

    一.string    #include <string>  using std::string    初始化函数:    string s1;        默认构造函数 s1 为空串 ...

  7. VC Office2007界面对话框实现

    我们知道VS2008SP1之后,MFC就多了一个功能包,可以快速的建立一个ribbon的界面,视觉样式可以在office 2007蓝.黑等颜色之间切换,这对于单文档/多文档做界面非常方便,而且也蛮好看 ...

  8. VC 2005 解决方案的目录结构设置和管理

    VC 2005 解决方案的目录结构设置和管理   Roger (roger2yi@gmail.com)   一个中等规模的解决方案通常都会包含多个项目,其中一些项目产出静态库,一些产出动态库,一些用于 ...

  9. HDU 5046 Airport(DLX反复覆盖)

    HDU 5046 Airport 题目链接 题意:给定一些机场.要求选出K个机场,使得其它机场到其它机场的最大值最小 思路:二分+DLX反复覆盖去推断就可以 代码: #include <cstd ...

  10. Swift - 判断设备方向(或监听设备方向的改变)

    通过UIDevice.currentDevice()来获取设备,可以取得设备当前的方向. 同时,我们可以添加一个通知来监听设备方向的变化,这样在开发中可以对不同的方向定制不同的排版布局界面. 下面通过 ...