导读:看完了J2EE的视频,没有什么技术实践,现在就从理论上说明一下J2EE的13种规范,以及现在的自己对它的一个理解。可能会有偏差,但是,算是做为目前的一个记录。

一、13种规范

1.1、JDBC(Java Database Connectivity,java数据库链接)

JDBC是一组API,定义了用来访问数据源的标准Java类库,使用这个类库可以以一种标准的方法、方便地访问数据库资源。JDBC对数据库的访问具有平台无关性。

JDBC API为访问不同的数据库提供了一种统一的途径,像ODBC一样,JDBC对开发者屏蔽了一些细节问题。JDBC的目标是使应用程序开发人员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统,这样就使得程序员无需对特定的数据库系统的特点有过多的了解,从而大大简化和加快了开发过程。

1.2、JNDI(Java Name and Directory Interface,java命名和目录接口)

JNDI是一个Java应用程序设计接口,它为我们提供了查找和访问各种命名和目录服务的通用、统一方式。JNDI避免了程序与数据库之间的紧耦合,使应用更加易于配置,便于部署。

有了JNDI,我们就不要关心“具体的数据库后台是什么?JDBC驱动程序是什么?JDBC URL格式是什么?访问数据库的用户名和密码是什么?”这些问题了。我们编写的程序不用关心对JDBC驱动的引用。我们只需要在J2EE容器中定义一个数据源,然后通过这个数据源访问后台数据库。

1.3、EJB(Enterprise JavaBean,企业级javabean)

1.3.1,概述

EJB不是一个具体的产品,而是一个Java服务器端组件开发的规范,软件厂商根据它来实现EJB服务器。

使用EJB——Java程序员可以将一些定义明确的程序块组合到一起,从而方便、快捷地建构分布式应用程序。–使用EJB可以使整个程序分块明确,并且EJB可以使用其它EJB或

JDBC等服务,从而增强了分布式应用程序的可扩展性和性能。

EJB规范在简化分布式应用程序开发复杂性方面做了大量的工作,所以EJB程序员不必太担心事务处理、多线程、资源管理等方面的问题,可以专注于支持应用所需的商业逻辑,而不用担心周围框架的实现问题。EJB的使用增强了整个系统程序的可靠性、可管理性和可移植性。

1.3.2,EJB容器

EJB容器是EJB的运行环境。它提供规范中定义的接,使EJB类访问所需的服务。

容器厂商也可以在容器或服务器中提供额外服务的接口。它的责任包括:

1.3.3,EJB服务器

EJB服务器是管理EJB容器的高端进程或应用程序,并提供对系统服务的访问。EJB服务器也可以提供厂商自己的特性:优化的数据库访问接口,对其他服务:如CORBA服务的访问。一个EJB服务器必须提供支持对JNDI的名字服务和TS事务服务的可访问。

1.3.4,EJB会话

会话(session) bean:代表短暂的与客户的会话当客户结束执行时,会话bean及它的数据就消失了

实体(entity) bean:实体bean代表存储在数据库的表,如果客户结束程序或服务器关闭,潜在的服务方法会将数据存储。

消息驱动(message-driven) bean。

1.4、RMI(Remote Method Invoke,远程方法调用)

是一种被EJB使用的更底层的协议,正如其名字所表示的那样,RMI协议调用远程对象上方法,使用序列化方式在客户端和服务器端的对象之间传递数据。

1.5、Java CORBA(Common Object Request Broker Architecture)

是一个分布式对象体系结构,它独立于平台,也独立于语言。在这个体系结构中,一个对象可以被本机上的客户或远程客户通过方法激活来存取。客户(一个对象或应用)无须知道被调用对象(称为服务对象)的运行环境,也无须知道实现这个对象的编程语言。客户只要知道服务对象的逻辑地址和提供的接口。这种互操作性的关键是IDL(Interface Definition Language、接口定义语言),IDL说明对象接口中的方法,这些方法可以被其它对象(或应用)激活。

1.6、JSP(Java Server Pages,java服务端页面)

JSP是服务器端的脚本语言,是以Java和Servlet为基础开发而成的动态网页生成技术,它的底层实现是Java Servlet。JSP(Java Server Pages)页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。

特点:面向对象、跨平台,和Servlet一样稳定,可以使用Servlet提供的API,克服了Servlet的缺点。

应用:一般和JavaBeans结合使用,从而将界面表现和业务逻辑分离。

1.7、Java Servlet(java服务端小程序)

