980 likes | 1.12k Views
第 11 章 Web 数据库. 11.1 Web 数据库概述 11.2 Web 开发新技术 11.3 Web 数据库访问技术 11.4 web 数据管理. 11.1 Web 数据库概述. 11.1.1 静态网页与动态网页 11.1.2 Web 数据库应用的三层体系结构. 11.1.1 静态网页与动态网页. 1 .静态网页
E N D
第11章 Web数据库 • 11.1 Web数据库概述 • 11.2 Web开发新技术 • 11.3 Web数据库访问技术 • 11.4 web数据管理
11.1 Web数据库概述 • 11.1.1 静态网页与动态网页 • 11.1.2 Web数据库应用的三层体系结构
11.1.1 静态网页与动态网页 • 1.静态网页 • 静态网页的“静态”指的是网页内容“固定不变”,无论谁访问都显示相同的内容,缺乏交互性,缺乏人性化及个性化。当用户浏览器通过HTTP协议向Web服务器请求提供网页内容时,服务器仅仅是将原已设计好的HTML文档传送给用户浏览器。其页面的内容使用的仅仅是标准的HTML代码。 • 不易维护是静态网页的致命弱点。若网站维护者要更新网页的内容,就必须手动更新其HTML文档。随着网站内容和信息量的日益增长,网站维护工作量大得出乎想象。在Internet应用初期,Web网页多为静态网页,随着Internet的逐步普及,出现了动态网页。
11.1.1 静态网页与动态网页 • 2.动态网页 • 动态网页的“动态”指的是网页的内容不是固定不变的,而是在文件中加入了程序,使得同一页面对于不同的人或在不同的时间是变化的。动态网页具有如下特点: • (1)动态内容(Dynamic Content)。网页的内容,可“动态”地随时插入、修改、或删除网页的元件,譬如文字、标记等。 • (2)动态排版样式(Dynamic Styles Sheets)。通过W3C(World Wide Web Consortium,万维网联盟)的“Cascading Style Sheets”(串联式排版样式,简称CSS1或CSS),提供了设定HTML标记的字体大小、字型、粗细、字型样式、行高度、文字颜色、加底线或加中间横线、与边缘距离、靠左右或置中、缩排、背景图片或颜色等排版功能,并且可以“动态”地随时地改变排版样式。
11.1.1 静态网页与动态网页 • (3)动态定位(Dynamic Positioning)。通过W3C的“Working Draft on Positioning HTML with Cascading Style Sheets”,提供HTML元件在X、Y、Z轴的定位功能,让设计者可以放置影像、控件、文字等在网页上的任何位置上。而放置在不同的Z轴上,设计者就可以产生重叠的效果。 • (4)内建资料处理(Data Awareness)。无须复杂的程序,无须花费服务器太多资源,即可让网页设计者即时处理文档。 • (5)内建多媒体支援:IE 4.0结合CSS与内建的ActiveX Controls,提供多媒体支持的功能,包括转换特效、滤镜特效、路径控制、顺序控制、动画、制图、播放声音和影像等多媒体功能。
11.1.2 Web数据库应用的三层体系结构 • 在动态网页的设计中,常用数据库向Web服务器提供数据,采用一种三层客户端/服务器的体系结构,即客户端浏览器/ Web服务器/数据库服务器(Browser/Web Server/Database Server,简称B/W/D)结构。它是一种随着Internet技术的兴起,由传统的二层Client/Server(简称C/S)结构变化或改进而来的三层Client/Server结构在Web上应用的特例
URL SQL查询 请求页面 运行脚本程序 执行SQL查询 显示结果 产生HTML文件 返回查询结果 HTML文件 查询结果 客户机浏览器 Web服务器 数据库服务器 图11.1 B/W/D三层体系结构 11.1.2 Web数据库应用的三层体系结构 • B/W/D三层体系结构如图11.1所示。用户通过URL向Web服务器请求页面,Web服务器运行脚本程序并通过SQL查询调用数据库服务器中存储的数据,数据库服务器执行查询后将查询结果返回到Web服务器,脚本程序产生特定格式的HTML文件,客户端接收到HTML文件后由浏览器将结果显示出来。
11.1.2 Web数据库应用的三层体系结构 • B/W/D三层体系结构与C/S体系结构相比具有以下优势: • 开放的标准。C/S所采用的标准只要在内部统一就可,它的应用往往是专用的。B/W/D所采用的标准都是开放的、非专用的,是经过标准化组织所确定的而非单一厂商所制定,保证了其应用的通用性和跨平台性。 • (1)较低的开发和维护成本。C/S的应用必须开发出专用的客户端软件,无论是安装、配置还是升级都需要在所有的客户机上实施,极大地浪费了人力和物力。B/W/D的应用只需在客户端装有通用的浏览器即可,维护和升级工作都在服务器端进行,不需对客户端进行任何改变,故而大大降低了开发和维护的成本。 • (2)使用简单,界面友好。C/S用户的界面是由客户端软件所决定的,其使用的方法和界面各不相同。B/W/D用户的界面都统一在浏览器上,浏览器易于使用、界面友好,不须再学习使用其他的软件,一劳永逸的解决了用户的使用问题。
11.1.2 Web数据库应用的三层体系结构 • (3)客户端消肿。C/S的客户端具有显示与处理数据的功能,对客户端的要求很高,是一个“胖”客户机。B/W/D的客户端不再负责数据库的存取和复杂数据计算等任务,这样大大的降低了对客户端的要求,客户端变得非常“瘦”。 • (4)系统灵活。C/S系统的模块中有一部分需改变就要关联到其他模块的变动,使系统极难升级。B/W/D系统的三部分模块各自相对独立,其中一部分模块改变时其他模块不受影响,系统改进变得非常容易,且可以用不同厂家的产品来组成性能更佳的系统。 • (5)保障系统的安全性。在C/S系统中由于客户机直接与数据库服务器进行连接,用户可以改变服务器上的数据,无法保证系统的安全性。B/W/D系统在客户机与数据库服务器之间增加了一层Web服务器,使两者不再直接相连,客户机无法直接操纵数据库,可以有效地防止非法入侵。
11.2 Web开发新技术 • 11.2.1 PHP • 11.2.2 ASP • 11.2.3 .NET • 11.2.4 JSP
11.2.1 PHP • PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识就能使用PHP来建立一个真正交互的WEB站点。PHP是一种动态网页的开发工具。PHP网页文件被当作一般HTML网页文件来处理,并且可以用编辑HTML的常规方法编写PHP。 • PHP代表超文本预处理器(PHP: Hypertext Preprocessor)。PHP完全免费,可以从PHP官方站点(http://www.php.net)自由下载。PHP遵守GNU公共许可(GPL),在这一许可下诞生了许多流行的软件,如Linux、 Emacs等。可以不受限制的获得源码,甚至可以从中加进自己需要的特色。PHP在大多数Unix平台,GUN/Linux和微软Windows平台上均可运行。在Windows环境下的PC机器或Unix机器上安装PHP,过程简单。
11.2.1 PHP • 1.PHP工作环境 • PHP的核心用途是网站的建设与开发,熟悉PHP开发环境是初学者学习PHP所必须了解。 • (1)操作系统: • Microsoft Windows系列: Windows 98/ Windows NT4.0/ Windows 2000,Linux,FreeBSD或Solaris。 • (2)Web服务器:IIS/PWS。 • (3)数据库:Oracle、dBase、Informix、SQL Server、Sysbase和MySQL等,最常用的数据库为MySQL。
11.2.1 PHP • 2.PHP 工作原理 • PHP的所有应用程序都是通过WEB服务器(如IIS或Apache)和PHP引擎程序解释执行完成的,工作过程: • (1) 当用户在浏览器地址中输入要访问的PHP页面文件名,然后回车就会触发这个PHP请求,并将请求传送给支持PHP的WEB服务器。 • (2) WEB服务器接受这个请求,并根据其后缀进行判断,如果是一个PHP请求,WEB服务器从硬盘或内存中取出用户要访问的PHP应用程序,并将其发送给PHP引擎程序。 • (3) PHP引擎程序将会对WEB服务器传送过来的文件从头到尾进行扫描,并根据命令从后台读取,处理数据,并动态地生成相应的HTML页面。 • (4) PHP引擎将生成HTML页面返回给WEB服务器。WEB服务器再将HTML页面返回给客户端浏览器。
11.2.1 PHP • 3.PHP的优点 • (1) 数据库连接方便。PHP可以编译成具有与许多数据库连接的函数。PHP与MySQL是目前最佳组合。用户还可以编写外围的函数去间接存取数据库。通过这样的途径,当用户更换使用数据库时,可以轻松地修改编码以适用这样的变化。PHPLIB提供一系列基库。 • (2)可伸缩性。传统上网页的交互作用是通过CGI来实现的。CGI程序的伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程,而内嵌的PHP可以具有更高的可伸缩性。 • (3)支持面向对象编程。PHP提供了类和对象。基于Web的编程工作非常需要面向对象编程能力。PHP支持构造器、提取类等。
11.2.2 ASP • ASP(Active Server Pages)是由Microsoft推出的动态Web设计技术,是一个基于Web服务器端的开发和脚本运行环境。利用它可以产生和运行动态的、交互的、高性能的Web服务应用程序。与常见的在客户端实现动态主页的技术如Java applet、ActiveX Control、VB Script、JavaScript等不同,ASP中的脚本程序是由服务器来解释执行的,执行结果以HTML主页形式返回浏览器,而客户端技术的脚本程序则是由浏览器来解释执行的。 • 利用ASP,可以把HTML文本、脚本命令及ActiveX组件混合在一起构成ASP页,实现对Web数据库的访问。当用户使用浏览器访问ASP网页时,Web服务器响应,调用ASP引擎来执行ASP文件,并解释其中的脚本语言,通过ODBC连接数据库,由数据库访问组件ADO(ActiveX Data Objects)完成数据库操作,最后ASP生成包含有数据查询结果的HTML主页并返回用户端。
11.2.2 ASP • ASP的程序代码简单、通用,文件名由.asp结尾,ASP文件通常由四部分构成: • (1)标准的HTML标记:所有的HTML标记均可使用。 • (2)ASP语法命令:位于<% %> 标签内的ASP代码。 • (3)服务器端的include语句:可用#include语句调入其他ASP代码,增强了编程的灵活性。 • (4)脚本语言:脚本语言(scripting language)是介于HTML和Java,C++以及Visual Basic等编程语言之间的一种语言,它与编程语言之间最大的区别是后者的语法和规则更为严格和复杂一些。ASP自带VBScript、Jscript和JavaSript等脚本语言,用户也可安装其他脚本语言,如Perl、Rexx等。
11.2.2 ASP • 1.ASP的运行环境 • ASP是服务器端的应用程序。目前,Microsoft公司推出支持ASP的服务器有: • (1)Microsoft Internet Information Server 3.0/4.0(IIS3.0/4.0) on Windows NT server 4.0。 • (2)Microsoft Internet Information Server 5.0(IIS5.0)on Windows 2000 server。 • (3)Microsoft Personal Web Server 4.0 (PWS4.0)on Windows 95/98。 • (4)Microsoft Peer Server 3.0 on Windows NT Workstation。
11.2.2 ASP • 要运行一个ASP程序,必须先安装Web服务器,设置好虚拟目录,在浏览器的地址栏中使用虚拟目录,否则ASP程序就不能正常运行。一个ASP文件相当于一个可执行文件,因此必须放在Web服务器上有执行权限的目录下。当浏览器向Web Server请求调用ASP文件时,就启动了ASP。Web服务器开始调用ASP,按顺序读取被请求的.asp文件内容,执行每一个命令,然后动态生成一个HTML页面并送到浏览器。通过ASP内置的对象、服务器组件可以完成非常复杂的任务,而且用户还可以开发或利用其它服务器组件完成专门的任务。
11.2.2 ASP • 2.ASP的工作模式 • ASP的工作模式如下: • (1)用户将一个ASP文件的URL输入到浏览器的地址栏。 • (2)浏览器向Web服务器发送ASP请求。 • (3)服务器根据扩展名.asp识别请求并读取相应的ASP文件。 • (4)服务器向特定的名为ASP.dll的程序发送文件。 • (5)执行所有的服务器端脚本,并将执行结果与HTML代码进行合并。 • (6)HTML文件返回到浏览器。 • (7)浏览器将结果展示给用户。
11.2.2 ASP • 3.ASP的优点 • (1)使用VBScript、Javascript等简单易懂的脚本语言,结合HTML代码,可快速地完成网站的应用程序。 • (2)除了Frontpage、Visual Interdev等开发环境外,使用普通的文本编辑器即可进行编辑设计。 • (3)无需编译,在服务器端直接执行。 • (4)运行结果与浏览器无关。ASP使用的脚本语言在Web服务器端执行后,输出HTML代码,客户端的浏览器只需能识别HTML代码即可。 • (5)支持广泛。ASP除支持VB Script、JavaScript外,还能以插件形式支持第三方语言,如Perl、Rexx、Tcl等。
11.2.2 ASP • (6)安全性好。ASP的源程序不会被传送到客户端,因而可避免源程序被他人截获,提高了程序的安全性。 • (7)可使用服务器端的脚本来产生客户端脚本,快速灵活地在客户端完成交互。 • (8)ActiveX服务器组件具有很好的扩充性。除了ASP自带的组件外,还可以使用支持组件对象模型(COM)的语言如C、C++、Java、Visual Basic等编写组件或从第三方开发者处获得满足自己需要的组件,以提高系统的扩充能力。
11.2.3 .NET • Microsoft公司的.NET体系结构是Windows 分布式网络应用程序体系结构的演进,Microsoft公司对.NET的描述是:“.NET是一个革命性的新平台,它建立在开放的Internet协议和标准之上,采用许多新的工具和服务用于计算和通信。”简单地说,.NET是一个开发和运行软件的新环境。.Net环境中的突破性改进在于:使用统一的Internet标准(如XML)将不同的系统对接;是Internet上首个大规模的高度分布式应用服务架构;使用了一个名为“联盟”的管理程序,这个程序能全面管理平台中运行的服务程序,并且为它们提供强大的安全保护后台。
VB.NET C# C++ Jscript …… Common Language Specification ASP.NET(Web Forms & Web Services ) Windows Forms ADO.NET(Data & XML) Class Library Common Language Runtime 图11.2 .NET框架的基本层次结构 11.2.3 .NET • .NET框架(Framework)是.NET平台最重要的部分,亦即以前所谓的NGWS(Next Generation Windows Services),它的目标是成为新一代基于Internet的分布式应用开发平台。其基本模块包括以下几个部分:Web服务(Web Services)、通用语言运行时环境(Common Language Runtime)、服务框架类库(Class Library)、数据访问服务ADO.NET、表单应用模板和Web应用程序模板ASP.NET。其基本层次结构如图11.2。
11.2.3 .NET • 1.ASP.NET概述 • ASP.NET并不是ASP的升级版本,而是MicroSoft推出的用于 Web开发的全新框架,是.NET框架的重要组成部分。ASP.NET是一种建立在通用语言上的程序架构,包含了许多新的特性。ASP.NET整合了许多语言的开发环境(如C++、C#、VB.NET),让程序员可以选择熟悉的开发环境进行组件和应用程序的开发;提供了更易于编写、结构更清晰的代码,这些代码很容易进行再利用和共享;ASP.NET使用编译后的语言,从而提升性能和伸缩性;ASP.NET使用Web表单使开发更直观,完全支持面向对象技术,有利于组件的重复利用;ASP.NET 改进了配置、伸缩性、安全性和可靠性;ASP.NET对各种不同的浏览器提供了更好的支持。另外,ASP.NET中还包括有页面事件、Web控件、缓冲技术以及服务器控件和对数据捆绑的改进。ASP.NET向后兼容ASP,运行在.NET平台上,以前的ASP脚本几乎不经修改就可在.NET平台上运行,从而保护了企业先前的相关投资。
11.2.3 .NET • ASP 的文件类型只有一种,其扩展名是.asp文件。ASP.NET的文件类型则有多种,如表11-1。
11.2.3 .NET • 2.ASP.NET的运行环境 • 如果只运行ASP.NET的应用程序,可以安装.NET Framework Redist软件包。如果要开发、部署和运行ASP.NET应用程序,则需要安装ASP.NET Premium Edition、.NET Framework SDK(Software Development Kit)或者Visual Studio .NET中的任何一个,其中Visual Studio .NET是开发.NET应用程序的推荐平台,能为开发ASP.NET应用程序带来很多方便,但体积较大、对性能要求较高。 • (1)以.NET Framework SDK为例,运行ASP.NET应用程序的环境要求如下: • (2)Windows XP、Windows 2000或Windows NT4(带NT4 Service Pack 6a)。 • (3)IIS5.0或IIS4.0(带NT4 Service Pack 6a)。 • (4)IE5.5以上版本。 • (5)MDAC(Microsoft Data Access Component)2.6以上版本。 • (6).Net Framework SDK。
11.2.3 .NET • 3.ASP.NET的工作模式 • ASP与ASP.NET的运行引擎其实不过是两个DLL文件,分别为asp.dll和xspisapi.dll。当客户端传送一个要求到服务器时,由所要求的网页的扩展名来判断需要交给哪个运行引擎处理。尽管ASP和ASP.NET都是用来开发Web应用程序,但其工作模式差别很大。 • 当用户发出一个ASPX网页的请求后,ASP.NET引擎xspisapi.dll会先将ASPX的网页转换成源程序代码,然后编译成一个DLL文件,接着将此网页当成一个类,在内存中建立此对象的实体,并进行初始化操作,最后才将执行结果返回到客户端。如果每一个ASPX网页每次执行都必须经过上述转换、编译过程,则效率低下。为此,ASP.NET提供了一些特殊的机制来改进网页的执行效率。
11.2.3 .NET • (1)首次存取 • 客户端从浏览器发出一个ASPX网页的请求到ASP.NET服务器,Web服务器会交由xspisapi.dll处理。服务器先检查输出缓存(Output Cache)中是否有此网页,或者此网页是否已被编译成DLL。如果找不到此网页的输出缓存或编译过的DLL,此时便启动解释器(Parser)将网页转换成源程序代码,然后有编译器(Compiler)将其编译成DLL。编译器载入解释过的网页后,将源程序代码编译成中间语言(Intermediate Language,IL),xspisapi.dll从编译过的程序代码产生对象,并适时地回存网页与控制项的状态信息,处理事件,然后将执行的结果返回到客户端。
11.2.3 .NET • (2)第二次存取 • 当客户端再次发出请求执行同一个网页时,服务器再次从输出缓存中查找此网页,或查找编译过的DLL。若找到了编译过的DLL,便省略掉编译的步骤,直接从编译过的DLL建立对象,接着保存网页与控制项的状态信息,处理事件,将执行的结果返回到客户端。 • (3)输出缓存 • 当用户在第二次以后存取网页,发现输出缓存中已有此网页时,便省略掉上述所有步骤,直接将输出缓存中的内容返回到客户端。
11.2.3 .NET • 4.ASP.NET的优势 • (1)简化开发操作。ASP虽然容易使用,但在网页程序过多时会显得相当复杂,HTML标注和程序代码混杂,以致会有杂乱无章的感觉。ASP.NET使用事件驱动与数据绑定的开发方式,允许分离程序代码和显示内容,让网页代码更容易撰写,程序代码看起来更简单。 • (2)新的数据存取方式。相对于ASP的数据存取方式ADO,ASP.NET使用ADO.NET,由此带来了更快速的数据库连接能力。 • (3)新的语言特性。ASP网页中撰写程序代码只限于Script语言,ASP.NET则允许使用面向对象的VB.NET、C#、C++、Jscript等语言,能提供更好的执行效率与跨语言兼容性 • (4)更高的执行效率。ASP.NET的程序代码不再是解释型代码,可以经由JIT编译器编译后运行,并且引入了页面缓冲机制,有效地缩短了服务器的应答时间。
11.2.3 .NET • (5)简化部署与配置的操作。若在ASP网页中调用到组件,则部署组件是需要复杂的注册操作,同时此组件在使用中经常会被锁定而无法更新版本。在ASP.NET中不需要考虑到组件注册的问题,只要以XCOPY的方式将相关文件复制到目的机器就可以,简化了部署操作。在配置方面,ASP使用IIS的嵌入式管理单元,而ASP.NET采用容易阅读的XML配置文件config.web,只要将此文件放在Web应用程序的相关目录中就可以完成配置的操作。 • (6)更好的可用性。ASP.NET解决应用程序故障、内存漏失的情况,能自动重新启动进程,从来不死机。 • (7)更好的伸缩性。ASP的Session状态信息只限于单机上使用。当用户数逐渐增加时,单凭一台服务器不能服务所有的用户,Server Farm便应运而生。Server Farm是将许多主机组织在一起,提供一个一致的影像给用户。ASP.NET的Session状态信息可以在不同机器的不同进程上维护,解决了Server Farm的Session维护问题。 • (8)更先进的安全性能。在ASP中,唯一能使用的是Windows登录验证方式,而ASP.NET则可使用Windows、Passport和Cookie等多种验证方式,能提供更好的安全性能。更多的支持工具。ASP.NET提供丰富的、以组件为基础的程序化模型,使开发Web应用程序的操作就像是开发传统应用程序一样。
11.2.4 JSP • JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种开放的、可扩展的动态网页技术标准,目前有1.0和1.1两个版本。在HTML网页文件中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,到处运行”的特点。具有Java技术的所有优点,包括健壮的存储管理和安全性。 • Java中连接数据库的技术是JDBC(Java Database Connectivity)。很多数据库系统均带有JDBC驱动程序,Java程序就通过JDBC驱动程序与数据库相连,执行查询、提取数据等操作。Sun公司还开发了JDBC-ODBC bridge,用此技术Java程序可以访问带有ODBC驱动程序的数据库,目前大多数数据库系统都带有ODBC驱动程序,所以Java程序能访问诸如Oracle、Sybase、MS SQL Server和MS Access等数据库。
11.2.4 JSP • JSP文件名由.jsp结尾,一般由三部分组成: • (1)静态的HTML或XML的组件。 • (2)特殊的JSP标签,包括指令(directive)标签和动作(action)标签。 • (3)脚本元素(scripting element),即一些直接嵌入的Java程序,此项是可选的。 • JSP和ASP从形式上非常相似,但它们之间还存在以下区别:ASP 的编程语言是 VBScript 之类的脚本语言, JSP 使用的是 Java ,JSP的效率和安全性更高,JSP的组件方式更方便,JSP的适应平台更广。
11.2.4 JSP • 1.JSP的运行环境 • JSP的运行环境包括两个部分: • (1)Java运行环境。Java 2 SDK(Java 2 Software Development Kit)或简称JDK(Java Development Kit)是Java 2平台上进行应用开发所需的开发环境。Java 2 SDK中包括Java API、Java Compiler、Java Debugger、Java Plug-in、JVM(Java Virtual Machine,Java虚拟机)、Java 2 RE(Java 2 Runtime Environment)等,其中Java 2 RE是一个标准Java应用程序的执行环境。 • (2)支持JSP引擎的Web服务器或JSP引擎。JSP引擎是安装在Web服务器或Web应用服务器上的。现在许多服务器都提供对JSP的支持,较为常用的是Tomcat服务器与Resin服务器。其中,Tomcat必须配合其他的Web服务器才能运作,Resin除了可以与各种常见的Web服务器配合执行外,还可以单独执行。
11.2.4 JSP • 2.JSP的实现方式 • 在JSP的实现方式中,从一段纯文本代码到一个动态的Web页面的过程,取决于所使用的JSP运行系统,也就是JSP引擎的工作方式。各种不同的引擎中共同的一步就是把JSP代码翻译为以.java结尾的 Servlet代码,然后再调用Java编译器,把它编译成可执行的Java代码(.class文件)。 • JSP引擎安装在Web服务器或使用JSP的应用服务器上,它可以接收客户端对JSP页面的请求,并且生成JSP页面响应客户端请求。一般来讲,JSP引擎都构建于Servlet引擎之上,以Servlet的形式存在。当JSP页面第一次被调用时,JSP引擎首先把源代码编译成一个Java Servlet类存储在服务器的内存中,因而第一次执行JSP页面比较费时,但这样避免了cgi-bin为每一个HTTP请求生成一个新进程的问题,也避免了服务器端引用所引起的运行时语法分析。以后再执行此JSP页面时,JSP引擎会先检查它是否比已编译好的JSP(这实际上已经是Servlet),如果是的话才需要重新执行翻译和编译的过程,否则,其执行速度与执行Servlet相同。
HTML/XML JDBC 浏览器 JSP页面 数据库 图11.3 简单模型 11.2.4 JSP • 3.JSP的应用模型 • (1)简单模型。在简单模型中,浏览器直接调用JSP页面,JSP页面自己生成被请求的内容。JSP页面可以调用JDBC等组件来生成结果,创建标准的HTML,并将结果发送回浏览器。图11.3说明了这种简单的JSP访问模型。
请求(Request) Servlet 浏览器 响应(Response) JSP页面 图11.4 JSP和Servlet结合使用 11.2.4 JSP • (2)使用Servlet • 基于Web的客户机直接对Servlet提出请求,由Servlet生成动态的内容,再将结果捆绑到一个结果对象中。JSP页面从该对象中访问动态内容,并且将结果返回给浏览器。如图11.4所示。
HTML/XML RM/IIOP • 浏览器 • JSP页面 EJB 图11.5 采用EJB技术的可扩展处理 11.2.4 JSP • (3)采用EJB技术的可扩展处理。 • Java Bean是一种可重用的Java组件,它可以被Applet、Servlet、JSP等Java应用程序调用。JSP页面可以作为企业版的Java Bean(Enterprise Java Bean,EJB)体系结构中的一个中间层次,在这种情况下,JSP页面和后端数据资源之间通过EJB组件进行交互。如图11.5所示。
11.2.4 JSP • 4.JSP的优点 • JSP具有以下优点: • (1)将内容生成和显示分离。使用JSP技术,Web页面开发人员可以使用HTML或者XML标记来设计和格式化最终页面,同时使用JSP标记或者脚本来生成页面上的动态内容。生成内容的逻辑被封装在标记和Java Bean组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。由于生成内容的核心逻辑被封装在Java Bean组件中,这样Web管理人员和页面设计者,能够编辑和使用JSP页面,而不会影响到内容的生成。同时,这也有利于进行分工,Web页面人员编写HTML,Servlet程序员在预留的地方插入动态部分即可。 • 在服务器端,JSP引擎解释JSP标记和脚本,生成所请求的内容,并且将结果以HTML或者XML页面的形式传送给浏览器。这有助于保护代码,又可保证基于HTML的Web浏览器的完全可用性。
11.2.4 JSP • (2)生成可重用的组件。绝大多数JSP页面依赖于可重用的、跨平台的组件(Java Bean或者Enterprise Java Bean组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,使得这些组件为更多的使用者或者客户团体所使用。这些组件有助于将网页和程序相互分离,节约了开发时间,同时充分发挥了Java和其他脚本语言的跨平台的能力和灵活性。 • (3)采用标记简化页面的开发。Web页面开发人员不会都是熟悉脚本语言的编程人员。JSP技术封装了许多功能,提供了一系列的JSP标记。使用他们,能够完成访问Java Bean组件、设置或查询组件的属性以及下载Applet等功能,并且可以通过开发定制化标记库扩展JSP的功能。 • (4)一次编写,到处运行。由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为Java Servlet,JSP页面具有Java技术的所有优点,包括健壮的存储管理和安全性及跨平台性。
11.3 Web数据库访问技术 • 11.3.1 ASP+ADO模式 • 11.3.2 ASP.NET+ADO.NET模式 • 11.3.3 JSP+JDBC模式
11.3.1 ASP+ADO模式 • 1. ADO • 数据操作对象ADO(ActiveX Data Object)是ASP内置的数据库访问组件,是Microsoft在OLE DB API之上提供的一种面向对象的、与语言无关的应用程序编程接口,它是针对Microsoft软件所支持的数据进行操作的有效、简单、功能强大的方法。 • OLE DB(Object Linking and Embedding Database)是Microsoft不同数据源的系统级编程接口。它提供存储各种信息的开放标准,规定了一套简化了的各种数据库管理系统的服务接口。
ASP应用程序 ADO OLE DB 关系查询引擎 游标引擎 相异查询引擎 服务提供者 OLE DB ODBC ODBC ODBC Access SQL Server 文件 索引 服务器 电子 表格 数据提供者 图11.6 ASP应用程序、ADO和底层数据库之间的关系 11.3.1 ASP+ADO模式 • ADO封装了OLE DB中最常用的一些特性。使用ADO,可以编写紧凑简明的脚本连接到与OLE DB兼容的数据源或访问与ODBC兼容的数据库。ASP应用程序、ADO和底层数据库之间的关系如图11.6所示。
11.3.1 ASP+ADO模式 • ADO对象是一个集合,在其中包含了Connection对象、Recordset对象和Command对象,还有Errors、Properties、Fields、Parameters四个集合,这四个集合中分别包含Error、Property、Field、Parameter四种对象。 • 在ASP中通过ADO访问数据库,一般要通过以下四个步骤: • (1)创建一个到数据库的Connection。 • (2)查询一个数据集合,即执行SQL,产生一个Recordset。 • (3)对数据集合进行需要的操作。 • (4)关闭Connection。
11.3.1 ASP+ADO模式 • 2. ASP数据库连接实例 • ⑴ 连接SQL SERVER2000数据库 • ASP与服务器的数据库连接有两种方法,一种为通过ODBC建立连接,另一种通过OLEDB建立连接。该实例采用后者建立连接。 • <%@ language=VBscript%> • <% • dim conn • set conn=server.createobject("ADODB.connection") • con.open "Provider=SQLOLEDB;Data source=SQL服务器名称或IP地址;UID=用户ID; PWD=数据库密码;DATABASE=数据库名称" • %> • '建立记录集对象 • set rs=server.createobject("adodb.recordset") • rs.open SQL语句,conn,3,2
11.3.1 ASP+ADO模式 • ⑵ 连接ORACAL数据库 • set adocon=Server.Createobject("adodb.connection") • StrDSN="Provider=OraOLEDB.Oracle;Password=密码;User ID=用户ID;Data Source=服务器名称;service_name=ip" • '建立和数据库master的连接 • set Conn = Server.CreateObject("ADODB.Connection") • set Rs=Server.CreateObject("ADODB.RecordSet")
.NET Framework数据提供程序 DataSet DataTableCollection DataAdapter Connection SelectCommand 数据表 • 事物 DataRowCollection InsertCommand Command DataColumnCollection • 参数 UpdateCommand ConstraintCollection DataReader DeleteCommand DataRelationCollection • XML • 数据库 图11.7 ADO.NET的体系结构 11.3.2 ASP.NET+ADO.NET模式 • 1.ADO.NET • ASP.NET中的ADO.NET和ASP中的ADO相对应,它是ADO的改进版本。在ADO.NET中如图11.7所示,通过Managed Provider所提供的应用程序编程接口(API),可以轻松地访问各种数据源的数据,包括OLE DB所支持的和ODBC支持的数据库。
11.3.2 ASP.NET+ADO.NET模式 • (1)ADO.NET的对象体系 • ADO.NET中的许多对象都是从ADO技术中进化而来的,例如Connection和Command等,也有许多对象是全新的,例如DataReader、DataSet、DataView、DataAdapter等。 • 为了将数据访问和数据操纵分离,ADO.NET使用了两种组件:DataSet对象和.NET Data Provider。 • ①DataSet对象 • DataSet对象是一个存在于内存中的数据库,在ADO.NET中处于核心地位,它提供了一种与数据来源无关的数据表示方式,可以表示、存储和管理来自远程或本地的数据库、XML文件或数据流甚至应用程序的局部数据。一个DataSet对象包含了一个DataTable的集合属性,用来放置一个或多个DataTable对象。DataTable对象对应于关系数据库中的表或视图,用来容纳以行列形式组织起来的数据和主键、约束、关系等信息。
11.3.2 ASP.NET+ADO.NET模式 • ②.NET Data Provider • .NET Data Provider是ADO.NET的另一个核心元素,它包含了Connection、Command、DataReader、DataAdapter对象,.NET程序员使用这些元素来实现对实际数据的操纵。Connection对象用来实现和数据源的连接,是数据访问者和数据源之间的对话通道。Command对象包含提交给实际数据库的信息,例如一个查询并返回数据的命令、一个修改数据的命令、一个调用数据库存储过程的命令及其参数等。DataReader对象提供一个简单方法,允许程序在数据记录间进行只读的、单向的数据访问,虽然功能不如DataSet强大,但性能更高,在某些场合下往往更能符合应用程序的需要。DataAdapter对象充当DataSet对象和数据源之间的桥梁,它使用Command对象,在Connection对象的辅助下访问数据源,将Command对象的执行结果传递给DataSet对象,并将DataSet对象中的数据改动回馈给数据源。
11.3.2 ASP.NET+ADO.NET模式 • 对于任何形式的数据源,都可以使用.NET Data Provider,从而允许.NET应用程序使用这些数据源。.NET框架自带两个Data Provider:SQL Server .NET Data Provider和OLD DB .NET Data Provider,相应地,上面提到的Connection、Command、DataReader、DataAdapter对象都有SQL和OLE DB两个派生类版本。