《ch11数据库技术专题Web数据库技术》由会员分享,可在线阅读,更多相关《ch11数据库技术专题Web数据库技术(98页珍藏版)》请在金锄头文库上搜索。
1、第第1111章章 WebWeb数据库数据库 第第1111章章 WebWeb数据库数据库 11.1 Web11.1 Web数据库概述数据库概述 11.2 Web11.2 Web开发新技术开发新技术 11.3 Web11.3 Web数据库访问技术数据库访问技术 11.4 web11.4 web数据管理数据管理 第第1111章章 WebWeb数据库数据库 11.1 Web11.1 Web数据库概述数据库概述 11.1.1 11.1.1 静态网页与动态网页静态网页与动态网页 11.1.2 Web11.1.2 Web数据库应用的三层体系结构数据库应用的三层体系结构 第第1111章章 WebWeb数据库数
2、据库 11.1.1 11.1.1 静态网页与动态网页静态网页与动态网页1 1静态网页静态网页 静态网页的静态网页的“静态静态”指的是网页内容指的是网页内容“固定不变固定不变”,无,无论谁访问都显示相同的内容,缺乏交互性,缺乏人性化及个论谁访问都显示相同的内容,缺乏交互性,缺乏人性化及个性化。当用户浏览器通过性化。当用户浏览器通过HTTPHTTP协议向协议向WebWeb服务器请求提供网页服务器请求提供网页内容时,服务器仅仅是将原已设计好的内容时,服务器仅仅是将原已设计好的HTMLHTML文档传送给用户文档传送给用户浏览器。其页面的内容使用的仅仅是标准的浏览器。其页面的内容使用的仅仅是标准的HTM
3、LHTML代码。代码。 不易维护是静态网页的致命弱点。若网站维护者要更新不易维护是静态网页的致命弱点。若网站维护者要更新网页的内容,就必须手动更新其网页的内容,就必须手动更新其HTMLHTML文档。随着网站内容和文档。随着网站内容和信息量的日益增长,网站维护工作量大得出乎想象。在信息量的日益增长,网站维护工作量大得出乎想象。在InternetInternet应用初期,应用初期,WebWeb网页多为静态网页,随着网页多为静态网页,随着InternetInternet的的逐步普及,出现了动态网页。逐步普及,出现了动态网页。 第第1111章章 WebWeb数据库数据库 11.1.1 11.1.1 静
4、态网页与动态网页静态网页与动态网页 2.2.动态网页动态网页 动态网页的动态网页的“动态动态”指的是网页的内容不是固定不变的,指的是网页的内容不是固定不变的,而是在文件中加入了程序,使得同一页面对于不同的人或在不而是在文件中加入了程序,使得同一页面对于不同的人或在不同的时间是变化的。动态网页具有如下特点:同的时间是变化的。动态网页具有如下特点: (1)(1)动态内容(动态内容(Dynamic ContentDynamic Content)。网页的内容,可)。网页的内容,可“动态动态”地随时插入、修改、或删除网页的元件,譬如文字、标记等。地随时插入、修改、或删除网页的元件,譬如文字、标记等。 (
5、2)(2)动态排版样式(动态排版样式(Dynamic Styles SheetsDynamic Styles Sheets)。通过)。通过W3CW3C(World Wide Web ConsortiumWorld Wide Web Consortium,万维网联盟)的,万维网联盟)的“Cascading Style Sheets”Cascading Style Sheets”(串联式排版样式,简称(串联式排版样式,简称CSS1CSS1或或CSSCSS),提供了设定),提供了设定HTMLHTML标记的字体大小、字型、粗细、字型样标记的字体大小、字型、粗细、字型样式、行高度、文字颜色、加底线或加中
6、间横线、与边缘距离、式、行高度、文字颜色、加底线或加中间横线、与边缘距离、靠左右或置中、缩排、背景图片或颜色等排版功能,并且可以靠左右或置中、缩排、背景图片或颜色等排版功能,并且可以“动态动态”地随时地改变排版样式。地随时地改变排版样式。 第第1111章章 WebWeb数据库数据库 11.1.1 11.1.1 静态网页与动态网页静态网页与动态网页 (3)(3)动态定位(动态定位(Dynamic PositioningDynamic Positioning)。通过)。通过W3CW3C的的“Working Draft on Positioning HTML with Cascading Worki
7、ng Draft on Positioning HTML with Cascading Style Sheets”Style Sheets”,提供,提供HTMLHTML元件在元件在X X、Y Y、Z Z轴的定位功能,轴的定位功能,让设计者可以放置影像、控件、文字等在网页上的任何位让设计者可以放置影像、控件、文字等在网页上的任何位置上。而放置在不同的置上。而放置在不同的Z Z轴上,设计者就可以产生重叠的效轴上,设计者就可以产生重叠的效果。果。 (4)(4)内建资料处理(内建资料处理(Data AwarenessData Awareness)。无须复杂的程)。无须复杂的程序,无须花费服务器太多资源
8、,即可让网页设计者即时处序,无须花费服务器太多资源,即可让网页设计者即时处理文档。理文档。 (5)(5)内建多媒体支援:内建多媒体支援:IE 4.0IE 4.0结合结合CSSCSS与内建的与内建的ActiveX ActiveX ControlsControls,提供多媒体支持的功能,包括转换特效、滤镜,提供多媒体支持的功能,包括转换特效、滤镜特效、路径控制、顺序控制、动画、制图、播放声音和影特效、路径控制、顺序控制、动画、制图、播放声音和影像等多媒体功能。像等多媒体功能。第第1111章章 WebWeb数据库数据库 11.1.2 Web11.1.2 Web数据库应用的三层体系结构数据库应用的三层
9、体系结构 在动态网页的设计中,常用数据库向在动态网页的设计中,常用数据库向WebWeb服务器提供数服务器提供数据,采用一种三层客户端服务器的体系结构,即客户端浏据,采用一种三层客户端服务器的体系结构,即客户端浏览器览器/ Web/ Web服务器服务器/ /数据库服务器(数据库服务器(Browser/Web Browser/Web Server/Database ServerServer/Database Server,简称,简称B/W/DB/W/D)结构。它是一种随)结构。它是一种随着着InternetInternet技术的兴起,由传统的二层技术的兴起,由传统的二层Client/ServerC
10、lient/Server(简(简称称C/SC/S)结构变化或改进而来的三层)结构变化或改进而来的三层Client/ServerClient/Server结构在结构在WebWeb上应用的特例上应用的特例 第第1111章章 WebWeb数据库数据库 11.1.2 Web11.1.2 Web数据库应用的三层体系结构数据库应用的三层体系结构 B/W/DB/W/D三层体系结构如图三层体系结构如图11.111.1所示。用户通过所示。用户通过URLURL向向WebWeb服务器请求页面,服务器请求页面,WebWeb服务器运行脚本程序并通过服务器运行脚本程序并通过SQLSQL查询调用数据库服务器中存储的数据,数
11、据库服务器执查询调用数据库服务器中存储的数据,数据库服务器执行查询后将查询结果返回到行查询后将查询结果返回到WebWeb服务器,脚本程序产生特服务器,脚本程序产生特定格式的定格式的HTMLHTML文件,客户端接收到文件,客户端接收到HTMLHTML文件后由浏览器文件后由浏览器将结果显示出来。将结果显示出来。 图图11.1 B/W/D11.1 B/W/D三层体系结构三层体系结构客户机浏览器客户机浏览器WebWeb服务器服务器请求页面请求页面URL数据库服务器数据库服务器运行脚本程序运行脚本程序显示结果显示结果产生产生HTML文件文件执行执行SQLSQL查询查询返回查询结果返回查询结果HTML文件
12、文件SQLSQL查询查询查询结果查询结果第第1111章章 WebWeb数据库数据库 11.1.2 Web11.1.2 Web数据库应用的三层体系结构数据库应用的三层体系结构 B/W/DB/W/D三层体系结构与三层体系结构与C/SC/S体系结构相比具有以下优势:体系结构相比具有以下优势: 开放的标准。开放的标准。C/SC/S所采用的标准只要在内部统一就可,它的所采用的标准只要在内部统一就可,它的应用往往是专用的。应用往往是专用的。B/W/DB/W/D所采用的标准都是开放的、非专用的,所采用的标准都是开放的、非专用的,是经过标准化组织所确定的而非单一厂商所制定,保证了其应是经过标准化组织所确定的而
13、非单一厂商所制定,保证了其应用的通用性和跨平台性。用的通用性和跨平台性。 (1)(1)较低的开发和维护成本。较低的开发和维护成本。C/SC/S的应用必须开发出专用的的应用必须开发出专用的客户端软件,无论是安装、配置还是升级都需要在所有的客户客户端软件,无论是安装、配置还是升级都需要在所有的客户机上实施,极大地浪费了人力和物力。机上实施,极大地浪费了人力和物力。B/W/DB/W/D的应用只需在客户的应用只需在客户端装有通用的浏览器即可,维护和升级工作都在服务器端进行,端装有通用的浏览器即可,维护和升级工作都在服务器端进行,不需对客户端进行任何改变,故而大大降低了开发和维护的成不需对客户端进行任何
14、改变,故而大大降低了开发和维护的成本。本。 (2)(2)使用简单,界面友好。使用简单,界面友好。C/SC/S用户的界面是由客户端软件用户的界面是由客户端软件所决定的,其使用的方法和界面各不相同。所决定的,其使用的方法和界面各不相同。B/W/DB/W/D用户的界面都用户的界面都统一在浏览器上,浏览器易于使用、界面友好,不须再学习使统一在浏览器上,浏览器易于使用、界面友好,不须再学习使用其他的软件,一劳永逸的解决了用户的使用问题。用其他的软件,一劳永逸的解决了用户的使用问题。 第第1111章章 WebWeb数据库数据库 11.1.2 Web11.1.2 Web数据库应用的三层体系结构数据库应用的三
15、层体系结构 (3)(3)客户端消肿。客户端消肿。C/SC/S的客户端具有显示与处理数据的功能,对的客户端具有显示与处理数据的功能,对客户端的要求很高,是一个客户端的要求很高,是一个“胖胖”客户机。客户机。B/W/DB/W/D的客户端不再负责的客户端不再负责数据库的存取和复杂数据计算等任务,这样大大的降低了对客户端数据库的存取和复杂数据计算等任务,这样大大的降低了对客户端的要求,客户端变得非常的要求,客户端变得非常“瘦瘦”。 (4)(4)系统灵活。系统灵活。C/SC/S系统的模块中有一部分需改变就要关联到其系统的模块中有一部分需改变就要关联到其他模块的变动,使系统极难升级。他模块的变动,使系统极
16、难升级。B/W/DB/W/D系统的三部分模块各自相对系统的三部分模块各自相对独立,其中一部分模块改变时其他模块不受影响,系统改进变得非独立,其中一部分模块改变时其他模块不受影响,系统改进变得非常容易,且可以用不同厂家的产品来组成性能更佳的系统。常容易,且可以用不同厂家的产品来组成性能更佳的系统。 (5)(5)保障系统的安全性。在保障系统的安全性。在C/SC/S系统中由于客户机直接与数据库系统中由于客户机直接与数据库服务器进行连接,用户可以改变服务器上的数据,无法保证系统的服务器进行连接,用户可以改变服务器上的数据,无法保证系统的安全性。安全性。B/W/DB/W/D系统在客户机与数据库服务器之间
17、增加了一层系统在客户机与数据库服务器之间增加了一层WebWeb服服务器,使两者不再直接相连,客户机无法直接操纵数据库,可以有务器,使两者不再直接相连,客户机无法直接操纵数据库,可以有效地防止非法入侵。效地防止非法入侵。 第第1111章章 WebWeb数据库数据库 11.2 Web11.2 Web开发新技术开发新技术 11.2.1 PHP 11.2.1 PHP 11.2.2 ASP 11.2.2 ASP 11.2.3 .NET 11.2.3 .NET 11.2.4 JSP 11.2.4 JSP 第第1111章章 WebWeb数据库数据库 11.2.1 PHP11.2.1 PHP PHPPHP是一
18、种易于学习和使用的服务器端脚本语言。只是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识就能使用需要很少的编程知识就能使用PHPPHP来建立一个真正交互的来建立一个真正交互的WEBWEB站点。站点。PHPPHP是一种动态网页的开发工具。是一种动态网页的开发工具。PHPPHP网页文件网页文件被当作一般被当作一般HTMLHTML网页文件来处理,并且可以用编辑网页文件来处理,并且可以用编辑HTMLHTML的常规方法编写的常规方法编写PHPPHP。 PHPPHP代表超文本预处理器(代表超文本预处理器(PHP: Hypertext PHP: Hypertext PreprocessorPrep
19、rocessor)。)。PHPPHP完全免费,可以从完全免费,可以从PHPPHP官方站点官方站点(http:/(http:/) )自由下载。自由下载。PHPPHP遵守遵守GNUGNU公共许可公共许可(GPL)GPL),在这一许可下诞生了许多流行的软件,如,在这一许可下诞生了许多流行的软件,如LinuxLinux、 EmacsEmacs等。可以不受限制的获得源码,甚至可以从中加进等。可以不受限制的获得源码,甚至可以从中加进自己需要的特色。自己需要的特色。PHPPHP在大多数在大多数UnixUnix平台,平台,GUN/LinuxGUN/Linux和和微软微软WindowsWindows平台上均可运
20、行。在平台上均可运行。在WindowsWindows环境下的环境下的PCPC机机器或器或UnixUnix机器上安装机器上安装PHPPHP,过程简单。,过程简单。 第第1111章章 WebWeb数据库数据库 11.2.1 PHP11.2.1 PHP1 1PHPPHP工作环境工作环境 PHPPHP的核心用途是网站的建设与开发,熟悉的核心用途是网站的建设与开发,熟悉PHPPHP开发开发环境是初学者学习环境是初学者学习PHPPHP所必须了解。所必须了解。 (1)(1)操作系统:操作系统: Microsoft WindowsMicrosoft Windows系列系列: Windows 98/ Windo
21、ws : Windows 98/ Windows NT4.0/ Windows 2000NT4.0/ Windows 2000,LinuxLinux,FreeBSDFreeBSD或或SolarisSolaris。 (2)Web(2)Web服务器:服务器:IIS/PWSIIS/PWS。 (3)(3)数据库:数据库:OracleOracle、dBasedBase、InformixInformix、SQL SQL ServerServer、SysbaseSysbase和和MySQLMySQL等,最常用的数据库为等,最常用的数据库为MySQLMySQL。 第第1111章章 WebWeb数据库数据库 1
22、1.2.1 PHP11.2.1 PHP2 2PHP PHP 工作原理工作原理 PHPPHP的所有应用程序都是通过的所有应用程序都是通过WEBWEB服务器服务器( (如如IISIIS或或Apache)Apache)和和PHPPHP引擎程序解释执行完成的,工作过程:引擎程序解释执行完成的,工作过程: (1) (1) 当用户在浏览器地址中输入要访问的当用户在浏览器地址中输入要访问的PHPPHP页面文件页面文件名,然后回车就会触发这个名,然后回车就会触发这个PHPPHP请求,并将请求传送给支持请求,并将请求传送给支持PHPPHP的的WEBWEB服务器。服务器。 (2) WEB(2) WEB服务器接受这
23、个请求,并根据其后缀进行判断,服务器接受这个请求,并根据其后缀进行判断,如果是一个如果是一个PHPPHP请求,请求,WEBWEB服务器从硬盘或内存中取出用户服务器从硬盘或内存中取出用户要访问的要访问的PHPPHP应用程序,并将其发送给应用程序,并将其发送给PHPPHP引擎程序。引擎程序。 (3) PHP(3) PHP引擎程序将会对引擎程序将会对WEBWEB服务器传送过来的文件从服务器传送过来的文件从头到尾进行扫描,并根据命令从后台读取,处理数据,并头到尾进行扫描,并根据命令从后台读取,处理数据,并动态地生成相应的动态地生成相应的HTMLHTML页面。页面。 (4) PHP(4) PHP引擎将生
24、成引擎将生成HTMLHTML页面返回给页面返回给WEBWEB服务器。服务器。WEBWEB服服务器再将务器再将HTMLHTML页面返回给客户端浏览器。页面返回给客户端浏览器。 第第1111章章 WebWeb数据库数据库 11.2.1 PHP11.2.1 PHP3 3PHPPHP的优点的优点 (1) (1) 数据库连接方便。数据库连接方便。PHPPHP可以编译成具有与许多数可以编译成具有与许多数据库连接的函数。据库连接的函数。PHPPHP与与MySQLMySQL是目前最佳组合。用户还是目前最佳组合。用户还可以编写外围的函数去间接存取数据库。通过这样的途可以编写外围的函数去间接存取数据库。通过这样的
25、途径,当用户更换使用数据库时,可以轻松地修改编码以径,当用户更换使用数据库时,可以轻松地修改编码以适用这样的变化。适用这样的变化。PHPLIBPHPLIB提供一系列基库。提供一系列基库。 (2)(2)可伸缩性。传统上网页的交互作用是通过可伸缩性。传统上网页的交互作用是通过CGICGI来来实现的。实现的。CGICGI程序的伸缩性不很理想,因为它为每一个正程序的伸缩性不很理想,因为它为每一个正在运行的在运行的CGICGI程序开一个独立进程,而内嵌的程序开一个独立进程,而内嵌的PHPPHP可以具可以具有更高的可伸缩性。有更高的可伸缩性。 (3)(3)支持面向对象编程。支持面向对象编程。PHPPHP提
26、供了类和对象。基于提供了类和对象。基于WebWeb的编程工作非常需要面向对象编程能力。的编程工作非常需要面向对象编程能力。PHPPHP支持构支持构造器、提取类等。造器、提取类等。第第1111章章 WebWeb数据库数据库 11.2.2 ASP11.2.2 ASP ASPASP(Active Server PagesActive Server Pages)是由)是由MicrosoftMicrosoft推出的动推出的动态态WebWeb设计技术,是一个基于设计技术,是一个基于WebWeb服务器端的开发和脚本运行服务器端的开发和脚本运行环境。利用它可以产生和运行动态的、交互的、高性能的环境。利用它可以
27、产生和运行动态的、交互的、高性能的WebWeb服务应用程序。与常见的在客户端实现动态主页的技术服务应用程序。与常见的在客户端实现动态主页的技术如如Java appletJava applet、ActiveX ControlActiveX Control、VB ScriptVB Script、JavaScriptJavaScript等不同,等不同,ASPASP中的脚本程序是由服务器来解释执中的脚本程序是由服务器来解释执行的,执行结果以行的,执行结果以HTMLHTML主页形式返回浏览器,而客户端技术主页形式返回浏览器,而客户端技术的脚本程序则是由浏览器来解释执行的。的脚本程序则是由浏览器来解释执行
28、的。 利用利用ASPASP,可以把,可以把HTMLHTML文本、脚本命令及文本、脚本命令及ActiveXActiveX组件混组件混合在一起构成合在一起构成ASPASP页,实现对页,实现对WebWeb数据库的访问。当用户使用数据库的访问。当用户使用浏览器访问浏览器访问ASPASP网页时,网页时,WebWeb服务器响应,调用服务器响应,调用ASPASP引擎来执引擎来执行行ASPASP文件,并解释其中的脚本语言,通过文件,并解释其中的脚本语言,通过ODBCODBC连接数据库,连接数据库,由数据库访问组件由数据库访问组件ADOADO(ActiveX Data ObjectsActiveX Data O
29、bjects)完成数据)完成数据库操作,最后库操作,最后ASPASP生成包含有数据查询结果的生成包含有数据查询结果的HTMLHTML主页并返主页并返回用户端。回用户端。 第第1111章章 WebWeb数据库数据库 11.2.2 ASP11.2.2 ASP ASPASP的程序代码简单、通用,文件名由的程序代码简单、通用,文件名由.asp.asp结尾,结尾,ASPASP文件文件通常由四部分构成:通常由四部分构成: (1)(1)标准的标准的HTMLHTML标记:所有的标记:所有的HTMLHTML标记均可使用。标记均可使用。 (2)ASP(2)ASP语法命令:位于语法命令:位于 标签内的标签内的ASP
30、ASP代码。代码。 (3)(3)服务器端的服务器端的includeinclude语句:可用语句:可用#include#include语句调入其他语句调入其他ASPASP代码,增强了编程的灵活性。代码,增强了编程的灵活性。 (4)(4)脚本语言:脚本语言(脚本语言:脚本语言(scripting languagescripting language)是介于)是介于HTMLHTML和和JavaJava,C+C+以及以及Visual BasicVisual Basic等编程语言之间的一种等编程语言之间的一种语言,它与编程语言之间最大的区别是后者的语法和规则语言,它与编程语言之间最大的区别是后者的语法和
31、规则更为严格和复杂一些。更为严格和复杂一些。ASPASP自带自带VBScriptVBScript、JscriptJscript和和JavaSriptJavaSript等脚本语言,用户也可安装其他脚本语言,如等脚本语言,用户也可安装其他脚本语言,如PerlPerl、RexxRexx等。等。 第第1111章章 WebWeb数据库数据库 11.2.2 ASP11.2.2 ASP 1 1ASPASP的运行环境的运行环境 ASPASP是服务器端的应用程序。目前,是服务器端的应用程序。目前,MicrosoftMicrosoft公司公司推出支持推出支持ASPASP的服务器有:的服务器有: (1)Micros
32、oft Internet Information Server (1)Microsoft Internet Information Server 3.0/4.03.0/4.0(IIS3.0/4.0IIS3.0/4.0) on Windows NT server 4.0on Windows NT server 4.0。 (2)Microsoft Internet Information Server (2)Microsoft Internet Information Server 5.05.0(IIS5.0IIS5.0)on Windows 2000 serveron Windows 2000
33、server。 (3)Microsoft Personal Web Server 4.0 (3)Microsoft Personal Web Server 4.0 (PWS4.0PWS4.0)on Windows 95/98on Windows 95/98。 (4)Microsoft Peer Server 3.0 on Windows NT (4)Microsoft Peer Server 3.0 on Windows NT WorkstationWorkstation。 第第1111章章 WebWeb数据库数据库 11.2.2 ASP11.2.2 ASP 要运行一个要运行一个ASPASP程
34、序,必须先安装程序,必须先安装WebWeb服务器,设置服务器,设置好虚拟目录,在浏览器的地址栏中使用虚拟目录,否则好虚拟目录,在浏览器的地址栏中使用虚拟目录,否则ASPASP程序就不能正常运行。一个程序就不能正常运行。一个ASPASP文件相当于一个可执文件相当于一个可执行文件行文件, ,因此必须放在因此必须放在WebWeb服务器上有执行权限的目录下。服务器上有执行权限的目录下。当浏览器向当浏览器向Web ServerWeb Server请求调用请求调用ASPASP文件时文件时, ,就启动了就启动了ASPASP。WebWeb服务器开始调用服务器开始调用ASP,ASP,按顺序读取被请求的按顺序读取
35、被请求的.asp.asp文件内文件内容容, ,执行每一个命令执行每一个命令, ,然后动态生成一个然后动态生成一个HTMLHTML页面并送到页面并送到浏览器。通过浏览器。通过ASPASP内置的对象、服务器组件可以完成非常内置的对象、服务器组件可以完成非常复杂的任务复杂的任务, ,而且用户还可以开发或利用其它服务器组件而且用户还可以开发或利用其它服务器组件完成专门的任务。完成专门的任务。第第1111章章 WebWeb数据库数据库 11.2.2 ASP11.2.2 ASP2 2ASPASP的工作模式的工作模式 ASPASP的工作模式如下:的工作模式如下: (1)(1)用户将一个用户将一个ASPASP
36、文件的文件的URLURL输入到浏览器的地址栏。输入到浏览器的地址栏。 (2)(2)浏览器向浏览器向WebWeb服务器发送服务器发送ASPASP请求。请求。 (3)(3)服务器根据扩展名服务器根据扩展名.asp.asp识别请求并读取相应的识别请求并读取相应的ASPASP文文件。件。 (4)(4)服务器向特定的名为服务器向特定的名为ASP.dllASP.dll的程序发送文件。的程序发送文件。 (5)(5)执行所有的服务器端脚本,并将执行结果与执行所有的服务器端脚本,并将执行结果与HTMLHTML代码代码进行合并。进行合并。 (6)HTML(6)HTML文件返回到浏览器。文件返回到浏览器。 (7)(
37、7)浏览器将结果展示给用户。浏览器将结果展示给用户。第第1111章章 WebWeb数据库数据库 11.2.2 ASP11.2.2 ASP3 3ASPASP的优点的优点 (1)(1)使用使用VBScriptVBScript、JavascriptJavascript等简单易懂的脚本语言,等简单易懂的脚本语言,结合结合HTMLHTML代码,可快速地完成网站的应用程序。代码,可快速地完成网站的应用程序。 (2)(2)除了除了FrontpageFrontpage、Visual InterdevVisual Interdev等开发环境外,等开发环境外,使用普通的文本编辑器即可进行编辑设计。使用普通的文本编
38、辑器即可进行编辑设计。 (3)(3)无需编译,在服务器端直接执行。无需编译,在服务器端直接执行。 (4)(4)运行结果与浏览器无关。运行结果与浏览器无关。ASPASP使用的脚本语言在使用的脚本语言在WebWeb服务器端执行后,输出服务器端执行后,输出HTMLHTML代码,客户端的浏览器只需能代码,客户端的浏览器只需能识别识别HTMLHTML代码即可。代码即可。 (5)(5)支持广泛。支持广泛。ASPASP除支持除支持VB ScriptVB Script、JavaScriptJavaScript外外, ,还能以插件形式支持第三方语言还能以插件形式支持第三方语言, ,如如PerlPerl、Rexx
39、Rexx、TclTcl等。等。 第第1111章章 WebWeb数据库数据库 11.2.2 ASP11.2.2 ASP(6)(6)安全性好。安全性好。ASPASP的源程序不会被传送到客户端,因而可避的源程序不会被传送到客户端,因而可避免源程序被他人截获,提高了程序的安全性。免源程序被他人截获,提高了程序的安全性。(7)(7)可使用服务器端的脚本来产生客户端脚本,快速灵活地可使用服务器端的脚本来产生客户端脚本,快速灵活地在客户端完成交互。在客户端完成交互。(8)ActiveX(8)ActiveX服务器组件具有很好的扩充性。除了服务器组件具有很好的扩充性。除了ASPASP自带的自带的组件外,还可以使
40、用支持组件对象模型(组件外,还可以使用支持组件对象模型(COMCOM)的语言如)的语言如C C、C+C+、JavaJava、Visual BasicVisual Basic等编写组件或从第三方开发者处等编写组件或从第三方开发者处获得满足自己需要的组件,以提高系统的扩充能力。获得满足自己需要的组件,以提高系统的扩充能力。 第第1111章章 WebWeb数据库数据库 11.2.3 .NET11.2.3 .NET MicrosoftMicrosoft公司的公司的.NET.NET体系结构是体系结构是Windows Windows 分布式网分布式网络应用程序体系结构的演进,络应用程序体系结构的演进,Mi
41、crosoftMicrosoft公司对公司对.NET.NET的描的描述是:述是:“.NET.NET是一个革命性的新平台,它建立在开放的是一个革命性的新平台,它建立在开放的InternetInternet协议和标准之上,采用许多新的工具和服务用协议和标准之上,采用许多新的工具和服务用于计算和通信。于计算和通信。”简单地说,简单地说,.NET.NET是一个开发和运行软是一个开发和运行软件的新环境。件的新环境。.Net.Net环境中的突破性改进在于:使用统一环境中的突破性改进在于:使用统一的的InternetInternet标准(如标准(如XMLXML)将不同的系统对接;是)将不同的系统对接;是In
42、ternetInternet上首个大规模的高度分布式应用服务架构;使上首个大规模的高度分布式应用服务架构;使用了一个名为用了一个名为“联盟联盟”的管理程序,这个程序能全面管的管理程序,这个程序能全面管理平台中运行的服务程序,并且为它们提供强大的安全理平台中运行的服务程序,并且为它们提供强大的安全保护后台。保护后台。 第第1111章章 WebWeb数据库数据库 11.2.3 .NET11.2.3 .NET .NET.NET框架(框架(FrameworkFramework)是)是.NET.NET平台最重要的部分,平台最重要的部分,亦即以前所谓的亦即以前所谓的NGWSNGWS(Next Genera
43、tion Windows Next Generation Windows ServicesServices),它的目标是成为新一代基于),它的目标是成为新一代基于InternetInternet的分布的分布式应用开发平台。其基本模块包括以下几个部分:式应用开发平台。其基本模块包括以下几个部分:WebWeb服服务(务(Web ServicesWeb Services)、通用语言运行时环境()、通用语言运行时环境(Common Common Language RuntimeLanguage Runtime)、服务框架类库()、服务框架类库(Class LibraryClass Library)、)
44、、数据访问服务数据访问服务ADO.NETADO.NET、表单应用模板和、表单应用模板和WebWeb应用程序模板应用程序模板ASP.NETASP.NET。其基本层次结构如图。其基本层次结构如图11.211.2。图图11.2 .NET11.2 .NET框架的基本层次结构框架的基本层次结构C#C#VB.NETVB.NETC+C+JscriptJscriptCommon Language SpecificationCommon Language SpecificationWindows FormsWindows FormsADO.NETADO.NET(Data & XMLData & XML)Clas
45、s LibraryClass LibraryCommon Language RuntimeCommon Language RuntimeASP.NETASP.NET(Web Forms & Web Services Web Forms & Web Services )第第1111章章 WebWeb数据库数据库 11.2.3 .NET11.2.3 .NET1 1ASP.NETASP.NET概述概述 ASP.NETASP.NET并不是并不是ASPASP的升级版本,而是的升级版本,而是MicroSoftMicroSoft推出的推出的用于用于 WebWeb开发的全新框架,是开发的全新框架,是.NET.
46、NET框架的重要组成部分。框架的重要组成部分。ASP.NETASP.NET是一种建立在通用语言上的程序架构,包含了许多是一种建立在通用语言上的程序架构,包含了许多新的特性。新的特性。ASP.NETASP.NET整合了许多语言的开发环境(如整合了许多语言的开发环境(如C+C+、C#C#、VB.NETVB.NET),让程序员可以选择熟悉的开发环境进行组),让程序员可以选择熟悉的开发环境进行组件和应用程序的开发;提供了更易于编写、结构更清晰的件和应用程序的开发;提供了更易于编写、结构更清晰的代码,这些代码很容易进行再利用和共享;代码,这些代码很容易进行再利用和共享;ASP.NETASP.NET使用编
47、使用编译后的语言,从而提升性能和伸缩性;译后的语言,从而提升性能和伸缩性;ASP.NETASP.NET使用使用WebWeb表表单使开发更直观,完全支持面向对象技术,有利于组件的单使开发更直观,完全支持面向对象技术,有利于组件的重复利用;重复利用;ASP.NET ASP.NET 改进了配置、伸缩性、安全性和可靠改进了配置、伸缩性、安全性和可靠性;性;ASP.NETASP.NET对各种不同的浏览器提供了更好的支持。另外,对各种不同的浏览器提供了更好的支持。另外,ASP.NETASP.NET中还包括有页面事件、中还包括有页面事件、WebWeb控件、缓冲技术以及服控件、缓冲技术以及服务器控件和对数据捆
48、绑的改进。务器控件和对数据捆绑的改进。ASP.NETASP.NET向后兼容向后兼容ASPASP,运,运行在行在.NET.NET平台上,以前的平台上,以前的ASPASP脚本几乎不经修改就可在脚本几乎不经修改就可在.NET.NET平台上运行,从而保护了企业先前的相关投资。平台上运行,从而保护了企业先前的相关投资。第第1111章章 WebWeb数据库数据库 11.2.3 .NET11.2.3 .NET ASP ASP 的文件类型只有一种,其扩展名是的文件类型只有一种,其扩展名是.asp.asp文件。文件。ASP.NETASP.NET的文件类型则有多种,如表的文件类型则有多种,如表11-111-1。
49、表表11-1 ASP.NET11-1 ASP.NET的文件类型的文件类型文件扩展名文件扩展名说明说明. .asaxasaxASP.NETASP.NET系统环境设置文件,相当与系统环境设置文件,相当与ASPASP中的中的. .asaasa. .aspxaspx內含內含ASPASP程序代码的文件,如同过去的程序代码的文件,如同过去的.asp.asp,浏览器,浏览器可执行此类文件,向服务器提出浏览请求可执行此类文件,向服务器提出浏览请求. .asmxasmxWebWeb服务的原始文件服务的原始文件. .sdlsdlWebWeb服务的服务的XMLXML格式的文件格式的文件. .vbvb或或. .csc
50、s在非在非ASP.NETASP.NET环境下执行环境下执行WebWeb服务的文件服务的文件. .aspcaspc可重覆使用在多个可重覆使用在多个. .aspxaspx的文件,此文件內可含有控的文件,此文件內可含有控件件. .ascxascx內含用户控件的文件,可內含在多个內含用户控件的文件,可內含在多个. .aspxaspx文件中文件中第第1111章章 WebWeb数据库数据库 11.2.3 .NET11.2.3 .NET 2 2ASP.NETASP.NET的运行环境的运行环境 如果只运行如果只运行ASP.NETASP.NET的应用程序,可以安装的应用程序,可以安装.NET Framework
51、 .NET Framework RedistRedist软软件包。如果要开发、部署和运行件包。如果要开发、部署和运行ASP.NETASP.NET应用程序,则需要安装应用程序,则需要安装ASP.NET ASP.NET Premium EditionPremium Edition、.NET Framework SDK.NET Framework SDK(Software Development KitSoftware Development Kit)或者或者Visual Studio .NETVisual Studio .NET中的任何一个,其中中的任何一个,其中Visual Studio .NE
52、TVisual Studio .NET是开发是开发.NET.NET应用程序的推荐平台,能为开发应用程序的推荐平台,能为开发ASP.NETASP.NET应用程序带来很多方便,但应用程序带来很多方便,但体积较大、对性能要求较高。体积较大、对性能要求较高。 (1)(1)以以.NET Framework SDK.NET Framework SDK为例,运行为例,运行ASP.NETASP.NET应用程序的环境要求如应用程序的环境要求如下:下: (2)Windows XP(2)Windows XP、Windows 2000Windows 2000或或Windows NT4Windows NT4(带(带NT
53、4 Service Pack NT4 Service Pack 6a6a)。)。 (3)IIS5.0(3)IIS5.0或或IIS4.0IIS4.0(带(带NT4 Service Pack 6aNT4 Service Pack 6a)。)。 (4)IE5.5(4)IE5.5以上版本。以上版本。 (5)MDAC(5)MDAC(Microsoft Data Access ComponentMicrosoft Data Access Component)2.62.6以上版本。以上版本。 (6).Net Framework SDK(6).Net Framework SDK。 第第1111章章 WebWe
54、b数据库数据库 11.2.3 .NET11.2.3 .NET3 3ASP.NETASP.NET的工作模式的工作模式 ASPASP与与ASP.NETASP.NET的运行引擎其实不过是两个的运行引擎其实不过是两个DLLDLL文件,文件,分别为分别为asp.dllasp.dll和和xspisapi.dllxspisapi.dll。当客户端传送一个要求。当客户端传送一个要求到服务器时,由所要求的网页的扩展名来判断需要交给哪到服务器时,由所要求的网页的扩展名来判断需要交给哪个运行引擎处理。尽管个运行引擎处理。尽管ASPASP和和ASP.NETASP.NET都是用来开发都是用来开发WebWeb应应用程序,
55、但其工作模式差别很大。用程序,但其工作模式差别很大。 当用户发出一个当用户发出一个ASPXASPX网页的请求后,网页的请求后,ASP.NETASP.NET引擎引擎xspisapi.dllxspisapi.dll会先将会先将ASPXASPX的网页转换成源程序代码,然后的网页转换成源程序代码,然后编译成一个编译成一个DLLDLL文件,接着将此网页当成一个类,在内存文件,接着将此网页当成一个类,在内存中建立此对象的实体,并进行初始化操作,最后才将执行中建立此对象的实体,并进行初始化操作,最后才将执行结果返回到客户端。如果每一个结果返回到客户端。如果每一个ASPXASPX网页每次执行都必须网页每次执行
56、都必须经过上述转换、编译过程,则效率低下。为此,经过上述转换、编译过程,则效率低下。为此,ASP.NETASP.NET提供了一些特殊的机制来改进网页的执行效率。提供了一些特殊的机制来改进网页的执行效率。 第第1111章章 WebWeb数据库数据库 11.2.3 .NET11.2.3 .NET(1)(1)首次存取首次存取 客户端从浏览器发出一个客户端从浏览器发出一个ASPXASPX网页的请求到网页的请求到ASP.NETASP.NET服务器,服务器,WebWeb服务器会交由服务器会交由xspisapi.dllxspisapi.dll处理。服务器先处理。服务器先检查输出缓存(检查输出缓存(Outpu
57、t CacheOutput Cache)中是否有此网页,或者)中是否有此网页,或者此网页是否已被编译成此网页是否已被编译成DLLDLL。如果找不到此网页的输出缓。如果找不到此网页的输出缓存或编译过的存或编译过的DLLDLL,此时便启动解释器(,此时便启动解释器(ParserParser)将网页)将网页转换成源程序代码,然后有编译器(转换成源程序代码,然后有编译器(CompilerCompiler)将其编)将其编译成译成DLLDLL。编译器载入解释过的网页后,将源程序代码编。编译器载入解释过的网页后,将源程序代码编译成中间语言(译成中间语言(Intermediate LanguageInterm
58、ediate Language,ILIL),),xspisapi.dllxspisapi.dll从编译过的程序代码产生对象,并适时地从编译过的程序代码产生对象,并适时地回存网页与控制项的状态信息,处理事件,然后将执行回存网页与控制项的状态信息,处理事件,然后将执行的结果返回到客户端。的结果返回到客户端。第第1111章章 WebWeb数据库数据库 11.2.3 .NET11.2.3 .NET(2)(2)第二次存取第二次存取 当客户端再次发出请求执行同一个网页时,服务器当客户端再次发出请求执行同一个网页时,服务器再次从输出缓存中查找此网页,或查找编译过的再次从输出缓存中查找此网页,或查找编译过的D
59、LLDLL。若。若找到了编译过的找到了编译过的DLLDLL,便省略掉编译的步骤,直接从编译,便省略掉编译的步骤,直接从编译过的过的DLLDLL建立对象,接着保存网页与控制项的状态信息,建立对象,接着保存网页与控制项的状态信息,处理事件,将执行的结果返回到客户端。处理事件,将执行的结果返回到客户端。(3)(3)输出缓存输出缓存 当用户在第二次以后存取网页,发现输出缓存中已当用户在第二次以后存取网页,发现输出缓存中已有此网页时,便省略掉上述所有步骤,直接将输出缓存有此网页时,便省略掉上述所有步骤,直接将输出缓存中的内容返回到客户端。中的内容返回到客户端。 第第1111章章 WebWeb数据库数据库
60、 11.2.3 .NET11.2.3 .NET 4 4ASP.NETASP.NET的优势的优势 (1)(1)简化开发操作。简化开发操作。ASPASP虽然容易使用,但在网页程序过多时虽然容易使用,但在网页程序过多时会显得相当复杂,会显得相当复杂,HTMLHTML标注和程序代码混杂,以致会有杂乱无章标注和程序代码混杂,以致会有杂乱无章的感觉。的感觉。ASP.NETASP.NET使用事件驱动与数据绑定的开发方式,允许分离使用事件驱动与数据绑定的开发方式,允许分离程序代码和显示内容,让网页代码更容易撰写,程序代码看起来程序代码和显示内容,让网页代码更容易撰写,程序代码看起来更简单。更简单。 (2)(2
61、)新的数据存取方式。相对于新的数据存取方式。相对于ASPASP的数据存取方式的数据存取方式ADOADO,ASP.NETASP.NET使用使用ADO.NETADO.NET,由此带来了更快速的数据库连接能力。,由此带来了更快速的数据库连接能力。 (3)(3)新的语言特性。新的语言特性。ASPASP网页中撰写程序代码只限于网页中撰写程序代码只限于ScriptScript语语言,言,ASP.NETASP.NET则允许使用面向对象的则允许使用面向对象的VB.NETVB.NET、C#C#、C+C+、JscriptJscript等等语言,能提供更好的执行效率与跨语言兼容性语言,能提供更好的执行效率与跨语言兼
62、容性 (4)(4)更高的执行效率。更高的执行效率。ASP.NETASP.NET的程序代码不再是解释型代码,的程序代码不再是解释型代码,可以经由可以经由JITJIT编译器编译后运行,并且引入了页面缓冲机制,有效编译器编译后运行,并且引入了页面缓冲机制,有效地缩短了服务器的应答时间。地缩短了服务器的应答时间。 第第1111章章 WebWeb数据库数据库 11.2.3 .NET11.2.3 .NET (5)(5)简化部署与配置的操作。若在简化部署与配置的操作。若在ASPASP网页中调用到组件,则部署网页中调用到组件,则部署组件是需要复杂的注册操作,同时此组件在使用中经常会被锁定而无法组件是需要复杂的
63、注册操作,同时此组件在使用中经常会被锁定而无法更新版本。在更新版本。在ASP.NETASP.NET中不需要考虑到组件注册的问题,只要以中不需要考虑到组件注册的问题,只要以XCOPYXCOPY的的方式将相关文件复制到目的机器就可以,简化了部署操作。在配置方面,方式将相关文件复制到目的机器就可以,简化了部署操作。在配置方面,ASPASP使用使用IISIIS的嵌入式管理单元,而的嵌入式管理单元,而ASP.NETASP.NET采用容易阅读的采用容易阅读的XMLXML配置文件配置文件config.webconfig.web,只要将此文件放在,只要将此文件放在WebWeb应用程序的相关目录中就可以完成应用
64、程序的相关目录中就可以完成配置的操作。配置的操作。 (6)(6)更好的可用性。更好的可用性。ASP.NETASP.NET解决应用程序故障、内存漏失的情况,解决应用程序故障、内存漏失的情况,能自动重新启动进程,从来不死机。能自动重新启动进程,从来不死机。 (7)(7)更好的伸缩性。更好的伸缩性。ASPASP的的SessionSession状态信息只限于单机上使用。当状态信息只限于单机上使用。当用户数逐渐增加时,单凭一台服务器不能服务所有的用户,用户数逐渐增加时,单凭一台服务器不能服务所有的用户,Server Server FarmFarm便应运而生。便应运而生。Server FarmServer
65、 Farm是将许多主机组织在一起,提供一个一是将许多主机组织在一起,提供一个一致的影像给用户。致的影像给用户。ASP.NETASP.NET的的SessionSession状态信息可以在不同机器的不同进状态信息可以在不同机器的不同进程上维护,解决了程上维护,解决了Server FarmServer Farm的的SessionSession维护问题。维护问题。 (8)(8)更先进的安全性能。在更先进的安全性能。在ASPASP中,唯一能使用的是中,唯一能使用的是WindowsWindows登录验登录验证方式,而证方式,而ASP.NETASP.NET则可使用则可使用WindowsWindows、Pas
66、sportPassport和和CookieCookie等多种验证方等多种验证方式,能提供更好的安全性能。更多的支持工具。式,能提供更好的安全性能。更多的支持工具。ASP.NETASP.NET提供丰富的、提供丰富的、以组件为基础的程序化模型,使开发以组件为基础的程序化模型,使开发WebWeb应用程序的操作就像是开发传应用程序的操作就像是开发传统应用程序一样。统应用程序一样。 第第1111章章 WebWeb数据库数据库 11.2.4 JSP11.2.4 JSP JSPJSP(Java Server PagesJava Server Pages)是由)是由Sun MicrosystemsSun Mi
67、crosystems公司公司倡导、许多公司参与一起建立的一种开放的、可扩展的动态倡导、许多公司参与一起建立的一种开放的、可扩展的动态网页技术标准,目前有网页技术标准,目前有1.01.0和和1.11.1两个版本。在两个版本。在HTMLHTML网页文件网页文件中加入中加入JavaJava程序片段(程序片段(ScriptletScriptlet)和)和JSPJSP标记(标记(tagtag),就构),就构成了成了JSPJSP网页。作为网页。作为JavaJava平台的一部分,平台的一部分,JSPJSP拥有拥有JavaJava编程语编程语言言“一次编写,到处运行一次编写,到处运行”的特点。具有的特点。具有
68、JavaJava技术的所有优技术的所有优点,包括健壮的存储管理和安全性。点,包括健壮的存储管理和安全性。 JavaJava中连接数据库的技术是中连接数据库的技术是JDBCJDBC(Java Database Java Database ConnectivityConnectivity)。很多数据库系统均带有)。很多数据库系统均带有JDBCJDBC驱动程序,驱动程序,JavaJava程序就通过程序就通过JDBCJDBC驱动程序与数据库相连,执行查询、提驱动程序与数据库相连,执行查询、提取数据等操作。取数据等操作。SunSun公司还开发了公司还开发了JDBC-ODBC bridgeJDBC-ODB
69、C bridge,用此技,用此技术术JavaJava程序可以访问带有程序可以访问带有ODBCODBC驱动程序的数据库,目前大多驱动程序的数据库,目前大多数数据库系统都带有数数据库系统都带有ODBCODBC驱动程序,所以驱动程序,所以JavaJava程序能访问诸程序能访问诸如如OracleOracle、SybaseSybase、MS SQL ServerMS SQL Server和和MS AccessMS Access等数据库。等数据库。 第第1111章章 WebWeb数据库数据库 11.2.4 JSP11.2.4 JSP JSPJSP文件名由文件名由. .jspjsp结尾,一般由三部分组成:结
70、尾,一般由三部分组成: (1)(1)静态的静态的HTMLHTML或或XMLXML的组件。的组件。 (2)(2)特殊的特殊的JSPJSP标签,包括指令(标签,包括指令(directivedirective)标)标签和动作(签和动作(actionaction)标签。)标签。 (3)(3)脚本元素脚本元素(scripting element)(scripting element),即一些直,即一些直接嵌入的接嵌入的JavaJava程序,此项是可选的。程序,此项是可选的。 JSPJSP和和ASPASP从形式上非常相似,但它们之间还存从形式上非常相似,但它们之间还存在以下区别:在以下区别:ASP ASP
71、 的编程语言是的编程语言是 VBScript VBScript 之类的之类的脚本语言,脚本语言, JSP JSP 使用的是使用的是 Java Java ,JSPJSP的效率和安的效率和安全性更高,全性更高,JSPJSP的组件方式更方便,的组件方式更方便,JSPJSP的适应平台的适应平台更广。更广。 第第1111章章 WebWeb数据库数据库 11.2.4 JSP11.2.4 JSP 1 1JSPJSP的运行环境的运行环境 JSPJSP的运行环境包括两个部分:的运行环境包括两个部分: (1)Java(1)Java运行环境。运行环境。Java 2 SDKJava 2 SDK(Java 2 Soft
72、ware Java 2 Software Development KitDevelopment Kit)或简称)或简称JDKJDK(Java Development KitJava Development Kit)是是Java 2Java 2平台上进行应用开发所需的开发环境。平台上进行应用开发所需的开发环境。Java 2 Java 2 SDKSDK中包括中包括Java APIJava API、Java CompilerJava Compiler、Java DebuggerJava Debugger、Java Plug-inJava Plug-in、JVMJVM(Java Virtual Mac
73、hineJava Virtual Machine,JavaJava虚拟机)虚拟机)、Java 2 REJava 2 RE(Java 2 Runtime EnvironmentJava 2 Runtime Environment)等,其中)等,其中Java 2 REJava 2 RE是一个标准是一个标准JavaJava应用程序的执行环境。应用程序的执行环境。 (2)(2)支持支持JSPJSP引擎的引擎的WebWeb服务器或服务器或JSPJSP引擎。引擎。JSPJSP引擎是安引擎是安装在装在WebWeb服务器或服务器或WebWeb应用服务器上的。现在许多服务器都应用服务器上的。现在许多服务器都提供
74、对提供对JSPJSP的支持,较为常用的是的支持,较为常用的是TomcatTomcat服务器与服务器与ResinResin服服务器。其中,务器。其中,TomcatTomcat必须配合其他的必须配合其他的WebWeb服务器才能运作,服务器才能运作,ResinResin除了可以与各种常见的除了可以与各种常见的WebWeb服务器配合执行外,还可服务器配合执行外,还可以单独执行。以单独执行。 第第1111章章 WebWeb数据库数据库 11.2.4 JSP11.2.4 JSP2 2JSPJSP的实现方式的实现方式 在在JSPJSP的实现方式中,从一段纯文本代码到一个动态的的实现方式中,从一段纯文本代码到
75、一个动态的WebWeb页面的过程,取决于所使用的页面的过程,取决于所使用的JSPJSP运行系统,也就是运行系统,也就是JSPJSP引擎的引擎的工作方式。各种不同的引擎中共同的一步就是把工作方式。各种不同的引擎中共同的一步就是把JSPJSP代码翻译为代码翻译为以以.java.java结尾的结尾的 ServletServlet代码,然后再调用代码,然后再调用JavaJava编译器,把它编编译器,把它编译成可执行的译成可执行的JavaJava代码(代码(.class.class文件)。文件)。 JSPJSP引擎安装在引擎安装在WebWeb服务器或使用服务器或使用JSPJSP的应用服务器上,它可的应用
76、服务器上,它可以接收客户端对以接收客户端对JSPJSP页面的请求,并且生成页面的请求,并且生成JSPJSP页面响应客户端页面响应客户端请求。一般来讲,请求。一般来讲,JSPJSP引擎都构建于引擎都构建于ServletServlet引擎之上,以引擎之上,以ServletServlet的形式存在。当的形式存在。当JSPJSP页面第一次被调用时,页面第一次被调用时,JSPJSP引擎首先引擎首先把源代码编译成一个把源代码编译成一个Java Java ServletServlet类存储在服务器的内存中,类存储在服务器的内存中,因而第一次执行因而第一次执行JSPJSP页面比较费时,但这样避免了页面比较费时
77、,但这样避免了cgicgi-bin-bin为每为每一个一个HTTPHTTP请求生成一个新进程的问题,也避免了服务器端引用请求生成一个新进程的问题,也避免了服务器端引用所引起的运行时语法分析。以后再执行此所引起的运行时语法分析。以后再执行此JSPJSP页面时,页面时,JSPJSP引擎引擎会先检查它是否比已编译好的会先检查它是否比已编译好的JSPJSP(这实际上已经是(这实际上已经是ServletServlet),),如果是的话才需要重新执行翻译和编译的过程,否则,其执行如果是的话才需要重新执行翻译和编译的过程,否则,其执行速度与执行速度与执行ServletServlet相同。相同。 第第1111
78、章章 WebWeb数据库数据库 11.2.4 JSP11.2.4 JSP3JSP的应用模型的应用模型 (1)(1)简单模型。在简单模型中,浏览器直接调用简单模型。在简单模型中,浏览器直接调用JSPJSP页面,页面,JSPJSP页面自己生成被请求的内容。页面自己生成被请求的内容。JSPJSP页面可以调页面可以调用用JDBCJDBC等组件来生成结果,创建标准的等组件来生成结果,创建标准的HTMLHTML,并将结果,并将结果发送回浏览器。图发送回浏览器。图11.311.3说明了这种简单的说明了这种简单的JSPJSP访问模型。访问模型。 图图11.3 简单模型简单模型浏览器浏览器JSP页面页面JDBC
79、HTML/XML数据库数据库第第1111章章 WebWeb数据库数据库 11.2.4 JSP11.2.4 JSP(2 2)使用)使用ServletServlet 基于基于WebWeb的客户机直接对的客户机直接对ServletServlet提出请求,由提出请求,由ServletServlet生成动态的内容,再将结果捆绑到一个结果对象生成动态的内容,再将结果捆绑到一个结果对象中。中。JSPJSP页面从该对象中访问动态内容,并且将结果返回页面从该对象中访问动态内容,并且将结果返回给浏览器。如图给浏览器。如图11.411.4所示。所示。 图图11.4 JSP11.4 JSP和和ServletServl
80、et结合使用结合使用浏览器浏览器JSPJSP页面页面ServletServlet请求(请求(RequestRequest)响应(响应(ResponseResponse)第第1111章章 WebWeb数据库数据库 11.2.4 JSP11.2.4 JSP(3)(3)采用采用EJBEJB技术的可扩展处理。技术的可扩展处理。 Java BeanJava Bean是一种可重用的是一种可重用的JavaJava组件,它可以被组件,它可以被AppletApplet、ServletServlet、JSPJSP等等JavaJava应用程序调用。应用程序调用。JSPJSP页面可以作为企页面可以作为企业版的业版的J
81、ava BeanJava Bean(Enterprise Java BeanEnterprise Java Bean,EJBEJB)体系结)体系结构中的一个中间层次,在这种情况下,构中的一个中间层次,在这种情况下,JSPJSP页面和后端数页面和后端数据资源之间通过据资源之间通过EJBEJB组件进行交互。如图组件进行交互。如图11.511.5所示。所示。图图11.5 11.5 采用采用EJBEJB技术的可扩展处理技术的可扩展处理浏览器浏览器JSPJSP页面页面RM/IIOPRM/IIOPHTML/XMLHTML/XMLEJBEJB第第1111章章 WebWeb数据库数据库 11.2.4 JSP1
82、1.2.4 JSP4 4JSPJSP的优点的优点 JSPJSP具有以下优点:具有以下优点: (1)(1)将内容生成和显示分离。使用将内容生成和显示分离。使用JSPJSP技术,技术,WebWeb页面开发页面开发人员可以使用人员可以使用HTMLHTML或者或者XMLXML标记来设计和格式化最终页面,同标记来设计和格式化最终页面,同时使用时使用JSPJSP标记或者脚本来生成页面上的动态内容。生成内容标记或者脚本来生成页面上的动态内容。生成内容的逻辑被封装在标记和的逻辑被封装在标记和Java BeanJava Bean组件中,并且捆绑在脚本中,组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。由于生
83、成内容的核心逻辑被封所有的脚本在服务器端运行。由于生成内容的核心逻辑被封装在装在Java BeanJava Bean组件中,这样组件中,这样WebWeb管理人员和页面设计者,能管理人员和页面设计者,能够编辑和使用够编辑和使用JSPJSP页面,而不会影响到内容的生成。同时,这页面,而不会影响到内容的生成。同时,这也有利于进行分工,也有利于进行分工,WebWeb页面人员编写页面人员编写HTMLHTML,ServletServlet程序员程序员在预留的地方插入动态部分即可。在预留的地方插入动态部分即可。 在服务器端,在服务器端,JSPJSP引擎解释引擎解释JSPJSP标记和脚本,生成所请求标记和脚本
84、,生成所请求的内容,并且将结果以的内容,并且将结果以HTMLHTML或者或者XMLXML页面的形式传送给浏览器。页面的形式传送给浏览器。这有助于保护代码,又可保证基于这有助于保护代码,又可保证基于HTMLHTML的的WebWeb浏览器的完全可浏览器的完全可用性。用性。 第第1111章章 WebWeb数据库数据库 11.2.4 JSP11.2.4 JSP (2)(2)生成可重用的组件。绝大多数生成可重用的组件。绝大多数JSPJSP页面依赖于可重页面依赖于可重用的、跨平台的组件(用的、跨平台的组件(Java BeanJava Bean或者或者Enterprise Java Enterprise J
85、ava BeanBean组件)来执行应用程序所要求的更为复杂的处理。开组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,使得这些组发人员能够共享和交换执行普通操作的组件,使得这些组件为更多的使用者或者客户团体所使用。这些组件有助于件为更多的使用者或者客户团体所使用。这些组件有助于将网页和程序相互分离,节约了开发时间,同时充分发挥将网页和程序相互分离,节约了开发时间,同时充分发挥了了JavaJava和其他脚本语言的跨平台的能力和灵活性。和其他脚本语言的跨平台的能力和灵活性。 (3)(3)采用标记简化页面的开发。采用标记简化页面的开发。WebWeb页面开发人员不
86、会页面开发人员不会都是熟悉脚本语言的编程人员。都是熟悉脚本语言的编程人员。JSPJSP技术封装了许多功能,技术封装了许多功能,提供了一系列的提供了一系列的JSPJSP标记。使用他们,能够完成访问标记。使用他们,能够完成访问Java Java BeanBean组件、设置或查询组件的属性以及下载组件、设置或查询组件的属性以及下载AppletApplet等功能,等功能,并且可以通过开发定制化标记库扩展并且可以通过开发定制化标记库扩展JSPJSP的功能。的功能。 (4)(4)一次编写,到处运行。由于一次编写,到处运行。由于JSPJSP页面的内置脚本语页面的内置脚本语言是基于言是基于JavaJava编程
87、语言的,而且所有的编程语言的,而且所有的JSPJSP页面都被编译成页面都被编译成为为Java Java ServletServlet,JSPJSP页面具有页面具有JavaJava技术的所有优点,包括技术的所有优点,包括健壮的存储管理和安全性及跨平台性。健壮的存储管理和安全性及跨平台性。 第第1111章章 WebWeb数据库数据库 11.3 Web11.3 Web数据库访问技术数据库访问技术 11.3.1 ASP+ADO11.3.1 ASP+ADO模式模式 11.3.2 ASP.NET+ADO.NET11.3.2 ASP.NET+ADO.NET模式模式 11.3.3 JSP+JDBC11.3.3
88、 JSP+JDBC模式模式 第第1111章章 WebWeb数据库数据库 11.3.1 ASP+ADO11.3.1 ASP+ADO模式模式 1. ADO1. ADO 数据操作对象数据操作对象ADOADO(ActiveX Data ObjectActiveX Data Object)是)是ASPASP内内置的数据库访问组件,是置的数据库访问组件,是MicrosoftMicrosoft在在OLE DB APIOLE DB API之上提之上提供的一种面向对象的、与语言无关的应用程序编程接口,供的一种面向对象的、与语言无关的应用程序编程接口,它是针对它是针对MicrosoftMicrosoft软件所支持
89、的数据进行操作的有效、软件所支持的数据进行操作的有效、简单、功能强大的方法。简单、功能强大的方法。 OLE DBOLE DB(Object Linking and Embedding Object Linking and Embedding DatabaseDatabase)是)是MicrosoftMicrosoft不同数据源的系统级编程接口。不同数据源的系统级编程接口。它提供存储各种信息的开放标准,规定了一套简化了的它提供存储各种信息的开放标准,规定了一套简化了的各种数据库管理系统的服务接口。各种数据库管理系统的服务接口。 第第1111章章 WebWeb数据库数据库 11.3.1 ASP+A
90、DO11.3.1 ASP+ADO模式模式 ADOADO封装了封装了OLE DBOLE DB中最常用的一些特性。使用中最常用的一些特性。使用ADOADO,可以编写紧凑简明的脚本连接到与可以编写紧凑简明的脚本连接到与OLE DBOLE DB兼容的数据源兼容的数据源或访问与或访问与ODBCODBC兼容的数据库。兼容的数据库。ASPASP应用程序、应用程序、ADOADO和底层和底层数据库之间的关系如图数据库之间的关系如图11.611.6所示。所示。ASPASP应用程序应用程序图图11.6 ASP11.6 ASP应用程序、应用程序、ADOADO和底层数据库之间的关系和底层数据库之间的关系ADOADOOL
91、E DBOLE DB关系查询关系查询引擎引擎游标引擎游标引擎相异查询相异查询引擎引擎OLE DBOLE DBODBCODBCODBCODBCODBCODBCAccessAccessSQLSQLServerServer文件文件索引索引服务器服务器电子电子表格表格数据提供者数据提供者服务提供者服务提供者第第1111章章 WebWeb数据库数据库 11.3.1 ASP+ADO11.3.1 ASP+ADO模式模式 ADOADO对象是一个集合,在其中包含了对象是一个集合,在其中包含了ConnectionConnection对象、对象、RecordsetRecordset对象和对象和CommandComm
92、and对象,还有对象,还有ErrorsErrors、PropertiesProperties、FieldsFields、ParametersParameters四个集合,这四个集合中分别包含四个集合,这四个集合中分别包含ErrorError、PropertyProperty、FieldField、ParameterParameter四种对象。四种对象。 在在ASPASP中通过中通过ADOADO访问数据库,一般要通过以下四个步骤:访问数据库,一般要通过以下四个步骤: (1)(1)创建一个到数据库的创建一个到数据库的ConnectionConnection。 (2)(2)查询一个数据集合,即执行查
93、询一个数据集合,即执行SQLSQL,产生一个,产生一个RecordsetRecordset。 (3)(3)对数据集合进行需要的操作。对数据集合进行需要的操作。 (4)(4)关闭关闭ConnectionConnection。 第第1111章章 WebWeb数据库数据库 11.3.1 ASP+ADO11.3.1 ASP+ADO模式模式2. ASP2. ASP数据库连接实例数据库连接实例 连接连接SQL SERVER2000SQL SERVER2000数据库数据库 ASPASP与服务器的数据库连接有两种方法,一种为通过与服务器的数据库连接有两种方法,一种为通过ODBCODBC建立建立连接,另一种通过
94、连接,另一种通过OLEDBOLEDB建立连接。该实例采用后者建立连接。建立连接。该实例采用后者建立连接。 % language= % % % 建立记录集对象建立记录集对象 set set rsrs= =server.createobject(adodb.recordsetserver.createobject(adodb.recordset) ) rs.openrs.open SQL SQL语句语句,conn,3,2 ,conn,3,2 第第1111章章 WebWeb数据库数据库 11.3.1 ASP+ADO11.3.1 ASP+ADO模式模式 连接连接ORACALORACAL数据库数据库 s
95、et set adoconadocon= =Server.Createobject(adodb.connectionServer.Createobject(adodb.connection) StrDSNStrDSN=Provider=Provider=OraOLEDB.Oracle;PasswordOraOLEDB.Oracle;Password= =密密码码;User ID=;User ID=用户用户ID;DataID;Data Source= Source=服务器名称服务器名称; ;service_nameservice_name= =ipip 建立和数据库建立和数据库mastermas
96、ter的连接的连接 set set ConnConn = = Server.CreateObject(ADODB.ConnectionServer.CreateObject(ADODB.Connection) ) set set RsRs= =Server.CreateObject(ADODB.RecordSetServer.CreateObject(ADODB.RecordSet)第第1111章章 WebWeb数据库数据库 11.3.2 ASP.NET+ADO.NET11.3.2 ASP.NET+ADO.NET模式模式1 1ADO.NETADO.NET ASP.NET ASP.NET中的中的
97、ADO.NETADO.NET和和ASPASP中的中的ADOADO相对应,它是相对应,它是ADOADO的改进版本。的改进版本。在在ADO.NETADO.NET中如图中如图11.711.7所示,通过所示,通过Managed ProviderManaged Provider所提供的应用程所提供的应用程序编程接口序编程接口(API)(API),可以轻松地访问各种数据源的数据,包括,可以轻松地访问各种数据源的数据,包括OLE DBOLE DB所支持的和所支持的和ODBCODBC支持的数据库。支持的数据库。 DataReaderDataReaderSelectCommandSelectCommandIns
98、ertCommandInsertCommandUpdateCommandUpdateCommandDeleteCommandDeleteCommand.NET FrameworkNET Framework数据提供程序数据提供程序ConnectionConnection事物事物CommandCommand参数参数DataAdapterDataAdapterDataSetDataSetDataTableCollectionDataTableCollectionDataRowCollectionDataRowCollectionDataColumnCollectioDataColumnCollect
99、ion nConstraintCollectConstraintCollectionion数据表数据表DataRelationCollectioDataRelationCollection n数据库数据库XMLXML图图11.7 ADO.NET11.7 ADO.NET的体系结构的体系结构第第1111章章 WebWeb数据库数据库 11.3.2 ASP.NET+ADO.NET11.3.2 ASP.NET+ADO.NET模式模式 (1)ADO.NET(1)ADO.NET的对象体系的对象体系 ADO.NETADO.NET中的许多对象都是从中的许多对象都是从ADOADO技术中进化而来的,例技术中进化而
100、来的,例如如ConnectionConnection和和CommandCommand等,也有许多对象是全新的,例如等,也有许多对象是全新的,例如DataReaderDataReader、DataSetDataSet、DataViewDataView、DataAdapterDataAdapter等。等。 为了将数据访问和数据操纵分离,为了将数据访问和数据操纵分离,ADO.NETADO.NET使用了两种组使用了两种组件:件:DataSetDataSet对象和对象和.NET Data Provider.NET Data Provider。 DataSetDataSet对象对象 DataSetData
101、Set对象是一个存在于内存中的数据库,在对象是一个存在于内存中的数据库,在ADO.NETADO.NET中处于核心地位,它提供了一种与数据来源无关的数据表示中处于核心地位,它提供了一种与数据来源无关的数据表示方式,可以表示、存储和管理来自远程或本地的数据库、方式,可以表示、存储和管理来自远程或本地的数据库、XMLXML文件或数据流甚至应用程序的局部数据。一个文件或数据流甚至应用程序的局部数据。一个DataSetDataSet对象包对象包含了一个含了一个DataTableDataTable的集合属性,用来放置一个或多个的集合属性,用来放置一个或多个DataTableDataTable对象。对象。D
102、ataTableDataTable对象对应于关系数据库中的表或对象对应于关系数据库中的表或视图,用来容纳以行列形式组织起来的数据和主键、约束、视图,用来容纳以行列形式组织起来的数据和主键、约束、关系等信息。关系等信息。第第1111章章 WebWeb数据库数据库 11.3.2 ASP.NET+ADO.NET11.3.2 ASP.NET+ADO.NET模式模式 .NET Data Provider.NET Data Provider .NET Data Provider .NET Data Provider是是ADO.NETADO.NET的另一个核心元素,的另一个核心元素,它包含了它包含了Conn
103、ectionConnection、CommandCommand、DataReaderDataReader、DataAdapterDataAdapter对象,对象,.NET.NET程序员使用这些元素来实现对实际数据的操纵。程序员使用这些元素来实现对实际数据的操纵。ConnectionConnection对象用来实现和数据源的连接,是数据访问者和对象用来实现和数据源的连接,是数据访问者和数据源之间的对话通道。数据源之间的对话通道。CommandCommand对象包含提交给实际数据对象包含提交给实际数据库的信息,例如一个查询并返回数据的命令、一个修改数据库的信息,例如一个查询并返回数据的命令、一个修
104、改数据的命令、一个调用数据库存储过程的命令及其参数等。的命令、一个调用数据库存储过程的命令及其参数等。DataReaderDataReader对象提供一个简单方法,允许程序在数据记录间对象提供一个简单方法,允许程序在数据记录间进行只读的、单向的数据访问,虽然功能不如进行只读的、单向的数据访问,虽然功能不如DataSetDataSet强大,强大,但性能更高,在某些场合下往往更能符合应用程序的需要。但性能更高,在某些场合下往往更能符合应用程序的需要。DataAdapterDataAdapter对象充当对象充当DataSetDataSet对象和数据源之间的桥梁,它对象和数据源之间的桥梁,它使用使用C
105、ommandCommand对象,在对象,在ConnectionConnection对象的辅助下访问数据源,对象的辅助下访问数据源,将将CommandCommand对象的执行结果传递给对象的执行结果传递给DataSetDataSet对象,并将对象,并将DataSetDataSet对象中的数据改动回馈给数据源。对象中的数据改动回馈给数据源。 第第1111章章 WebWeb数据库数据库 11.3.2 ASP.NET+ADO.NET11.3.2 ASP.NET+ADO.NET模式模式对于任何形式的数据源,都可以使用对于任何形式的数据源,都可以使用.NET Data .NET Data Provider
106、Provider,从而允许,从而允许.NET.NET应用程序使用这些数据源。应用程序使用这些数据源。.NET.NET框架自带两个框架自带两个Data ProviderData Provider:SQL Server .NET SQL Server .NET Data ProviderData Provider和和OLD DB .NET Data ProviderOLD DB .NET Data Provider,相应地,相应地,上面提到的上面提到的ConnectionConnection、CommandCommand、DataReaderDataReader、DataAdapterDataAd
107、apter对象都有对象都有SQLSQL和和OLE DBOLE DB两个派生类版本。两个派生类版本。第第1111章章 WebWeb数据库数据库 11.3.2 ASP.NET+ADO.NET11.3.2 ASP.NET+ADO.NET模式模式(2) Managed Provider(2) Managed Provider ADO ADO的数据存取采用了两层的基于连接的编程模型。随着多层的数据存取采用了两层的基于连接的编程模型。随着多层应用需求不断增加,于是需要一个无连接的模型,而应用需求不断增加,于是需要一个无连接的模型,而ADO.NETADO.NET的的Managed ProviderManag
108、ed Provider即为一个多层结构的无连接的编程模型。即为一个多层结构的无连接的编程模型。 Managed ProviderManaged Provider提供了提供了DataSetDataSet和数据源之间的联系,包含和数据源之间的联系,包含了存取数据源的一系列接口,它主要包括:了存取数据源的一系列接口,它主要包括: 连接对象连接对象ConnectionConnection、命令对象、命令对象CommandCommand、参数对象、参数对象ParameterParameter提供了数据源和提供了数据源和DataSetDataSet之间的接口,之间的接口,DataSetCommandDat
109、aSetCommand接接口定义了数据列和表映射,并最终取回一个口定义了数据列和表映射,并最终取回一个DataSetDataSet。 数据流提供了高性能的、前向的数据存取机制。通过数据流提供了高性能的、前向的数据存取机制。通过IdataReaderIdataReader,可以高效地访问数据流。,可以高效地访问数据流。 更底层的对象允许连接到数据库,然后执行数据库系统一级更底层的对象允许连接到数据库,然后执行数据库系统一级的特定命令。的特定命令。 第第1111章章 WebWeb数据库数据库 11.3.2 ASP.NET+ADO.NET11.3.2 ASP.NET+ADO.NET模式模式 (3)A
110、DO.NET(3)ADO.NET访问数据库的步骤访问数据库的步骤 由于有了由于有了DataSetDataSet,所以,所以ADO.NETADO.NET访问数据库的步骤变为:访问数据库的步骤变为: 创建一个数据库连接。创建一个数据库连接。 请求一个记录集合。请求一个记录集合。 把记录集合暂存到把记录集合暂存到DataSetDataSet。 如果需要,返回第如果需要,返回第2 2步。步。DataSetDataSet可以容纳多个数据集合。可以容纳多个数据集合。 关闭数据库连接。关闭数据库连接。 在在DataSetDataSet上做所需要的操作。上做所需要的操作。 第第1111章章 WebWeb数据库
111、数据库 11.3.2 ASP.NET+ADO.NET11.3.2 ASP.NET+ADO.NET模式模式 2. ASP.NET2. ASP.NET数据库连接实例数据库连接实例 (1)(1)连接连接SQL SERVER 2000SQL SERVER 2000数据库数据库 SqlDataSourceSqlDataSource控件用于控件用于WebWeb页面上的绑定控件与数据库之页面上的绑定控件与数据库之间的连接。间的连接。SqlDataSourceSqlDataSource控件代表一个通过控件代表一个通过ADO.NETADO.NET连接到连接到SQLSQL数据库提供者的数据源控件。就像其他的数据源
112、控件一样,数据库提供者的数据源控件。就像其他的数据源控件一样,SqlDataSourceSqlDataSource控件可以被绑定到任何支持控件可以被绑定到任何支持DataSourceIDDataSourceID属性的属性的数据绑定控件上。下面的数据绑定控件上。下面的DataSource1.aspxDataSource1.aspx页使用页使用ASP.NET 2.0ASP.NET 2.0数据绑定来访问数据绑定来访问SQL Server PubsSQL Server Pubs数据库的一部分:数据库的一部分: asp:SqlDataSourceasp:SqlDataSource ID= ID=netc
113、onnectsqlservernetconnectsqlserver RunAtRunAt=server=server / /连接字符串连接字符串 ConnectionStringConnectionString= ervererver= =localhostlocalhost; ; database=test; database=test; 第第1111章章 WebWeb数据库数据库 11.3.2 ASP.NET+ADO.NET11.3.2 ASP.NET+ADO.NET模式模式 Integrated Security=SSPIIntegrated Security=SSPI / /将被执行
114、的将被执行的SQLSQL语句语句 SelectCommandSelectCommand=SQL=SQL语句语句 / 该实例连接本地服务器上的该实例连接本地服务器上的testtest数据库。数据库。SqlDataSourceSqlDataSource控件定义了数据源以及对它执行控件定义了数据源以及对它执行的查询,并且的查询,并且DataGridDataGrid的的DataSourceIDDataSourceID属性指向属性指向SqlDataSourceSqlDataSource。当加载该页时,。当加载该页时,SqlDataSourceSqlDataSource控件就会执行查询,并将结果提供给控件
115、就会执行查询,并将结果提供给DataGridDataGrid。 第第1111章章 WebWeb数据库数据库 11.3.2 ASP.NET+ADO.NET11.3.2 ASP.NET+ADO.NET模式模式 (2)(2)连接连接ORACALORACAL数据库数据库 OracleOracle可以理解可以理解SQLSQL语言,因此可以采用语言,因此可以采用SqlDataSourceSqlDataSource控件的连接。在默认情况下,该控件的提供程序是控件的连接。在默认情况下,该控件的提供程序是Microsoft Microsoft SQL Server,SQL Server,所以需要所以需要ASP.
116、NET2.0ASP.NET2.0来重写默认程序提供值。虽来重写默认程序提供值。虽然可以使用通用的然可以使用通用的OLEDBOLEDB提供程序,但是使用本地提供程序,但是使用本地OracleOracle提供提供程序更有效。下面给出一个典型的通用程序更有效。下面给出一个典型的通用OracleOracle连接:连接: / 在数据源控件中,设置在数据源控件中,设置ProviderNameProviderName为为System.Data.OracleClientSystem.Data.OracleClient。在连接字符串中,。在连接字符串中,使用使用Data Source=Oracle8i; Int
117、egrated Data Source=Oracle8i; Integrated Security=SSPISecurity=SSPI。无需指定本地提供程序,因为。无需指定本地提供程序,因为OracleOracle提供程序已经是本地的。提供程序已经是本地的。 第第1111章章 WebWeb数据库数据库 11.3.3 JSP+JDBC11.3.3 JSP+JDBC模式模式1 1JDBCJDBC JDBC JDBC与与ODBCODBC类似,也是一种特殊的类似,也是一种特殊的APIAPI,是,是JavaJava应用程序与数据库的应用程序与数据库的通用接口(通用接口(Java APIJava API)
118、,它规定了),它规定了JavaJava如何与数据库进行交互作用。如何与数据库进行交互作用。JDBCJDBC由一组用由一组用JavaJava语言写的类和接口组成。语言写的类和接口组成。JDBCJDBC与与JavaJava结合,使用户容结合,使用户容易对数据库进行操作。用易对数据库进行操作。用JavaJava和和JDBCJDBC编写的数据库应用软件具有与平台编写的数据库应用软件具有与平台无关的特性,可在各种数据库系统上运行。无关的特性,可在各种数据库系统上运行。 JDBCJDBC访问数据库的过程是:首先用户的浏览器连接到访问数据库的过程是:首先用户的浏览器连接到WebWeb服务器上,服务器上,下载
119、含有下载含有JavaJava小程序的小程序的HTMLHTML页,页,JavaJava小程序在客户端运行,使用小程序在客户端运行,使用JDBCJDBC接接口,直接与数据库服务器交互,并直接把查询结果的口,直接与数据库服务器交互,并直接把查询结果的HTMLHTML页返回给浏览页返回给浏览器。器。 与与ODBCODBC一样,一样,JDBCJDBC提供给程序员的编程接口由两部分组成,即面向提供给程序员的编程接口由两部分组成,即面向应用的编程接口应用的编程接口JDBC APIJDBC API和供底层开发的驱动程序接口和供底层开发的驱动程序接口JDBC Driver APIJDBC Driver API。
120、JDBC APIJDBC API是为应用程序员提供的,是一系列抽象的接口,它使得应用程是为应用程序员提供的,是一系列抽象的接口,它使得应用程序员能够进行数据库连接,执行序员能够进行数据库连接,执行SQLSQL查询,并且得到返回结果。而查询,并且得到返回结果。而JDBC JDBC Driver APIDriver API则是为数据库厂商提供的编程接口。则是为数据库厂商提供的编程接口。 第第1111章章 WebWeb数据库数据库 11.3.3 JSP+JDBC11.3.3 JSP+JDBC模式模式 2 2JSPJSP数据库连接实例数据库连接实例 (1)(1)连接连接SQL SERVER2000SQ
121、L SERVER2000数据库数据库 首先去微软的官方网站下载驱动程序:首先去微软的官方网站下载驱动程序:Microsoft Microsoft SQL server 2000 for JDBCSQL server 2000 for JDBC压缩包,然后把其中的压缩包,然后把其中的mssqlserver.jarmssqlserver.jar文件解压到文件解压到TomcatTomcat服务器文件下的服务器文件下的webappswebappsROOTWEB-INFclassesROOTWEB-INFclasses文件夹下,然后再编写文件夹下,然后再编写连接数据库的程序。连接数据库的程序。 % %/
122、获得连接获得连接 Connection con=Connection con=DriverManager.getConnection(urlDriverManager.getConnection(url,用户名用户名称称,密码密码); ); Statement Statement stmstm= =con.createStatementcon.createStatement();(); / /执行执行SQLSQL语句,获得结果集语句,获得结果集 ResultSetResultSet rsrs= =stm.executeQuery(SQLstm.executeQuery(SQL语句语句););
123、rs.closers.close();();第第1111章章 WebWeb数据库数据库 11.3.3 JSP+JDBC11.3.3 JSP+JDBC模式模式 (2)(2)连接连接ORACALORACAL数据库数据库 % % 第第1111章章 WebWeb数据库数据库 11.4 web11.4 web数据管理数据管理 11.4.1 XML 11.4.1 XML 11.4.2 Web11.4.2 Web数据存储数据存储 11.4.3 Web11.4.3 Web数据查询数据查询 11.4.4 Web11.4.4 Web信息集成信息集成 11.4.5 Web Services11.4.5 Web Se
124、rvices 第第1111章章 WebWeb数据库数据库 11.4.1 XML11.4.1 XML 可扩展标记语言(可扩展标记语言(XMLXML,Extensible Markup Extensible Markup LanguageLanguage)是标准通用标记语言()是标准通用标记语言(SGMLSGML,Standard Standard Generalized Markup LanguageGeneralized Markup Language)的子集,也是一种元语言。)的子集,也是一种元语言。XMLXML包含一组基本规则,利用这种规则可以创建针对特定应包含一组基本规则,利用这种规则可
125、以创建针对特定应用领域的标记语言。用领域的标记语言。第第1111章章 WebWeb数据库数据库 11.4.1 XML11.4.1 XML1. XML1. XML的组成的组成 XMLXML技术主要包括三大模块结构组件:文档类型定义(技术主要包括三大模块结构组件:文档类型定义(DTDDTD,Document Type DefinitionDocument Type Definition)或)或XMLXML模式(模式(XML SchemaXML Schema)、可)、可扩展样式语言(扩展样式语言(XSLXSL,Extensible Extensible StylesheetStylesheet La
126、nguage Language)及可)及可扩展链接语言(扩展链接语言(XLLXLL,Extensible Link LanguageExtensible Link Language)。同时,还)。同时,还存在一些与存在一些与XMLXML有关的重要技术规范,像文档对象模型(有关的重要技术规范,像文档对象模型(DOMDOM,Document Object ModelDocument Object Model)和)和XMLXML简单应用程序接口(简单应用程序接口(SAXSAX,Simple API for XMLSimple API for XML)等。)等。 其中,其中,DTDDTD和和Schem
127、aSchema用于规定用于规定XMLXML文件的逻辑结构,定义文件的逻辑结构,定义XMLXML文件中的元素、元素属性及其之间的关系,可帮助文件中的元素、元素属性及其之间的关系,可帮助XMLXML的分析程的分析程序校验序校验XMLXML文件标记的合法性。文件标记的合法性。XSLXSL是用于表达是用于表达XMLXML文档式样的语文档式样的语言,为客户端的言,为客户端的WebWeb浏览器改变显示格式,提供了浏览器改变显示格式,提供了XMLXML文档显示文档显示和打印输出时的格式化排版功能。和打印输出时的格式化排版功能。XLLXLL进一步扩展文档之间的超进一步扩展文档之间的超媒体链接及链接附加处理功能
128、,将目前的简单链接扩展为双向、媒体链接及链接附加处理功能,将目前的简单链接扩展为双向、多重链接。多重链接。 第第1111章章 WebWeb数据库数据库 11.4.1 XML11.4.1 XML(1)(1)文档类型定义文档类型定义 规范的规范的XMLXML文档都必须有良好的格式。但其数据结构文档都必须有良好的格式。但其数据结构可以被规定,也可以不被规定。如果被规定,那么该文可以被规定,也可以不被规定。如果被规定,那么该文档是有效的,否则是无效的。档是有效的,否则是无效的。DTDDTD是一种用来定义有效文是一种用来定义有效文件结构的语言,它作为基本件结构的语言,它作为基本XMLXML文件的语法,是
129、文件的语法,是XMLXML语言语言的一部分。的一部分。DTDDTD可以定义元素的嵌套规则以及数据的基本可以定义元素的嵌套规则以及数据的基本类型。类型。 DTDDTD一般包括标记声明或参数实体引用,有时还包括一般包括标记声明或参数实体引用,有时还包括外部实体的外部实体的IDID。标记声明可以是元素类型声明、属性表。标记声明可以是元素类型声明、属性表声明、实体声明或符号声明。声明、实体声明或符号声明。 第第1111章章 WebWeb数据库数据库 11.4.1 XML11.4.1 XML 元素类型声明元素类型声明 元素是元素是XMLXML文档的基础。元素类型声明限制了元素的文档的基础。元素类型声明限
130、制了元素的内容,通常也限定了子元素的类型。元素类型的声明以内容,通常也限定了子元素的类型。元素类型的声明以“!ELEMENT”结束,二者之间是对声明结束,二者之间是对声明元素的名称和内容的说明。元素的名称和内容的说明。 属性表声明属性表声明 属性表声明用于定义与给定元素类型有关的属性集,属性表声明用于定义与给定元素类型有关的属性集,它还可以指定这些属性的类型限制并能提供缺省值。通它还可以指定这些属性的类型限制并能提供缺省值。通常属性表声明紧跟在元素类型声明之后。属性表声明以常属性表声明紧跟在元素类型声明之后。属性表声明以“! ATTLIST”结束,中间是元素名称和结束,中间是元素名称和属性定义
131、。其定义由属性名称、属性类型和缺省值声明属性定义。其定义由属性名称、属性类型和缺省值声明组成。组成。第第1111章章 WebWeb数据库数据库 11.4.1 XML11.4.1 XML 实体声明实体声明 XMLXML的文档可以看作是实体的组合。实体声明后就可的文档可以看作是实体的组合。实体声明后就可以在其它地方引用。在解析以在其它地方引用。在解析XMLXML文档时,解析器将用文本文档时,解析器将用文本或二进制数据来代替该实体。实体声明有通用实体声明或二进制数据来代替该实体。实体声明有通用实体声明和参数实体声明两大类。通用实体声明在引用时用和参数实体声明两大类。通用实体声明在引用时用“&”&”开
132、始以开始以“;”结束,参数实体声明引用时用结束,参数实体声明引用时用“%”%”开始以开始以“;”结束。结束。 符号声明符号声明 符号声明使用自定义的符号来识别一个外部的二进符号声明使用自定义的符号来识别一个外部的二进制实体格式,因此可以把一个符号声明看作是格式声明。制实体格式,因此可以把一个符号声明看作是格式声明。当然也可以将这样的声明用于其它类型的声明,像属性当然也可以将这样的声明用于其它类型的声明,像属性表声明和实体声明。表声明和实体声明。 第第1111章章 WebWeb数据库数据库 11.4.1 XML11.4.1 XML(2)XML Schema(2)XML Schema DTD DT
133、D本身并不是本身并不是XMLXML,而且它只提供非常有限的数据,而且它只提供非常有限的数据类型,缺乏对类型,缺乏对XMLXML文档的内容及语义的约束机制,文档的内容及语义的约束机制,DTDDTD中中的内容模型也是不开放的。的内容模型也是不开放的。DTDDTD的这些缺陷促成了的这些缺陷促成了XML XML SchemaSchema的产生。的产生。 XML SchemaXML Schema为一类文档建立了一个模式,规范了文为一类文档建立了一个模式,规范了文档中的标签和文本可能的组合形式。它不仅包括了档中的标签和文本可能的组合形式。它不仅包括了DTDDTD能能实现的所有功能,而且它本身就是规范的实现
134、的所有功能,而且它本身就是规范的XMLXML文档。文档。 第第1111章章 WebWeb数据库数据库 11.4.1 XML11.4.1 XML XML SchemaXML Schema提供了一系列新特色,大大弥补了提供了一系列新特色,大大弥补了DTDDTD的的不足:不足: 丰富的数据类型。丰富的数据类型。XML SchemaXML Schema支持的数据类型包支持的数据类型包括数字型、布尔型、整型和日期时间等,而且它还支持括数字型、布尔型、整型和日期时间等,而且它还支持由这些简单类型生成的更复杂的类型。由这些简单类型生成的更复杂的类型。 可以由用户自定义数据类型。可以由用户自定义数据类型。 支
135、持属性分组。属性的应用范围是多种多样的,支持属性分组。属性的应用范围是多种多样的,有的是针对所有元素,有的则专门针对图形元素。有的是针对所有元素,有的则专门针对图形元素。 原型可以更新。原型可以更新。DTDDTD定义的内容模式是封闭的,定义的内容模式是封闭的,而而XML SchemaXML Schema定义的内容模式是开放的,可以随时更新。定义的内容模式是开放的,可以随时更新。第第1111章章 WebWeb数据库数据库 11.4.1 XML11.4.1 XML(3)(3)可扩展样式语言可扩展样式语言 XSLXSL本身便是本身便是XMLXML的应用,它基于的应用,它基于XMLXML语法,共分为两
136、部语法,共分为两部分:第一部分分:第一部分XSLXSL转换工具(转换工具(XSLTXSLT,XSL TransformationXSL Transformation),),负责将负责将XMLXML文档转换为可浏览或可输出的格式;第二部分文档转换为可浏览或可输出的格式;第二部分XSLXSL格式对象(格式对象(XSL-FOXSL-FO,XSL-Formatted ObjectXSL-Formatted Object),提供大),提供大量的格式化命令,可用来配合印刷或屏幕显示,精确地设量的格式化命令,可用来配合印刷或屏幕显示,精确地设定外观样式。利用定外观样式。利用XSLXSL,一个,一个XMLXM
137、L文档可以根据不同的表示文档可以根据不同的表示要求有不同的表示形式。要求有不同的表示形式。 一个一个XMLXML文档的显示过程如下:首先根据文档的显示过程如下:首先根据XMLXML文档构造文档构造源树,然后根据给定的源树,然后根据给定的XSLXSL将这个源树转换为可以显示的结将这个源树转换为可以显示的结果树,这个过程称作树转换,最后再按照果树,这个过程称作树转换,最后再按照FOFO解释结果树,解释结果树,产生一个可以在屏幕上、纸上、语音设备或其它媒体中输产生一个可以在屏幕上、纸上、语音设备或其它媒体中输出的结果,这个过程称作格式化出的结果,这个过程称作格式化 。第第1111章章 WebWeb数
138、据库数据库 11.4.1 XML11.4.1 XML(4 4)XLinkXLink 除了能灵活地组织文档以外,除了能灵活地组织文档以外,XMLXML还存在引用和链接还存在引用和链接到其它的资源和文档的机制,这种机制就是到其它的资源和文档的机制,这种机制就是XLinkXLink。在。在XLinkXLink中,链接(中,链接(linklink)是指由)是指由XLinkXLink链接元素定义的两链接元素定义的两个或两个以上资源之间或资源的各部分之间的一种关系。个或两个以上资源之间或资源的各部分之间的一种关系。其中资源被定义为信息或服务的任何可定位的单元。其中资源被定义为信息或服务的任何可定位的单元。
139、 XLinkXLink可以实现使用可以实现使用HTMLHTML的基于的基于URLURL超文本链接和定超文本链接和定位可获得的任何功能。除此之外,它还支持多方位的链位可获得的任何功能。除此之外,它还支持多方位的链接,即以多个方向同时进行链接。在接,即以多个方向同时进行链接。在XLinkXLink中,任何中,任何XMLXML元素都可以成为链接元素。元素都可以成为链接元素。XLinkXLink还能通过链接文件建立还能通过链接文件建立间接链接,允许对间接链接,允许对XMLXML文档中的特定信息单元进行链接。文档中的特定信息单元进行链接。第第1111章章 WebWeb数据库数据库 11.4.1 XML1
140、1.4.1 XML(5)DOM(5)DOM DOM DOM是基于树结构的程序访问以及维护是基于树结构的程序访问以及维护HTMLHTML和和XMLXML文文档的应用程序接口(档的应用程序接口(APIAPI)。它定义了表示和处理文档的)。它定义了表示和处理文档的接口和对象、这些接口和对象的语义,以及它们之间的接口和对象、这些接口和对象的语义,以及它们之间的关系。关系。DOMDOM以要求的方式处理以要求的方式处理XMLXML文档信息,使应用程序文档信息,使应用程序或编程语言可以通过节点树访问文档的内容。或编程语言可以通过节点树访问文档的内容。DOMDOM定义了定义了HTMLHTML文档和文档和XML
141、XML文档的逻辑结构,给出了访问和处理文档文档的逻辑结构,给出了访问和处理文档的方法。在的方法。在DOMDOM中,中,XMLXML文档具有类似于树的逻辑结构,文档具有类似于树的逻辑结构,其中树的节点表示的是对象而不是数据结构。利用其中树的节点表示的是对象而不是数据结构。利用DOMDOM,程序开发人员可以动态地创建文档,遍历文档结构,增程序开发人员可以动态地创建文档,遍历文档结构,增加、删除或修改元素和文档内容,改变文档的显示方式加、删除或修改元素和文档内容,改变文档的显示方式等等。等等。 第第1111章章 WebWeb数据库数据库 11.4.1 XML11.4.1 XML(6 6)SAXSAX
142、 SAX SAX是一个是一个XMLXML的的JavaJava应用程序接口标准,应用程序接口标准,JavaJava应用应用程序可以使用支持程序可以使用支持SAXSAX的的XMLXML解析器来接受解析事件。使解析器来接受解析事件。使用用SAXSAX比使用比使用DOMDOM要节省很多内存开销,特别当应用程序要节省很多内存开销,特别当应用程序只对一个大型只对一个大型XMLXML文档中的某些元素感兴趣时更是如此。文档中的某些元素感兴趣时更是如此。但但DOMDOM提供了更丰富的程序接口。提供了更丰富的程序接口。 第第1111章章 WebWeb数据库数据库 11.4.1 XML11.4.1 XML2. XM
143、L2. XML的特点的特点 (1)(1)开放性。开放性。XMLXML开放性的基础是经过验证的标准技开放性的基础是经过验证的标准技术,在市场上有许多成熟软件可用来帮助编程、管理,术,在市场上有许多成熟软件可用来帮助编程、管理,XMLXML解析器可以使用编程的方法载入一个解析器可以使用编程的方法载入一个XMLXML的文档。的文档。XMLXML支持复用文档片段,使用者可自创或与他人共享标签,支持复用文档片段,使用者可自创或与他人共享标签,可定义无限量的标注。可定义无限量的标注。 (2)(2)可扩展性。可扩展性。XMLXML是摒弃了是摒弃了SGMLSGML中一些复杂性,并中一些复杂性,并考虑到适合考虑
144、到适合WebWeb特性的一个子集。它和特性的一个子集。它和SGMLSGML一样是元语言,一样是元语言,可以定义其它的语言。可以定义其它的语言。XMLXML的标记是用户定义的,所以从的标记是用户定义的,所以从理论上讲,其类型的数量可以是无限的。理论上讲,其类型的数量可以是无限的。 (3)(3)交互性好。用户与应用进行交互时,使用交互性好。用户与应用进行交互时,使用XMLXML可可以非常方便地在本地排序、过滤和进行其它的数据操作,以非常方便地在本地排序、过滤和进行其它的数据操作,不需要与服务器进行交互,减轻了服务器的负担。不需要与服务器进行交互,减轻了服务器的负担。 第第1111章章 WebWeb
145、数据库数据库 11.4.1 XML11.4.1 XML (4)(4)语义性强。语义性强。XMLXML可以自行设计有意义的标记,便于可以自行设计有意义的标记,便于异构系统之间的数据交换和信息检索,实现机器与机器之异构系统之间的数据交换和信息检索,实现机器与机器之间的信息交换。间的信息交换。 (5)(5)简单、通用。简单、通用。XMLXML规范简单,用解析器处理所创建规范简单,用解析器处理所创建的标记语言,支持世界上大多数文字,拥有国际化的编码的标记语言,支持世界上大多数文字,拥有国际化的编码标准。任意两个系统,不论其操作系统、编程语言及硬件标准。任意两个系统,不论其操作系统、编程语言及硬件结构如
146、何,都可交换结构如何,都可交换XMLXML信息,进行互操作。信息,进行互操作。 (6)(6)半结构化。半结构化数据是介于严格结构化的数据半结构化。半结构化数据是介于严格结构化的数据(如关系数据库中的数据)和完全无结构的数据(如声音,(如关系数据库中的数据)和完全无结构的数据(如声音,图像文件)之间的数据形式。图像文件)之间的数据形式。XMLXML文档采用可嵌套的成对表文档采用可嵌套的成对表示数据元素的方法,即对复杂事物的描述运用了类与层次示数据元素的方法,即对复杂事物的描述运用了类与层次的概念来表达,可处理半结构化的数据类型,可与数据库的概念来表达,可处理半结构化的数据类型,可与数据库的结构化
147、数据之间进行交互。的结构化数据之间进行交互。 第第1111章章 WebWeb数据库数据库 11.4.1 XML11.4.1 XML3. XML3. XML的应用的应用 (1)XML(1)XML的应用范围的应用范围 XMLXML的应用主要体现在以下四个方面:的应用主要体现在以下四个方面: 网络用户在两个或更多异质数据库之间进行通信的应用。网络用户在两个或更多异质数据库之间进行通信的应用。这主要源于这主要源于XMLXML的自定义性和自解释功能以及可扩展性、标准性等。的自定义性和自解释功能以及可扩展性、标准性等。可统一各种不同数据源的表示方法,从而屏蔽了操作系统、编程可统一各种不同数据源的表示方法,
148、从而屏蔽了操作系统、编程语言以及硬件设置的不同,实现了互操作。语言以及硬件设置的不同,实现了互操作。 需要把大部分处理从需要把大部分处理从WebWeb服务器转到客户端的应用。应用服务器转到客户端的应用。应用XMLXML将处理数据的主动权交给客户端,减轻了将处理数据的主动权交给客户端,减轻了WebWeb服务器的负担。服务器的负担。 需要客户端将同样的数据以不同的浏览形式提供给不同的需要客户端将同样的数据以不同的浏览形式提供给不同的用户应用。用户应用。 需要智能需要智能WebWeb代理(代理(ProxyProxy)根据个人用户的需要增减信息)根据个人用户的需要增减信息内容的应用。内容的应用。 第第
149、1111章章 WebWeb数据库数据库 11.4.1 XML11.4.1 XML (2)(2)建立建立XMLXML应用的步骤应用的步骤 建立一个建立一个XMLXML应用通常需要遵循以下主要步骤应用通常需要遵循以下主要步骤: : 选择或编写一个选择或编写一个DTDDTD或或SchemaSchema。 生成生成XMLXML文档。可以将文档。可以将DTDDTD或或SchemaSchema看成模板,填看成模板,填入需要的数据。入需要的数据。 解析解析XMLXML文档。解析可以选择文档。解析可以选择SAXSAX或或DOMDOM标准,目前标准,目前已有各种语言的多种解析器提供。已有各种语言的多种解析器提供
150、。 显示显示XMLXML文档。如果所使用的浏览器可以显示文档。如果所使用的浏览器可以显示XMLXML,那么,直接将,那么,直接将XMLXML文档发送给浏览器,否则,使用文档发送给浏览器,否则,使用XSLXSL将将XMLXML翻译成浏览器可处理的内容。如果还想做更复杂的排翻译成浏览器可处理的内容。如果还想做更复杂的排序和重排结构,可以使用序和重排结构,可以使用DOMDOM。 第第1111章章 WebWeb数据库数据库 11.4.2 Web11.4.2 Web数据存储数据存储 目前,目前,WebWeb数据的存储方法主要有以下几种:数据的存储方法主要有以下几种: (1)(1)使用基于文件系统的存储管
151、理技术使用基于文件系统的存储管理技术 这种技术是将这种技术是将XMLXML数据存储到文件系统中。数据存储到文件系统中。HTMLHTML的存储管的存储管理都是基于这种平面的文件系统。对理都是基于这种平面的文件系统。对XMLXML而言,主要方法是将而言,主要方法是将XMLXML数据以二进制大对象(数据以二进制大对象(BLOBBLOB,Binary Large ObjectBinary Large Object)的)的形式进行存储,然后在每一次使用时将它进行解析。由于反形式进行存储,然后在每一次使用时将它进行解析。由于反复解析,破坏了复解析,破坏了XMLXML的结构,所以这种方法有很大的缺陷。的结构
152、,所以这种方法有很大的缺陷。 (2)(2)使用基于层次数据库的存储管理技术使用基于层次数据库的存储管理技术 由于由于XMLXML本身是层次结构的,因此可以将本身是层次结构的,因此可以将XMLXML数据存储在数据存储在层次数据库中。在层次数据库中,可以编写查询语句对数据层次数据库中。在层次数据库中,可以编写查询语句对数据进行查询。但层次数据库技术不成熟,而且操作复杂,因此进行查询。但层次数据库技术不成熟,而且操作复杂,因此这也不是一种很有效的方法。这也不是一种很有效的方法。 第第1111章章 WebWeb数据库数据库 11.4.2 Web11.4.2 Web数据存储数据存储 (3)(3)建立一个
153、具有特定目的的存储半结构化数据的数据库系统建立一个具有特定目的的存储半结构化数据的数据库系统 这种方法建立诸如这种方法建立诸如LoreLore、StrudelStrudel的数据库系统,把半结构化数据的数据库系统,把半结构化数据存储在半结构化数据仓库中。系统通过特别设计的结构和索引,使用一存储在半结构化数据仓库中。系统通过特别设计的结构和索引,使用一定的查询优化技术对定的查询优化技术对XMLXML数据进行查询。数据进行查询。 (4)(4)使用基于关系数据库的存储管理技术使用基于关系数据库的存储管理技术 在这种方法中,在这种方法中,XMLXML数据被映射为关系模式下的表,以半结构化查数据被映射为
154、关系模式下的表,以半结构化查询语言提出的查询被翻译为询语言提出的查询被翻译为SQLSQL查询。查询。OracleOracle、MicrosoftMicrosoft、IBMIBM公司已公司已经开发出相应的工具来支持这种方法,在它们各自的经开发出相应的工具来支持这种方法,在它们各自的RDBMSRDBMS基础上存储基础上存储XMLXML数据。数据。 (5)(5)使用基于面向对象数据库的存储管理技术使用基于面向对象数据库的存储管理技术 面向对象数据库用自身的方法、关系和语义来管理分层面向对象数据库用自身的方法、关系和语义来管理分层XMLXML树,把树,把XMLXML文档中的元素映射为对象数据库的中的对
155、象,同时提供了强大的导文档中的元素映射为对象数据库的中的对象,同时提供了强大的导航和链接功能。虽然面向对象数据库的体系结构非常适合存储航和链接功能。虽然面向对象数据库的体系结构非常适合存储XMLXML数据,数据,但由于它本身的技术不够成熟,限制了它的应用。但由于它本身的技术不够成熟,限制了它的应用。 第第1111章章 WebWeb数据库数据库 11.4.3 Web11.4.3 Web数据查询数据查询1. Web1. Web查询技术查询技术 目前目前WebWeb上的查询主要基于搜索引擎的关键词索引技术,按照上的查询主要基于搜索引擎的关键词索引技术,按照WebWeb文档内容与查询关键词的相似度,对
156、查询结果进行排序。但是,文档内容与查询关键词的相似度,对查询结果进行排序。但是,由于用户不了解搜索引擎中文档模型的具体构造,给出的查询关键由于用户不了解搜索引擎中文档模型的具体构造,给出的查询关键词很难与所查文档精确匹配,检索效果不理想。因此,出现了一些词很难与所查文档精确匹配,检索效果不理想。因此,出现了一些新技术来从各方面改善信息查询的性能,主要包括:新技术来从各方面改善信息查询的性能,主要包括: (1)(1)基于链接的相关度排序基于链接的相关度排序 链接反映了网页间的引用关系,链接中的文本信息对链接的目链接反映了网页间的引用关系,链接中的文本信息对链接的目标网页进行了概括,这种概括在一定
157、程度上比网页自身的标题、关标网页进行了概括,这种概括在一定程度上比网页自身的标题、关键词和摘要等概括更为客观、准确。因此,出现了一些基于链接的键词和摘要等概括更为客观、准确。因此,出现了一些基于链接的相关度排序方法,作为基本排序方法的补充。例如,相关度排序方法,作为基本排序方法的补充。例如,StanfordStanford大学大学研究的研究的PageRankPageRank算法,这类方法通过构造算法,这类方法通过构造WebWeb上网页间的引用图,并上网页间的引用图,并综合考虑网页被引用的次数以及链接的源网页的重要性,来判断链综合考虑网页被引用的次数以及链接的源网页的重要性,来判断链接的目标页面
158、的重要性。接的目标页面的重要性。 第第1111章章 WebWeb数据库数据库 11.4.3 Web11.4.3 Web数据查询数据查询 (2)(2)基于概念的检索技术基于概念的检索技术 自然语言中,词语的同义与多义现象较为普遍,导致基于关键自然语言中,词语的同义与多义现象较为普遍,导致基于关键词的查询不够准确,也不完全。因此,一些搜索引擎开始在基于关词的查询不够准确,也不完全。因此,一些搜索引擎开始在基于关键词查询的基础上,引入基于概念的检索。基于概念的检索,利用键词查询的基础上,引入基于概念的检索。基于概念的检索,利用词条在概念上的相关性,扩展查询请求,同时检索包含查询关键词词条在概念上的相
159、关性,扩展查询请求,同时检索包含查询关键词同义词的文档,从而提高了查全率。同义词的文档,从而提高了查全率。 (3)(3)基于相关度的反馈基于相关度的反馈 在很多情况下,用户的初始查询请求并不准确。基于相关度的在很多情况下,用户的初始查询请求并不准确。基于相关度的反馈,通过对查询请求不断修正,以提高查询的准确度。用户提出反馈,通过对查询请求不断修正,以提高查询的准确度。用户提出查询请求后,系统按照相关度对查询结果排序,并将结果反馈给用查询请求后,系统按照相关度对查询结果排序,并将结果反馈给用户,用户对查询结果中文档的相关性进行评价,所有标记为户,用户对查询结果中文档的相关性进行评价,所有标记为“
160、相关相关”的文档视为正反馈,标记为的文档视为正反馈,标记为“不相关不相关”的文档视为负反馈,系统的文档视为负反馈,系统根据用户的反馈对查询进行修正,从而提高了系统的查询准确度。根据用户的反馈对查询进行修正,从而提高了系统的查询准确度。 第第1111章章 WebWeb数据库数据库 11.4.3 Web11.4.3 Web数据查询数据查询 (4)(4)检索结果的联机聚类检索结果的联机聚类 聚类是将相关文档的集合分为若干个簇,要求同一聚类是将相关文档的集合分为若干个簇,要求同一簇内文档内容的相关度尽可能大,不同簇内文档内容的簇内文档内容的相关度尽可能大,不同簇内文档内容的相关度尽可能小。如果一次聚类
161、生成的簇中仍然包含大相关度尽可能小。如果一次聚类生成的簇中仍然包含大量文档,可以对该簇中的文档再次聚类得到若干个子簇。量文档,可以对该簇中的文档再次聚类得到若干个子簇。这样,用户就可以只浏览那些他们认为与查询最相关的这样,用户就可以只浏览那些他们认为与查询最相关的簇,减少了所需浏览网页的数量,提高了查询效率。簇,减少了所需浏览网页的数量,提高了查询效率。 此外,智能此外,智能AgentAgent等技术也开始应用于等技术也开始应用于WebWeb信息查询,信息查询,以提高以提高WebWeb信息查询的准确度,并向用户提供个性化的服信息查询的准确度,并向用户提供个性化的服务。务。 第第1111章章 W
162、ebWeb数据库数据库 11.4.3 Web11.4.3 Web数据查询数据查询2 2WebWeb查询语言查询语言 (1)Web(1)Web查询语言分类查询语言分类 WebWeb查询语言主要包括基于查询语言主要包括基于HTMLHTML的查询语言和基于的查询语言和基于XMLXML的查询语言。的查询语言。 基于基于HTMLHTML的查询语言的查询语言 基于基于HTMLHTML的查询语言分为第的查询语言分为第1 1代代WebWeb查询语言和第查询语言和第2 2代代WebWeb查询语言。查询语言。 第第1 1代代WebWeb查询语言,例如查询语言,例如W3QLW3QL和和WebSQLWebSQL,综合
163、了文档中出现的文本,综合了文档中出现的文本模式和描述链接结构的图模式,目的是将基于关键词查询的搜索引擎技模式和描述链接结构的图模式,目的是将基于关键词查询的搜索引擎技术和数据库系统中结构化查询语言技术结合在一起,实现类似于从数据术和数据库系统中结构化查询语言技术结合在一起,实现类似于从数据库中查询数据的查询表达方式,增强了用户查询库中查询数据的查询表达方式,增强了用户查询WebWeb信息的表达能力。信息的表达能力。 第第2 2代代WebWeb查询语言,例如查询语言,例如WebOQLWebOQL和和StruQLStruQL,提供了对,提供了对WebWeb对象内部结对象内部结构的操纵功能,支持对链
164、接模型的引用,以及对有序集合和记录的更自构的操纵功能,支持对链接模型的引用,以及对有序集合和记录的更自然的数据表达方式。与第然的数据表达方式。与第1 1代代WebWeb查询语言不同,第查询语言不同,第2 2代代WebWeb查询语言对查询语言对WebWeb文档的内部结构和文档间的链接建模。这些语言提供了创建复杂结构的文档的内部结构和文档间的链接建模。这些语言提供了创建复杂结构的查询结果的能力。由于查询结果的能力。由于WebWeb上的数据大多是半结构的,这些语言还强调对上的数据大多是半结构的,这些语言还强调对半结构化特性的支持。半结构化特性的支持。第第1111章章 WebWeb数据库数据库 11.
165、4.3 Web11.4.3 Web数据查询数据查询 基于基于XMLXML的查询语言的查询语言 基于基于XMLXML查询语言分为单文档查询语言、图形化查询语言和多文查询语言分为单文档查询语言、图形化查询语言和多文档查询语言。档查询语言。 单文档查询语言,例如单文档查询语言,例如XSLXSL和和XQLXQL,是最基本的,是最基本的XMLXML查询语言。其查询语言。其基本原理是从单个基本原理是从单个XMLXML文档中抽取信息,查询语句用字符串表达,并文档中抽取信息,查询语句用字符串表达,并可以作为可以作为URLURL的一个参数传递。这类语言的主要缺点是不能连接两个的一个参数传递。这类语言的主要缺点是
166、不能连接两个不同的文档,表达能力有限。不同的文档,表达能力有限。 图形化查询语言,例如图形化查询语言,例如XML-GLXML-GL,通过,通过XML-GDMXML-GDM(XML Graphical XML Graphical Data ModelData Model)数据模型表达)数据模型表达XMLXML文档和文档和DTDDTD,并以特定接口实现可视,并以特定接口实现可视化的查询,因此适用于用户界面友好的查询系统。化的查询,因此适用于用户界面友好的查询系统。 多文档查询语言,例如多文档查询语言,例如LORELLOREL和和XML-QLXML-QL,具有,具有SQL/OQLSQL/OQL语言的
167、风语言的风格,可以在不同的数据源之间进行格,可以在不同的数据源之间进行XMLXML数据的查询、信息交换和信息数据的查询、信息交换和信息集成。集成。 第第1111章章 WebWeb数据库数据库 11.4.3 Web11.4.3 Web数据查询数据查询 (2)Web(2)Web查询语言的评价因素查询语言的评价因素 WebWeb查询语言的目的是从查询语言的目的是从WebWeb文档中抽取信息,并对抽取出的信息进文档中抽取信息,并对抽取出的信息进行重构,因此它需要从如下几个方面加以考虑:行重构,因此它需要从如下几个方面加以考虑: 数据模型数据模型 为了查询为了查询WebWeb文档中的信息,必须对文档中的
168、信息,必须对WebWeb文档和网站结构建模,由于文档和网站结构建模,由于WebWeb信息的分布性、异构性和动态性,通常采用边标记图模型、半结构化信息的分布性、异构性和动态性,通常采用边标记图模型、半结构化数据模型,以及关系模型和对象关系模型等数据模型。数据模型,以及关系模型和对象关系模型等数据模型。 表达能力表达能力 查询语言能够表达基本的查询操作。对于链接等特殊结构,查询语言能够表达基本的查询操作。对于链接等特殊结构,WebWeb查询查询语言能够支持路径表达,通过链接结构完成信息查询。对半结构的特征,语言能够支持路径表达,通过链接结构完成信息查询。对半结构的特征,WebWeb查询语言能够匹配
169、事先不清楚的结构,并通过文本模式表达式匹配文查询语言能够匹配事先不清楚的结构,并通过文本模式表达式匹配文本内容。本内容。WebWeb查询语言还应该具备对查询结果的重构能力,按照用户的要查询语言还应该具备对查询结果的重构能力,按照用户的要求输出查询结果。求输出查询结果。 语义与合成语义与合成 查询语言应该具有精确的语义,实现查询语言的转化和优化。合成查询语言应该具有精确的语义,实现查询语言的转化和优化。合成是一个查询的输出可以作为另一个查询的输入。是一个查询的输出可以作为另一个查询的输入。第第1111章章 WebWeb数据库数据库 11.4.4 Web11.4.4 Web信息集成信息集成1. W
170、eb1. Web信息集成系统信息集成系统 WebWeb信息集成系统的目标是支持对信息集成系统的目标是支持对Web Web 上多个数据源的查询。上多个数据源的查询。WebWeb信息集成系统主要包括采用数据仓库技术的信息集成系统和采用信息集成系统主要包括采用数据仓库技术的信息集成系统和采用中介技术的信息集成系统。中介技术的信息集成系统。 采用数据仓库技术的采用数据仓库技术的WebWeb信息集成系统,将从多个数据源中抽取信息集成系统,将从多个数据源中抽取出的数据装入数据仓库中,用户查询直接映射到数据仓库上。这种出的数据装入数据仓库中,用户查询直接映射到数据仓库上。这种系统建立的过程简单。但是当数据源
171、发生变化时,数据仓库中的数系统建立的过程简单。但是当数据源发生变化时,数据仓库中的数据需要相应更新,数据即时更新的效率会影响系统的可用性。据需要相应更新,数据即时更新的效率会影响系统的可用性。 第第1111章章 WebWeb数据库数据库 11.4.4 Web11.4.4 Web信息集成信息集成 采用中介技术的采用中介技术的WebWeb信息集成系统,并不将各数据源信息集成系统,并不将各数据源的数据集中存放,而是通过包装器的数据集中存放,而是通过包装器/ /中介器中介器(Wrapper/MediatorWrapper/Mediator)体系结构满足上层集成应用的需)体系结构满足上层集成应用的需求。
172、这种方法的核心是中介模式(求。这种方法的核心是中介模式(Mediated SchemaMediated Schema),),数据集成系统通过中介模式将各数据源的数据集成起来,数据集成系统通过中介模式将各数据源的数据集成起来,而数据仍存储在局部数据源中,通过各数据源的包装器而数据仍存储在局部数据源中,通过各数据源的包装器对数据进行转换使之符合中介模式。用户的查询基于中对数据进行转换使之符合中介模式。用户的查询基于中介模式,不必知道每个数据源的特点,中介器将基于中介模式,不必知道每个数据源的特点,中介器将基于中介模式的查询转换为基于各局部数据源的模式的查询,介模式的查询转换为基于各局部数据源的模式
173、的查询,它的查询执行引擎再通过各数据源的包装器将结果抽取它的查询执行引擎再通过各数据源的包装器将结果抽取出来,并由中介器将结果集成返回给用户。这种方法更出来,并由中介器将结果集成返回给用户。这种方法更适应于数据源数目多、各局部数据源的自治性高且局部适应于数据源数目多、各局部数据源的自治性高且局部数据经常变化的数据经常变化的WebWeb环境。环境。 第第1111章章 WebWeb数据库数据库 11.4.4 Web11.4.4 Web信息集成信息集成2. Web2. Web信息集成系统的特性信息集成系统的特性 在在WebWeb信息集成系统的设计与实现过程中,主要考虑以下特性:信息集成系统的设计与实
174、现过程中,主要考虑以下特性: (1)(1)查询特性查询特性 系统能否准确表达用户查询,这对信息查询的准确度是最为系统能否准确表达用户查询,这对信息查询的准确度是最为重要的,同时系统也应能够向用户提供模糊查询方式,所以系统重要的,同时系统也应能够向用户提供模糊查询方式,所以系统应联合使用数据库技术与信息检索技术,提供精确查询功能与模应联合使用数据库技术与信息检索技术,提供精确查询功能与模糊查询功能。糊查询功能。 (2)(2)结果表示结果表示 查询结果依赖于用户采用的查询方式。如果用户采用模糊查查询结果依赖于用户采用的查询方式。如果用户采用模糊查询方式,系统反馈给用户的是与用户查询的相关的文档集合
175、,因询方式,系统反馈给用户的是与用户查询的相关的文档集合,因此系统需要对查询结果进行相关度排序。如果用户采用精确查询此系统需要对查询结果进行相关度排序。如果用户采用精确查询方式,系统按照概念模式将查询结果反馈给用户。方式,系统按照概念模式将查询结果反馈给用户。 第第1111章章 WebWeb数据库数据库 11.4.4 Web11.4.4 Web信息集成信息集成 (3)(3)结构特性结构特性 系统最大的特点是异构,也就是说来自各个数据源系统最大的特点是异构,也就是说来自各个数据源中的数据是结构化的、半结构化的或者无结构的。因此,中的数据是结构化的、半结构化的或者无结构的。因此,系统查询处理的效率
176、在很大程度上依赖于各个数据源的系统查询处理的效率在很大程度上依赖于各个数据源的结构特性。结构特性。 (4)(4)可扩展性可扩展性 系统应当具有可扩展性,可以比较自由地将新数据系统应当具有可扩展性,可以比较自由地将新数据源加入到系统中,或者从系统中卸载已有的数据源。尽源加入到系统中,或者从系统中卸载已有的数据源。尽管系统是由异构数据源构成,但系统的目标是以最小的管系统是由异构数据源构成,但系统的目标是以最小的人工调整实现系统的可扩展性。例如,全局模式的可扩人工调整实现系统的可扩展性。例如,全局模式的可扩展性、包装器的可扩展性以及中介的可扩展性。展性、包装器的可扩展性以及中介的可扩展性。 第第11
177、11章章 WebWeb数据库数据库 11.4.5 Web Services11.4.5 Web Services 1.Web Services1.Web Services概述概述 Web ServicesWeb Services是通过是通过WebWeb调用的应用逻辑或功能,具有调用的应用逻辑或功能,具有自包含(自包含(Self-containedSelf-contained)、自描述()、自描述(Self-describingSelf-describing)以及模块化的特点,可以通过以及模块化的特点,可以通过WebWeb发布、查找和调用。发布、查找和调用。 Web ServicesWeb Se
178、rvices具有以下特点:具有以下特点: (1)(1)普遍性:利用普遍性:利用InternetInternet标准协议和标准协议和XMLXML数据格式,数据格式,任何支持这些技术的设备都可以调用和访问任何支持这些技术的设备都可以调用和访问Web ServicesWeb Services。 (2)(2)可集成性:可以和其它服务组合在一起形成新的服可集成性:可以和其它服务组合在一起形成新的服务。务。 (3)(3)互操作性:任何互操作性:任何WebWeb服务都可以与其它服务都可以与其它WebWeb服务进行服务进行交互。交互。 (4)(4)行业支持:行业内所有主要的供应商都支持行业支持:行业内所有主要
179、的供应商都支持Web Web ServicesServices。 第第1111章章 WebWeb数据库数据库 11.4.5 Web Services11.4.5 Web Services 2.Web Services2.Web Services原理原理 Web ServicesWeb Services的基本思想是把软件当作一种服务。的基本思想是把软件当作一种服务。Web ServicesWeb Services使使用面向服务的结构,它包含三个实体用面向服务的结构,它包含三个实体服务提供者、服务请求者和服服务提供者、服务请求者和服务代理,以及三个基本操作务代理,以及三个基本操作发布、查找和捆绑。
180、发布、查找和捆绑。 服务提供者向服务代理发布它的服务内容。当服务请求者需要调用服务提供者向服务代理发布它的服务内容。当服务请求者需要调用服务时,它首先到服务代理上查找所需要的服务,并得到如何调用该服服务时,它首先到服务代理上查找所需要的服务,并得到如何调用该服务的信息,然后根据这些信息去调用服务提供者发布的服务。服务代理务的信息,然后根据这些信息去调用服务提供者发布的服务。服务代理给服务提供者提供了发布它们自身及其服务的机制,也为服务请求者提给服务提供者提供了发布它们自身及其服务的机制,也为服务请求者提供了查找它们所需服务的机制。供了查找它们所需服务的机制。Web ServicesWeb Se
181、rvices在发布服务时使用通用描在发布服务时使用通用描述、查找和集成协议(述、查找和集成协议(UDDIUDDI,Universal DescriptionUniversal Description,Discovery and Discovery and IntegrationIntegration),查找服务时使用),查找服务时使用UDDI UDDI 和和Web Services Web Services 描述语言(描述语言(WSDLWSDL,Web Service Description LanguageWeb Service Description Language),捆绑服务时使用),
182、捆绑服务时使用WSDLWSDL和简单和简单对象访问协议(对象访问协议(SOAPSOAP,Simple Object Access ProtocolSimple Object Access Protocol)。可以用图)。可以用图11.811.8来表示。来表示。 第第1111章章 WebWeb数据库数据库 11.4.5 Web Services11.4.5 Web Services UDDIUDDI 发布发布查找查找UDDI/WSDUDDI/WSDL L捆绑捆绑 WSDL/SOAPWSDL/SOAP服务提供者服务提供者服务代理服务代理服务请求者服务请求者图图11.8 Web Services11
183、.8 Web Services的发布、查找和捆绑的发布、查找和捆绑 第第1111章章 WebWeb数据库数据库 11.4.5 Web Services11.4.5 Web Services 3.Web Services3.Web Services的技术支持的技术支持 Web ServicesWeb Services平台需要一套协议来实现分布式应用程序的创平台需要一套协议来实现分布式应用程序的创建。任何平台都有它的数据表示方法和类型系统。要实现互操作建。任何平台都有它的数据表示方法和类型系统。要实现互操作性,性,Web ServicesWeb Services平台必须提供一套标准的类型系统,用于
184、沟通平台必须提供一套标准的类型系统,用于沟通不同平台、编程语言和组件模型中的不同类型系统。目前这些协不同平台、编程语言和组件模型中的不同类型系统。目前这些协议有:议有: (1)XML(1)XML和和XSDXSD 可扩展的标记语言可扩展的标记语言XMLXML是是Web ServicesWeb Services平台中表示数据的基平台中表示数据的基本格式。除了易于建立和易于分析外,本格式。除了易于建立和易于分析外,XMLXML主要的优点在于它既主要的优点在于它既与平台无关,又与厂商无关。与平台无关,又与厂商无关。 Web ServicesWeb Services平台是用平台是用XSDXSD来作为数据
185、类型系统。当使用某来作为数据类型系统。当使用某种语言如种语言如VB.NETVB.NET或或C#C#来构造一个来构造一个Web ServicesWeb Services时,为了符合时,为了符合Web Web ServicesServices标准,所有使用的数据类型都必须被转换为标准,所有使用的数据类型都必须被转换为XSDXSD类型。类型。如想让它使用在不同平台和不同软件的不同组织间传递,还需要如想让它使用在不同平台和不同软件的不同组织间传递,还需要用某种东西将它包装起来。这种东西就是一种协议,如用某种东西将它包装起来。这种东西就是一种协议,如 SOAPSOAP。第第1111章章 WebWeb数据
186、库数据库 11.4.5 Web Services11.4.5 Web Services (2)SOAP(2)SOAP SOAP SOAP即简单对象访问协议即简单对象访问协议(Simple Object Access (Simple Object Access Protocol)Protocol),它是用于交换,它是用于交换XMLXML编码信息的轻量级协议。它编码信息的轻量级协议。它有三个主要方面:有三个主要方面:XML-envelopeXML-envelope为描述信息内容和如何处为描述信息内容和如何处理内容定义了框架,将程序对象编码成为理内容定义了框架,将程序对象编码成为XMLXML对象的规
187、则,对象的规则,执行远程过程调用执行远程过程调用(RPC)(RPC)的约定。的约定。SOAPSOAP可以运行在任何其他可以运行在任何其他传输协议上。例如,可以使用传输协议上。例如,可以使用 SMTPSMTP,即因特网电子邮件协,即因特网电子邮件协议来传递议来传递SOAPSOAP消息。在传输层之间的头是不同的,但消息。在传输层之间的头是不同的,但XMLXML有有效负载保持相同。效负载保持相同。 Web Services Web Services 希望实现不同的系统之间能够用希望实现不同的系统之间能够用“软件软件- -软件对话软件对话”的方式相互调用,打破了软件应用、网站和各的方式相互调用,打破了
188、软件应用、网站和各种设备之间的格格不入的状态,实现种设备之间的格格不入的状态,实现“基于基于WebWeb无缝集成无缝集成”的目标。的目标。第第1111章章 WebWeb数据库数据库 11.4.5 Web Services11.4.5 Web Services (3)WSDL(3)WSDL Web Services Web Services描述语言描述语言WSDLWSDL就是用机器能阅读的方式提供的一个正就是用机器能阅读的方式提供的一个正式描述文档而基于式描述文档而基于XMLXML的语言,用于描述的语言,用于描述Web ServicesWeb Services及其函数、参数和及其函数、参数和返回
189、值。因为是基于返回值。因为是基于XMLXML的,所以的,所以WSDLWSDL既是机器可阅读的,又是人可阅读既是机器可阅读的,又是人可阅读的。的。 (4)UDDI(4)UDDI UDDI UDDI 是为电子商务建立标准,它是一套基于是为电子商务建立标准,它是一套基于WebWeb的、分布式的、为的、分布式的、为Web ServicesWeb Services提供的、信息注册中心的实现标准规范,同时也包含一组提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的使企业能将自身提供的Web ServicesWeb Services注册,以使别的企业能够发现的访注册,以使别的企业能够发现
190、的访问协议的实现标准。问协议的实现标准。 (5)(5)远程过程调用远程过程调用RPCRPC与消息传递与消息传递 Web ServicesWeb Services实现应用程序间的通信。现在有两种应用程序通信的实现应用程序间的通信。现在有两种应用程序通信的方法:方法:RPCRPC远程过程调用和消息传递。使用远程过程调用和消息传递。使用RPCRPC的时候,客户端的概念是的时候,客户端的概念是调用服务器上的远程过程,通常方式为实例化一个远程对象并调用其方调用服务器上的远程过程,通常方式为实例化一个远程对象并调用其方法和属性。法和属性。RPCRPC系统试图达到一种位置上的透明性:服务器暴露出远程对系统试
191、图达到一种位置上的透明性:服务器暴露出远程对象的接口,而客户端就好像在本地使用的这些对象的接口一样,这样就象的接口,而客户端就好像在本地使用的这些对象的接口一样,这样就隐藏了底层的信息,客户端也就根本不需要知道对象是在哪台机器上。隐藏了底层的信息,客户端也就根本不需要知道对象是在哪台机器上。 第第1111章章 WebWeb数据库数据库 11.4.5 Web Services11.4.5 Web Services 4.Web Services4.Web Services软件的支持软件的支持 操作系统离不开丰富的应用软件的支持。同样,操作系统离不开丰富的应用软件的支持。同样,Web Web Ser
192、vicesServices只有通过日益广泛的应用才能体现出其价值,只有通过日益广泛的应用才能体现出其价值,目前比较流行的实现方法是使用目前比较流行的实现方法是使用.NET .NET 和和 JavaJava两种技术,两种技术,并且两种实现方法可以互相操作。如今已有微软、并且两种实现方法可以互相操作。如今已有微软、IBMIBM、SUNSUN、BorlandBorland等不同厂商的等不同厂商的Web ServicesWeb Services构建工具建立构建工具建立的的Web ServicesWeb Services应用。应用。 第第1111章章 WebWeb数据库数据库 11.4.5 Web Se
193、rvices11.4.5 Web Services 5. Web Services5. Web Services的特点的特点 从外部使用者角度而言,从外部使用者角度而言,Web ServicesWeb Services是一种部署在是一种部署在WebWeb上上的对象和组件,具备以下特点:的对象和组件,具备以下特点: (1)(1)完好的封装性完好的封装性 WebWeb服务既然是一种部署在服务既然是一种部署在webweb上的对象,自然具备对象的良上的对象,自然具备对象的良好封装性,对于使用者而言,他能且仅能看到该对象提供的功能好封装性,对于使用者而言,他能且仅能看到该对象提供的功能列表。列表。 (2
194、)(2)松散耦合松散耦合 这一特征也是源于对象组件技术,当一个这一特征也是源于对象组件技术,当一个WebWeb服务的实现服务的实现发生变更时,调用者是不会感到这一点的,对于调用者来说,只发生变更时,调用者是不会感到这一点的,对于调用者来说,只要要WebWeb服务的调用界面不变,服务的调用界面不变,WebWeb服务的实现任何变更对他们来说服务的实现任何变更对他们来说都是透明的,甚至是当都是透明的,甚至是当WebWeb服务的实现平台从服务的实现平台从J2EEJ2EE迁移到了迁移到了.NET.NET或者是相反的迁移流程,用户都可以对此一无所知。对于松散耦或者是相反的迁移流程,用户都可以对此一无所知。
195、对于松散耦合而言,尤其是在合而言,尤其是在InternetInternet环境下的环境下的WebWeb服务而言,需要有一种服务而言,需要有一种适合适合InternetInternet环境的消息交换协议,而环境的消息交换协议,而XMLXMLSOAPSOAP正是目前最为正是目前最为合适的消息交换协议。合适的消息交换协议。第第1111章章 WebWeb数据库数据库 11.4.5 Web Services11.4.5 Web Services (3)(3)协议使用的规范化协议使用的规范化 这一特征从对象而来,但相比一般对象,其界面更加规范化和这一特征从对象而来,但相比一般对象,其界面更加规范化和易于被
196、机器理解。首先,作为易于被机器理解。首先,作为WebWeb服务,对象界面所提供的功能应服务,对象界面所提供的功能应当使用标准的描述语言来描述当使用标准的描述语言来描述( (比如比如WSDL)WSDL)。其次,由标准描述语言。其次,由标准描述语言描述的服务界面应当是能够被发现的,因此这一描述文档需要被存描述的服务界面应当是能够被发现的,因此这一描述文档需要被存储在私有的或公共的注册库中。同时,使用标准描述语言描述的使储在私有的或公共的注册库中。同时,使用标准描述语言描述的使用协约将不仅仅是服务界面,它将被延伸到用协约将不仅仅是服务界面,它将被延伸到WebWeb服务的聚合、跨服务的聚合、跨WebW
197、eb服务的事务、工作流等,而这些又都需要服务质量服务的事务、工作流等,而这些又都需要服务质量( (QoSQoS) )的保障。的保障。再者,安全机制对于松散耦合的对象环境具有重要意义,因此需要再者,安全机制对于松散耦合的对象环境具有重要意义,因此需要对诸如授权认证、数据完整性对诸如授权认证、数据完整性( (比如签名机制比如签名机制) )、消息源认证以及事、消息源认证以及事务的不可否认性等运用规范的方法来描述、传输和交换。最后,在务的不可否认性等运用规范的方法来描述、传输和交换。最后,在所有层次的处理都应当是可管理的,因此需要对管理协约运用同样所有层次的处理都应当是可管理的,因此需要对管理协约运用同样的机制。的机制。 (4)(4)高度可集成能力高度可集成能力 由于由于WebWeb服务采取简单的、易理解的标准,服务采取简单的、易理解的标准,WebWeb协议作为组件界协议作为组件界面描述和协同描述规范,完全屏蔽了不同软件平台的差异,无论是面描述和协同描述规范,完全屏蔽了不同软件平台的差异,无论是CORBACORBA、DCOMDCOM还是还是EJBEJB,都可以通过这一种标准的协议进行互操作,都可以通过这一种标准的协议进行互操作,实现了在当前环境下最高的可集成性。实现了在当前环境下最高的可集成性。