Servlets(Server + Applet):是一些运行于Web服务器端的Java小程序,用来扩展Web服务器的功能。Servlet是一种扩展Web服务器功能的技术,而且由于它是用Java编写的,所以能够访问整个Java API库,包括用于访问企业数据库的JDBC API。

Servlets用特定的Java解决方案替代了其它的Web服务器方编程模式(如:CGI、ISAPI等),因而继承了Java的所有特性(跨平台、多线程、OO)。用来编写Servlets的Servlet API对于服务器环境和协议没有任何特殊的要求,所以Servlets具有很强的可移植性,也不像利用CGI程序等其它方式那样具有性能局限。Servlets也同样使用HTTP协议与客户端进行通讯,所以有时也称Sevlets为“HTTP
Servlets“。

1.8、XML(Extensible Markup Language,可扩展性标记语言)

不多说,看【HTML/XML】系列博客

1.9、JMS(Java Message Service,java消息服务)

JMS是一种基于Java的技术,因此是平台无关的。它为消息服务定义了通用Java 语言接口,支持最常见的消息传递模型(发布/订阅和点到点)。通过对JMS(Java消息服务)API的访问可实现面向消息的通信。JMS通常用来实现异构系统之间的松散集成。

1.10、JTA(Java Transaction Architecture,java事务框架)

JTA允许应用程序执行分布式事务处理,在多个网络计算机资源上访问并且更新数据,极大地增强了数据访问能力。

1.11、JTS(Java Transaction Service,java事务服务)

JTS是CORBA OTS事务监控的基本的实现。JTS规定了事务管理器的实现方式。该事务管理器是在高层支持Java Transaction API (JTA)规范,并且在较底层实现OMG OTS specification的Java映像。JTS事务管理器为应用服务器、资源管理器、独立的应用以及通信资源管理器提供了事务服务。

1.12、JavaMail(java邮件)

为我们提供了电子邮件的开发接口。它可以方便的执行一些常用的邮件传输。JavaMail包中用于处理电子邮件的核心类是:Session,Message,Address,Authenticator,Transport,Store,Folder等。Session定义了一个基本的邮件会话,它需要从Properties中读取类似于邮件服务器,用户名和密码等信息。

1.13、JAF(JavaBeans Activation Framework,javabean活动框架)

JavaMail利用JAF来处理MIME编码的邮件附件。MIME的字节流可以被转换成Java对象,或者转换自Java对象。大多数应用都可以不需要直接使用JAF。

二、区分对比

2.1,RMI和CORBA

两者的关键差别在于语言环境,Java RMI是一个分布式对象计算的纯Java解决方案(如:在Java RMI中,对象的接口用Java定义,而不是用IDL)

其次:CORBA没有定义安全服务,而Java RMI继承了Java的安全性。

再者:CORBA有不同的实现,不同的独立软件开发商的不同实现均有独特性。这使得在不同平台上的匹配比较困难,而且不是所有CORBA产品开发商都支持所有平台,而几乎所有平台都支持Java虚拟机。因此Java RMI具有更高的可移植性。如果客户对象和服务对象都基于Java虚拟机,那么Java RMI是分布对象计算的最好选择。

最后:IIOP已经提供了Java RMI和CORBA的互操作能力,而且两者的发展有互相借鉴的趋势。

2.2,java Servlet和JSP

2.2.1,相似:

两者都是基于Java的技术,所以都继承了Java的所有特性:跨平台、多线程、OO 等都可以使用Java强大的API。

两者工作方式相似:JSP代码先被JSP容器转换为Servlet代码再编译为类。

两者在J2EE体系结构中的工作层次相同:都负责与客户端的连接。

2.2.2,不同:

编程方式不同。Servlets是一些运行于Web服务器端的Java小程序,而JSP是脚本,编写起来更简单容易。

使用JSP的真正意义在于,可以将界面设计和业务逻辑设计分离。Servlet是java类,它能动态处理请求及响应。

Jsp页面是基于文档的,能像servlet一样执行。

三、总结

J2EE的视频看完了,在本篇博客中也将其常用的13种规范总结了一下,接下来就是实战性的练习了。理论离开了实践 ,就如同纸上谈兵,当时看视频做笔记做了一堆,现在看来不运用,过段时间也都给忘没了。

