马上就要开始暑期实训了,想着把自己以前学习的东西复习一遍,做一些总结。(以前学习的时
候,没有做总结真是失误啊)。笔者的方向是java方向的,J2EE无疑是java的精髓。因此最近会抽出些
时间学习,巩固。对于这个过程,笔者打算从servlet、jsp基础开始。笔者十分赞同“合抱之树始于毫
末,万丈高楼起于垒土” 。只有基础够扎实,其他框架的学习才能够水到渠成。
首先笔者对J2EE的十三中框架做一个总结、了解对于学习有一个明确的思路。
J2EE是一个开放的平台有一整套服务(services)、应用程序接口APIs和协议组成,它对开发基于
web的多层应用提供了功能、技术支持。主要包括十三种核心的技术,除此之外还提供很多流行
的web框架(struts、hibernate、spring)。这里简要的说明一下其十三种核心技术建立一个整体的概念。
JDBC API以一个统一的方式访问各种数据库。与ODBC类似,它将开发者和私有的数据库之间
的问题隔离开来了,各个数据库厂商根据java提供的JDBC的标准实现自己的数据库驱动来操作自
己的数据库产品JDBC是建立在java上的,提供了平台无关的数据库的访问。
JDBC定义了四种不同的驱动,具体来说有:
这种方式是在JDBC刚产生时的一种十分有效的访问数据库的方式,开发者通过使用JDBC来
访问ODBC数据源来操作具体的数据库。缺点也比较明显,就是客户机上必须安装ODBC驱动,
没有达到平台无关性。
JDBC-native驱动桥提供了一个建筑在本地数据库驱动是哪个的JDBC接口(不使用odbc)。它
将标准的JDBC调用转换为数据库API的本地调用。这种方式需要安装客户端的本地代码,同时
失去了平台无关性。
JDBC-network桥不需要客户端的数据库驱动。它们使用网络-服务器中层来访问一个数据库。
这会引出诸如负载均衡、连接池等技术,数据缓冲也是可能的。这种方式可带来相对小的下载时间,
平台无关,十分适合Internet的应用,通过网路协议驱动。
使用纯java数据库驱动来提供直接的数据库访问。这种驱动运行在客户端,并且直接访问数据库,
这个模式暗示了要使用一个两层的体系。要在一个n层的体系中使用这种驱动,可以通过一个包含
数据访问代码的EJB,并且让该EJB为它提供一个数据库无关的服务,通过本地协议驱动。
JNDI是一组在java应用中访问命名和目录服务的API,命名服务将名称和对象关联起来,使我们可
以用名称访问对象。java应用程序可以和这些命名服务和目录服务之间进行交互。JNDI为开发人员提
供了一套查找和访问命名服务和目录服务的通用、统一的接口。
对于JNDI到底是什么笔者这里也有些不明了,下去会找些资料说明的。
J2EE技术之所以赢得某体广泛重视的原因之一就是EJB。它们提供了一个框架来开发和实施分
布式商务逻辑,由此很显著地简化了具有可伸缩性和高度复杂的企业级应用的开发。EJB规范定义
了EJB组件在何时如何与它们的容器进行交互作用。容器负责提供公用的服务,例如目录服务、事
务管理、安全性、资源缓冲池以及容错性。但这里值得注意的是,EJB并不是实现J2EE的唯一途径。
正是由于J2EE的开放性,使得有的厂商能够以一种和EJB平行的方式来达到同样的目的。
这个小生同样是云里雾里,不大清楚,完全没用过。现阶段了解就成。
Servlets技术提供的大部分功能和JSP是相同的,不过JSP中大部分是HTML代码,而Servlet
则是完全由java语言编写,并且产生Html代码的。
servlet是一个在服务器上运行的一个java小程序,它可以扩展web服务器的功能。这些服务器
的应用可以在被请求的时候动态执行,与CGI相差不多。区别在于CGI脚本每次请求都启动一个
全新的进程(占用额外系统开销)而servlet只需在servlet引擎内启动一个独立的线程就ok了,其扩
展性更好。
在笔者接下来的学习中也会先从这部分开始学习。
在Java IDL的支持下,开发人员可以将Java和CORBA集成在一起。他们可以创建Java对象并使之
可在CORBA ORB中展开, 或者他们还可以创建Java类并作为和其它ORB一起展开的CORBA对象的
客户。后一种方法提供了另外一种途径,通过它Java可以被用于将你的新的应用和旧的系统相集成。
JTA定义了一种标准的API,应用系统由此可以访问各种事务监控。
JTS是CORBA OTS事务监控的基本的实现。JTS规定了事务管理器的实现方式。该事务管理器
是在高层支持Java Transaction API (JTA)规范,并且在较底层实现OMG OTS specification的
Java映像。JTS事务管理器为应用服务器、资源管理器、独立的应用以及通信资源管理器提供
了事务服务。
JavaMail是用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类。不仅支持SMTP
服务器,也支持IMAP服务器。
JavaMail利用JAF来处理MIME编码的邮件附件。MIME的字节流可以被转换成Java对象,
或者转换自Java对象。大多数应用都可以不需要直接使用JAF。
MS是用于和面向消息的中间件相互通信的应用程序接口(API)。它既支持点对点的域,有支持
发布/订阅(publish/subscribe)类型的域,并且提供对下列类型的支持:经认可的消息传递,事务型
消息的传递,一致性消息和具有持久性的订阅者支持。JMS还提供了另一种方式来对您的应用与
旧的后台系统相集成。
XML是一种可以用来定义其它标记语言的语言。它被用来在不同的商务过程中共享数据。XML
的发展和Java是相互独立的,但是,它和Java具有的相同目标正是平台独立性。通过将Java和
XML的组合,您可以得到一个完美的具有平台独立性的解决方案。
正如其名字所表示的那样,RMI协议调用远程对象上方法。它使用了序列化方式在客户端和服务
器端传递数据。RMI是一种被EJB使用的更底层的协议。
JSP全名为java server page,其根本是一个简化的Servlet设计,他实现了Html语法中的java扩张
(以 <%,%>形式)。JSP与Servlet一样,是在服务器端执行的,通常返回给客户端的就是一个
HTML文本,因此客户 端只要有浏览器就能浏览。Web服务器在遇到访问JSP网页的请求时,首先
执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java
程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
了解了J2EE的核心技术我们简要的看看J2EE的框架图:
至于J2EE的一些流行的Web框架(Hibernate、Struts、Spring)会在后续慢慢学习的。