【java 理论篇 2】J2EE的13种规范
导读:看完了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种规范的更多相关文章
- J2EE的13种规范
1.JDBC(Java Databaes Connectivity):JDBC API为访问不同的数据库提供了一种统一的途径,就像ODBC一样,JDBC对开发者屏蔽了一些细节问题,同时,JDBC对数据 ...
- J2EE的13个规范总结
转载自:http://blog.csdn.net/zhuanzhe117/article/details/38763483 什么是J2EE? 在企业级应用中,都有一些通用企业需求模块,如数据库连接,邮 ...
- (转)J2EE中13个规范
今天在做连接oracle数据库的时候,感受到了什么是规范.平时听到别人说学习j2ee一定要学习他的十三个规范,大概的知道每个规范是做什么的,每个“接口”是做什么的. 很早就听过 ...
- J2EE规范 - 13种规范
J2EE是由SUN提出的用于简化开发企业级应用程序的一系列规范的组合,J2EE基于中间层集成的框架的方式为应用开发提供了一个统一的开发平台.基于容器管理.组件化的模型为企业建立一个高可用性,高可靠性可 ...
- (转)J2EE的13种核心技术
一.JDBC(Java Database Connectivity) JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDBC对数据 ...
- J2EE的13种核心技术
一.JDBC(Java Database Connectivity) JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDBC对数据库 ...
- J2EE之13个规范标准概念
主要是关于j2EE十三个规范的总结. java基础知识 首先java分为三类:J2ME.J2SE.J2EE. 依据开发软件的大小和量级他们的作用分别不同,J2ME是开发为机顶盒.移动电话和PDA之类嵌 ...
- 【Java 理论篇 1】Java2平台的三个版本介绍
导读:关于java的三种分类J2SE.J2EE.J2ME,在网上有很多资料,然后自己写的,也大多是从各个网站上搜罗里的.算是自己的一种笔记,或者明白的说,就是把别人的东西抄一遍.但是,这对于我来说,也 ...
- J2ee的13个规范
以下来自于网络. 1.JDBC(java Database Connectivity): JDBC API为访问不同的数据库提供了一种统一的途径,就像ODBC一样,JDBC对开发者屏蔽了一些细节问题, ...
随机推荐
- 对protected修饰符的范围用代码说明(同时说明用protected修饰的属性,在继承时,一定程度上破坏了封装)
目录结构: 本类: 本包: 子孙类: 其他包:
- 503 Next Greater Element II 下一个更大元素 II
给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素.数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它 ...
- Problem 2238 Daxia & Wzc's problem 1627 瞬间移动
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1627 http://acm.fzu.edu.cn/problem.php ...
- Oracle历史版本及oracle相关软件下载地址
网站:https://edelivery.oracle.com/ 可能需要注册个账号!!!(账号注册登录自己折腾下就好了) 下载数据库或者oracle的相关软件的话,如下 选择对应的下载即可!
- Spark MLlib编程API入门系列之特征选择之向量选择(VectorSlicer)
不多说,直接上干货! 特征选择里,常见的有:VectorSlicer(向量选择) RFormula(R模型公式) ChiSqSelector(卡方特征选择). VectorSlicer用于从原来的特征 ...
- qconshanghai2017
https://2017.qconshanghai.com/schedule 第一天 (2017/10/17 星期二) 时间 日程 07:45-09:00 签到 上午 主题演讲 软件质量优化与平台创新 ...
- hihocoder offer收割编程练习赛9 B 水陆距离
思路: 宽搜,多个起点. 实现: #include <iostream> #include <cstdio> #include <algorithm> #inclu ...
- Smart SVN的使用
最近项目使用了SVN,为管理代码起到了很好的作用!但是,对于很多初步使用着,还是非常不容易! 公司使用的是Smart SVN 客户端. Smart SVN 这个工具总体还是挺不错的! 在代码的提交和获 ...
- mysql-mmm 部署高可用集群
集群的部署(mysql-mmm + 主从同步) 什么是集群? 多台服务器提供相同的服务 集群的好处? 节省成本. 配置集群? 准备环境:准备4台数据库服务器 准备服务器,能够ping 4 台数据库服务 ...
- linux AC的应用详解
NAME ac - 输出用户连接时间 总览 ac [ -d | --daily-totals ] [ -y | --print-year ] [ -p | --individual-totals ] ...