【java 理论篇 2】J2EE的13种规范的更多相关文章

  1. J2EE的13种规范

    1.JDBC(Java Databaes Connectivity):JDBC API为访问不同的数据库提供了一种统一的途径,就像ODBC一样,JDBC对开发者屏蔽了一些细节问题,同时,JDBC对数据 ...

  2. J2EE的13个规范总结

    转载自:http://blog.csdn.net/zhuanzhe117/article/details/38763483 什么是J2EE? 在企业级应用中,都有一些通用企业需求模块,如数据库连接,邮 ...

  3. (转)J2EE中13个规范

       今天在做连接oracle数据库的时候,感受到了什么是规范.平时听到别人说学习j2ee一定要学习他的十三个规范,大概的知道每个规范是做什么的,每个“接口”是做什么的.          很早就听过 ...

  4. J2EE规范 - 13种规范

    J2EE是由SUN提出的用于简化开发企业级应用程序的一系列规范的组合,J2EE基于中间层集成的框架的方式为应用开发提供了一个统一的开发平台.基于容器管理.组件化的模型为企业建立一个高可用性,高可靠性可 ...

  5. (转)J2EE的13种核心技术

    一.JDBC(Java Database Connectivity)  JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDBC对数据 ...

  6. J2EE的13种核心技术

    一.JDBC(Java Database Connectivity) JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDBC对数据库 ...

  7. J2EE之13个规范标准概念

    主要是关于j2EE十三个规范的总结. java基础知识 首先java分为三类:J2ME.J2SE.J2EE. 依据开发软件的大小和量级他们的作用分别不同,J2ME是开发为机顶盒.移动电话和PDA之类嵌 ...

  8. 【Java 理论篇 1】Java2平台的三个版本介绍

    导读:关于java的三种分类J2SE.J2EE.J2ME,在网上有很多资料,然后自己写的,也大多是从各个网站上搜罗里的.算是自己的一种笔记,或者明白的说,就是把别人的东西抄一遍.但是,这对于我来说,也 ...

  9. J2ee的13个规范

    以下来自于网络. 1.JDBC(java Database Connectivity): JDBC API为访问不同的数据库提供了一种统一的途径,就像ODBC一样,JDBC对开发者屏蔽了一些细节问题, ...

随机推荐

  1. org.codehaus.jettison.json.JSONObject使用方法

    public static void main(String[] args) { System.out.println("测试开始"); File file = new File( ...

  2. PowerShell~发布你的mvc网站

    通过使用ps加上msbuild可以方便的编译你的.net应用程序,并且可以把它发布到你的磁盘上,部署非常方例! 我们在c盘添加一个hello网站,解决方案名是hello.sln,它的网站是hello. ...

  3. laravel 权限管理 常用命令

    use Spatie\Permission\Models\Role;use Spatie\Permission\Models\Permission; $role = Role::create(['na ...

  4. JVM内存区域参数配置

    转自:https://www.jianshu.com/p/5946c0a414b5 需要提前了解的知识点: JVM内存模型 JVM垃圾回收算法 下图是JVM内存区域划分的逻辑图   JVM内存区域逻辑 ...

  5. Redis学习笔记(三)列表进阶

    RPOPLPUSH source destination(弹出source列表最右端的元素,并推入destination的最左端,同时返回这个元素) BRPOPLPUSH source destina ...

  6. SQL Server 2012使用OFFSET/FETCH NEXT分页及性能测试

    最近在网上看到不少文章介绍使用SQL Server 2012的新特性:OFFSET/FETCH NEXT 实现分页.多数文章都是引用或者翻译的这一篇<SQL Server 2012 - Serv ...

  7. free - 显示系统中已用和未用的内存空间总和.

    总览 (SYNOPSIS) free [-b | -k | -m] [-o] [-s delay ] [-t] [-V] 描述 (DESCRIPTION) free 显示 系统中 已用和未用的 物理内 ...

  8. Day.js 是一个轻量的处理时间和日期的 JavaScript 库

    Day.js 是一个轻量的处理时间和日期的 JavaScript 库,和 Moment.js 的 API 设计保持完全一样. 如果您曾经用过 Moment.js, 那么您已经知道如何使用 Day.js ...

  9. django 模板中{%for%}的使用

    1.{%for athlete in list reversed%}  reversed用于反向迭代 2.for 标签 支持一个可选的 empty 变量 3.forloop 模板变量 4.forloo ...

  10. ubuntu命令行转换图片像素大小

    convert -resize 512x256 00433.png 00001.png 1.512和256之间是x(就是字母那个x),用' * '反而会报错 2.这个命令会按照原图的比例进行转换 3. ...