Java学习——传说中的13个规范
早就听说J2EE有⼗三个规范,可是看完视频我都没有发现有什么规范,这就让我纳闷了,都说学习java就是学习⼗三个规范,可是它到底是什么呢?
原来⼗三个规范就是⼗三个API⽂档,视频⾥讲到的都是属于API⽂档的知识。那么,让我们⼀起来了解⼀下这传说中的⼗三个规范吧。
1.JDBC(Java Database Connectivity):
⽤于执⾏SQL语句的Java API,可以为多种关系数据库提供统⼀访问,它由⼀组⽤Java语⾔编写的类和接⼝组成。
个⼈理解:跟微软的ODBC很像,应该说是ODBC和ADO的结合,创建连接和发送SQL只⽤JDBC⼀个就⾏了,⽽ODBC只是创建⼀个连接,还需要⽤ADO来进⾏数据操作。ODBC把简单功能跟⾼级功能放到了⼀起,相对来说⽐较难学,⽽JDBC尽量保证简单功能的简便性,同时⼜可以在需要的时候使⽤⾼级功能。
JDBC是Java应⽤程序与各种不同数据库之间进⾏对话的⽅法的机制.简单地说,它做了三件事:与数据库建⽴连接–发送操作数据库的语句–处理结果.
2.JNDI(Java Name and Directory Interface):
JNDI是⼀组在Java应⽤中访问命名和⽬录服务的API.(命名服务将名称和对象联系起来,我们即可⽤名称访问对象.JNDI允许把名称同Java对象或资源关联起来,建⽴逻辑关联,⽽不必知道对象或资源的物理ID.)
个⼈理解: JNDI是为了对⾼级⽹络应⽤开发中使⽤的⽬录基础结构进⾏访问。这个⽬录其实是⼀个特殊的数据库,提供了对存储数据的快速访问,不象传统的⽬录服务访问⽅式那样必须提供不同的API接⼝去访问不同的⽬录服务(如:LDAP,NIS,ADS等),它统⼀了不同类型⽬录访问的接⼝。JDNI与JDBC都构建在抽象层上。
它提供了标准的独⽴于命名系统的API,这些API构建在命名系统之上.这⼀层有助于将应⽤与实际数据源分离,因此不管是访问的LDAP,RMI还是DNS.也就是说,JNDI独⽴于⽬录服务的具体实现,只要有⽬录的服务提供接⼝或驱动,就可以使⽤⽬录.
3.EJB(Enterprise JavaBean):
J在J2EE中,这个运⾏在⼀个独⽴的服务器上,并封装了业务逻辑的组件就是EJB组件。其实就是把原来放到客户端实现的代码放到服务器端,并依靠RMI进⾏通信。
Javabean的任务是:⼀次性编写,任何地⽅执⾏,任何地⽅重⽤。Javabean分为会话Bean(⽆会话状态的Bean,有会话状态的Bean)、实体Bean、消息驱动Bean。
关于实体Bean,我感觉很像三层⾥⾯的DAL+Entity。只不过,在这⾥,Bean可以由容器实现,也可以由Bean⾃⼰实现。由容器实现,在使⽤过程中,感觉很像为某个空间设置数据源,只需要通过⾃⼰选择⼀下,语句就可以出来。⽽有Bean⾃⼰控制的Bean,感觉就很像三层⾥⾯的DAL+Entiry了。
会话Bean,可以作为三层架构中的业务逻辑层出现。⽽消息驱动Bean,更多的是⽤在了JMS(Java massage Service)中。
4.RMI(Remote Method Invoke):
正如其名字所表⽰的那样,RMI协议调⽤远程对象上⽅法。它使⽤了序列化⽅式在客户端和服务器端传递数据。RMI是⼀种被EJB使⽤的更底层的协议。
**个⼈理解:**RMI是⾮常重要的底层技术,是分布式的基础所在,刚刚提到的EJB就是建⽴在RMI的基础之上的。相⽐Web Service 这样重量级的组件来说,RMI⽐较简单,更适合⼀些⼩型应⽤的使⽤。
5.Java IDL/CORBA:
Java接⼝定义语⾔/公⽤对象请求代理程序体系结构在JavaIDL的⽀持下,开发⼈员可以将Java和CORBA集成在⼀起。
个⼈理解:他们可以创建Java对象并使之可在CORBA ORB中展开,或者他们还可以创建Java类并作为和其它ORB⼀起展开的CORBA对象的客户。后⼀种⽅法提供了另外⼀种途径,通过它Java可以被⽤于将新的应⽤和旧的系统相集成。
CORBA是⾯向对象标准的第⼀步,有了这个标准,软件的实现与⼯作环境对⽤户和开发者不再重要,可以把精⼒更多地放在本地系统的实现与优化上。
6.JSP(Java Server Pages):
JSP页⾯=HTML+Java,其根本是⼀个简化的Servlet设计. 服务器在页⾯被客户端请求后,对这些Java代码进⾏处理,然后将执⾏结果连同原HTML代码⽣成的新HTML页⾯返回给客户端浏览器
个⼈理解:JSP跟ASP很像,ASP是在HTML的基础上加⼊了.Net代码,⽽JSP是在HTML的基础上加⼊了Java代码,它们都是动态⽹页,⽽JSP最⼤的优势就是跨平台,不但可以在Windows平台运⾏,还可以在Linux或者其他操作系统上运⾏。
7.Java 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代码。
更重要的是,借助内容和外观的分离,页⾯制作中不同性质的任务可以⽅便地分开。Servlet跟微软的⼀般处理程序很像。
8.XML(Extensible Markup Language):
XML是⼀种可以⽤来定义其它标记语⾔的语⾔。它被⽤来在不同的商务过程中共享数据。XML的发展和Java是相互独⽴的,但是,它和Java具有的相同⽬标正是平台独⽴性。通过将Java和XML的组合,
您可以得到⼀个完美的具有平 台独⽴性的解决⽅案。
java怎么编写个⼈理解:XML是⼀个⽤来定义其它标记语⾔的的语⾔。它可被⽤作商业之间的数据共享。XML的发展和Java是相互独⽴的。不过,它和Java具有的相同⽬标就是跨平台。通过将Java与XML结合,我们可以得到⼀个完全平台⽆关的解决⽅案。
9.JMS(Java Message Service):
JMS即Java消息服务(Java Message Service)应⽤程序接⼝是⼀个Java平台中关于⾯向消息中间件(MOM)的API,⽤于在两个应⽤程序之间,或分布式系统中发送消息,进⾏异步通信。Java消息服务是⼀个与具体平台⽆关的API,绝⼤多数MOM提供商都对JMS提供⽀持。
个⼈理解: 点对点互发,消息⼴播。还可以这样设置:如果对⽅没有在线,那么消息会存在服务器,待对⽅上线后,发送给对⽅。其实这个⾃⼰新增个表,其实也可以实现,但是你不好实现的是优化,如果⾯对⼤数据量,你⽆法保证是否会像你使⽤JMS那样⾼效。
10.JTA(Java Transaction Architecture):
Java事务API。允许应⽤程序执⾏分布式事务处理——在两个或多个⽹络计算机资源上访问并且更新数据。JDBC驱动程序的JTA⽀持极⼤地增强了数据访问能⼒。事务最简单最直接的⽬的就是保证数据
的有效性,数据的⼀致性。
个⼈理解: JTA事务⽐JDBC事务更强⼤。⼀个JTA事务可以有多个参与者,⽽⼀个JDBC事务则被限定在⼀个单⼀的数据库连接。
11.JTS(Java Transaction Service):
JTS是CORBA OTS事务监控的基本的实现。JTS规定了事务管理器的实现⽅式。该事务管理器是在⾼层⽀持Java Transaction API (JTA)规范,并且在较底层实现OMG OTSspecification的Java映像。JTS事务管理器为应⽤服务器、资源管理器、独⽴的应⽤以及通信资源管理器提供了事务服务。
12.JavaMail:
JavaMail是⽤于存取邮件服务器的API,它提供了⼀套邮件服务器的抽象类。不仅⽀持SMTP服务器,也⽀持IMAP服务器。
13.JAF(JavaBeans Activation Framework):
JAF是⼀个专⽤的数据处理框架,它⽤于封装数据,并为应⽤程序提供访问和操作数据的接⼝.也就是说,JAF让Java程序知道怎么对⼀个数据源进⾏查看,编辑,打印等.
JavaMail利⽤JAF来处理MIME编码的邮件附件。MIME的字节流可以被转换成Java对象,或者转换⾃Java对象。⼤多数应⽤都可以不需要直接使⽤JAF。
- 总结:
J2EE的基⽯是EJB,它是Java中的服务器端组件标准。
13个规范解决了背景中提到的问题,好⽐全世界制造轴承的标准是⼀样的,只有遵循标准⾃⼰⽣产的轴承才能被全世界使⽤。那么这些规范之间的关系是什么样的呢,它们到底怎么运转呢?
让我来看下边这张图
⼗三规范让我们见识到了java的强⼤,不得不说写这些规范还是⽐较抽象的。我们⽬前对于J2EE的理解还⾮常的肤浅,还需要在今后的学习与实践中不断的深⼊,继续学习。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论