J2EE想必大家都不陌生吧,貌似现在更流行将其称作JavaEE,不管名字怎么变,核心和思想是没有变的。学习J2EE首先要了解它的规范,下面我们一起看看它的十三个规范。
1,JDBC(Java Database Connectivity)
用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
个人理解:跟微软的ODBC很像,应该说是ODBC和ADO的结合。可以理解为面向对象的ODBC,毫无疑问,面向对象的接口对于Java程序员来说更容易理解。ODBC把简单功能跟高级功能放到了一起,相对来说比较难学,而JDBC尽量保证简单功能的简便性,同时又可以在需要的时候使用高级功能。JDBC针对Java的风格和优点进行了优化,让我们在使用时更加得心应手。
2,JNDI(Java Name and Directory Interface)
Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得我们可以用名称访问对象。
个人理解: JNDI是为了对高级网络应用开发中使用的目录基础结构进行访问。这个目录其实是一个特殊的数据库,提供了对存储数据的快速访问,不象传统的目录服务访问方式那样必须提供不同的API接口去访问不同的目录服务(如:LDAP,NIS,ADS等),它统一了不同类型目录访问的接口。JDNI与JDBC都构建在抽象层上。
3,EJB(Enterprise Javabean)
EJB是sun的服务器端组件模型,设计目标与核心应用是部署分布式应用程序。EJB是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。
个人理解:EJB是J2EE被程序员广泛运用的一大功臣,是J2EE的核心。EJB提供了一个框架来开发和实施分布式商务逻辑,从而大大简化了开发高复杂度、易扩展企业应用的难度。关于三种具体的Bean在接下来的文章中再深入讨论,这里就不说了。
4,RMI(Remote Method Invoke)
RMI 指的是远程方法调用 。它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。可以用此方法调用的任何对象必须实现该远程接口。
个人理解:RMI是非常重要的底层技术,是分布式的基础所在,刚刚提到的EJB就是建立在RMI的基础之上的。相比Web Service这样重量级的组件来说,RMI比较简单,更适合一些小型应用的使用。
5,Java IDL/CORBA
Java接口定义语言/公用对象请求代理程序体系结构
个人理解:在Java IDL的支持下,开发人员可以将Java和CORBA集成在一起。他们可以创建Java对象并使之可在CORBA ORB中展开, 或者他们还可以创建Java类并作为和其它ORB一起展开的CORBA对象的客户。后一种方法提供了另外一种途径,通过它Java可以被用于将你的新的应用和旧的系统相集成。
6,JSP(Java Server Pages)
JSP是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的。
个人理解:JSP跟ASP很像,ASP是在HTML的基础上加入了.Net代码,而JSP是在HTML的基础上加入了Java代码,它们都是动态网页,而JSP最大的优势就是跨平台,不但可以在Windows平台运行,还可以在Linux或者其他操作系统上运行。
7,Servlet
Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。
个人理解:Servlets提供的功能大部分JSP相同,它采用的是一个有点不同的方法。JSP中大部分是HTML代码,其中只有少量的Java代码,而servlets则相反,它完全使用Java编写,并且可以产生HTML代码。JSP并没有增加任何本质上不能用Servlet实现的功能。但是,在JSP中编写静态HTML更加方便,不必再用println语句来输出每一行HTML代码。更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开:比如,由页面设计者进行HTML设计,同时留出供Servlet程序员插入动态内容的空间。Servlet跟微软的一般处理程序很像。
8,XML(Extensible Markup Language)
用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。
个人理解:XML是一个用来定义其它标记语言的的语言。它可被用作商业之间的数据共享。XML的发展和Java是相互独立的。不过,它和Java具有的相同目标就是跨平台。通过将Java与XML结合,我们可以得到一个完全平台无关的解决方案。
9,JMS(Java Message Service)
JMS即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。
个人理解: JMS是用于和面向消息的中间件相互通信的应用程序接口(API)。它既支持点对点的域,又支持发布/订阅(publish/subscribe)类型的域,并且提供对下列类型的支持:经认可的消息传递,事务型消息的传递,一致性消息和具有持久性的订阅者支持。JMS还提供了另一种方式来对您的应用与旧的后台系统相集成。
10,JTA(java transaction Architecture)
Java事务API。允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新数据。JDBC驱动程序的JTA支持极大地增强了数据访问能力。
个人理解:JTA定义了一个标准的API,应用可以通过它来访问事务监控器。JTA事务比JDBC事务更强大。一个JTA事务可以有多个参与者,而一个JDBC事务则被限定在一个单一的数据库连接。
11,JTS(java transaction Service API)
JTS是CORBA OTS事务监控器的一个基本实现。JTS指定了一个事务管理器的实现(Transaction Manager),这个管理器在一个高级别上支持Java事务API(JTA)规范,并且在一个低级别上实现了OMG OTS规范的Java映射。一个JTS事务管理器为应用服务器、资源管理器、standalone应用和通信资源管理器提供事务服务。
12,JavaMail
JavaMail是一个用来访问邮件服务器的API。JavaMail API提供了一套抽象类来模型化一个邮件系统。支持SMTP和IMAP服务器。
13,JAF(JavaBean Activation FrameWork)
JAF是一个专用的数据处理框架,它用于封装数据,并为应用程序提供访问和操作数据的接口。JAF的主要作用在于让java应用程序知道如何对一个数据源进行查看、编辑和打印等操作。
Mail API 的所有版本都需要 JavaBeans Activation Framework 来支持任意数据块的输入及相应处理。功能似乎不多,但目前许多浏览器和邮件工具中都能找到这种基本的 MIME 型支持。activation.jar 文件就是JAF的框架jar包。
终于整完了,不得不说写这类比较抽象的东西真是费时费力又费脑细胞啊!目前对于J2EE的理解还非常的肤浅,还需要在今后的学习与实践中不断的深入,希望大家多多指点。