附 2:
第 11章 B/S应用程序开发第一章 ASP简介第一章 ASP简介
1.1 什么是 ASP
1.2 ASP的工作平台
1.3 创建 ASP 页
1.1 什么是 ASP
ASP是 Active Server Pages的简称,
是服务器端脚本编写环境,使用它可以创建和运行动态、交互的 Web 服务器应用程序。使用 ASP 可以组合 HTML 页、
脚本命令和 ActiveX 组件以创建交互的
Web页和基于 Web 的功能强大的应用程序。 ASP 可用来创建动态 Web 页或生成功能强大的 Web 应用程序。
1.2 ASP的工作平台一般来说,ASP程序可以在 Windows
9x/NT/2000等操作系统下运行,本节将 以
windows98为例解释一下安装 TCP/IP网络通讯协议,Web服务器及 ASP软件。
1.3 创建 ASP 页
Active Server Pages( ASP) 文件是以,asp为扩展名的文本文件,这个文本文件可以包括下列部分的任意组合:
文本,HTML标记,ASP脚本命令 。
第二章 Web页面制作基础第二章 Web页面制作基础
2.1 HTML语言概述
2.2 制作表单
2.3 框架结构
2.1 HTML语言概述
HTML是超文本标记语言( Hyper Text
Markup Language)的缩写。
HTML文件的开头和结尾由 <HTML>和
</HTML>来标记的。所有 HTML文件都可以分为两个部分:标题和正文。每一部分用特定的标记标出:在 HTML语言中规定
<HEAD>和 </HEDAD>标记标题部分,用
<BODY>和 </BODY>标记正文部分。
下面就给出了 HTML文件的基本格式:
<HTML>
<HEAD>
标题部分
</HEAD>
<BODY>
正文部分
</BODY>
</HTML>
2.2 制作表单表单是用户和 Web应用程序,Web
数据库等进行交互的界面。
表单由两个部分组成,HTML代码和 CGI程序。其中 HTML代码主要用来生成表单的可视化界面,CGI程序主要用来负责对表单所包含的信息进行解释或处理,在本书中 CGI程序主要用 ASP构成。
在 HTML中,表单一般有如下的结构:
<FORM ACTION =,…,METHOD =,…,>

<INPUT>…

<SELECT> … </SELECT>

<TEXTAREA> … </TEXTAREA>

</FORM>
2.3 框架结构在 HTML中,为解决网页的框架结构,引入了框架标记。
使用框架标记,就可以在一个屏幕上多开几个窗口,在每个不同多窗口显示不同的 HTML文件。
含有框架结构的网页其 HTML的形式和一般的 HTML文件相似,只是用
FRAMESET代替 BODY标记 。
框架结构有开始和结束标记,框架所有内容都应该在 <FRAMESET>和
</FRAMESET>之间 。 FRAMESET标记内使用另一个标记符合 <FRAME>来指定框架中每个小 ( 子 ) 窗口的内容 。
其具体格式如下:
<HTML>
<HEAD>

</HEAD>
<FRAMESET>
<FRAME>

</FRAMESET>
</HTML>
下面以一个例子介绍:
<FRAMESET COLS=,*,50%”>
<FRAMESET ROWS =,40%,60%”>
<FRAME SRC =,ONE.HTM”>
<FRAME SRC =,TWO.HTM”>
</FRAMESET>
<FRAMESET ROWS =,20%,20%,20%”>
<FRAME SRC =,ONE.HTM”>
<FRAME SRC =,TWO.HTM”>
<FRAME SRC =,THREE.HTM”>
</FRAMESET>
</FRAMESET>
如图:
第三章 ASP内置对象第三章 ASP内置对象
3.1 Request对象
3.2 Response对象
3.3 Sever对象
3.4 Session对象
3.5 Application对象
3.6 ObjectContext对象本章将介绍 ASP本身所提供的对象,
称为 ASP内置对象,包括 Request对象、
Response对象,Server对象,Session对象、
Application对象及 ObjectContext对象。
这些对象都有其特别的任务与工作,
在详细说明之前,下面先简单地说明每个内置对象的功能,然后再将这些对象分六个小节进行介绍 。
对 象 名 称 对 象 功 能
Request对象 负责从用户端接收信息 。
Response对象 负责传送信息给用户 。
Sever对象 负责控制 ASP的运行环境 。
Session对象 负责存储个别用户的信息,以便重复使用 。
Application对象 负责存储数据以供多个用户使用 。
ObjectContext
对象可供 ASP程序直接配合 MTS进行分散式的事务处理 。
3.1 Request对象
Request对象通常包括了用户端的相关信息,如浏览器的种类、表头信息、
表单参数及 cookies等等。
而 Response对象则是包含 Web服务器所要响应给用户的各项信息。
Request对象的语法描述如下,
Request[.collection|property|method](variable)
其中 collection表示 Request对象的集合,property表示 Request对象的属性,
method表示 Request对象的方法,变量参数( variable)是一些字符串,这些字符串指定要从集合中检索的项目,或作为方法或属性的输入。
Request对象的集合如下:
集 合 功 能 说 明
ClientCertificate 存储发送到 HTTP请求中客户端证书中的字段值 。
Cookies HTTP请求中被发送的 cookies的值 。
Form HTTP请求正文中表格元素的值 。
QueryString HTTP中查询字符串中变量的值 。
ServerVariables 预定的环境变量的值 。
Request对象提供 BinaryRead方法,
该 方法是以二进制方式来读取客户端使用
POST传送方法所传递的数据。
Request对象总共提供了 Form 集合,
Cookies集合,ClientCertificate集合,
ServerVariables集合 及 QueryString集合等。
3.2 Response对象在 ASP中负责将信息传递给用户的对象就是 Response对象。
Response对象用于动态响应客户端请求( Request),并将动态生成的响应结果返回到客户端浏览器中,使用该对象可以动态创建 web页面。
Response对象 的使用语法为:
其中 collection表示 Response对象的集合,property表示 Response对象的属性,
method表示 Response对象的方法 。
Response.collection|property|method
Response对象的方法:
方 法 功 能 说 明
AddHeader 从名称到值设置 HTML标题 。
AppendToLog 在该请求的 Web服务器日志条目后添加字符串 。
BinaryWrite 将给出信息写入到当前 HTTP输出中,并且不进行任何字符集转换 。
Clear 清除任何缓冲的 HTML输出 。
End 停止处理,asp文件并返回当前的结果 。
Flush 立即发送缓冲的输出 。
Redirect 将重指示信息发送到浏览器,尝试连接另一个 URL。
Write 将变量作为字符串写入当前的 HTTP输出 。
Response对象的属性:
属 性 功 能 说 明
Buffer 表明页输出是否被缓冲 。
CacheControl 决定代理服务器是否能缓存 ASP生成的输出 。
Charset 将字符集的名称添加到内容类型标题中 。
ContentType 指定响应的 HTTP内容类型 。
Expires 在浏览器中缓存的页面超时前,指定缓存的时间 。
ExpiresAbsolute 指定浏览器上缓存页面超时的日期和时间 。
IsClientConnecte
d
表明客户端是否与服务器断开 。
Pics 将 PICS标记值添加到响应标题的 PICS标记字段中 。Status 服务器返回的状态行的值 。
Response对象只有 Cookies一个数据集合。
Cookies数据集合允许将数据设置在客户端的浏览器中。假如所指定名称的
Cookies不存在,系统会自动在客户端的浏览器中建立新的 Cookies,
3.3 Sever对象
Server 对象提供对服务器上的方法和属性的访问,其中大多数方法和属性是作为实用程序的功能服务的。
Sever对象 的使用语法为:
其中 property表示 Server对象的属性,
method表示 Server对象的方法 。
Server.property|method
Server的属性只有一个 ScriptTimeout,表示超时值,即在脚本运行超过这一时间之后作超时处理。
Server对象的方法,
方 法 描 述
CreateObject 创建服务器组件的实例 。
HTMLEncode 将 HTML编码应用到指定的字符串 。
MapPath 将指定的虚拟路径,无论是当前服务器上的绝对路径,还是当前页的相对路径,映射为物理路径 。
URLEncode 将 URL编码规则,包括转义字符,应用到字符串 。
3.4 Session对象由于网页是一种无状态的程序,因此无法得知用户的浏览状态。
在 ASP中,是通过 Session对象记录用户的相关信息,用来作为用户再次对服务器提供要求时作确认。
要 注意的是,会话状态仅在支持
Cookie 的浏览器中保留。
Session对象 的使用语法为:
其中 collection表示 Session对象的集合,
property表示 Session对象的属性,method
表示 Session对象的方法 。
Session.collection|property|method
Session对象在 global.asa文件中声明两个事件 Session_OnEnd,Session_OnStart的脚本。
Session 对 象 对 应 两 个 事 件,
Session_OnEnd,Session_OnStart。
其中 Session_OnStart事件对应 Session对象的起始事件:每当产生一个 Session对象,
该 事 件 所 定 义 的 代 码 都 将 被 激 活 ;
Session_OnEnd事件对应 Session对象的结束事件:当 Session对象被终止或失效时,该事件所对应的代码被激活 。
<SCRIPT LANGUAGE = ScriptLanguage RUNAT = Server>
Sub Session_OnStart
事件的处理程序代码
End Sub
Sub Session_OnEnd
事件的处理程序代码
End Sub
</SCRIPT>
这两个事件的代码必须放在 global.asa文件中,如下:
Session对象的属性:
属 性 名 描 述
CodePage 将用于符号映射的代码页 。
LCID 现场标识 。
SessionID 返回用户的会话验证 。
Timeout 应用程序会话状态的超时时限,以分钟为单位 。
Session对象的 集合,
集 合 名 描 述
Contents 包含已用脚本命令添加到会话中的项目 。
StaticObjects 包含通过 <OBJECT>标记创建的并给定了会话作用域的对象 。
Session对象 只提供了 Abandon方法,该方法删除所有存储在 Session对象中的对象并释放这些对象的源。
3.5 Application对象
Application对象和 Session对象有很多相似之处,它们的功能都是用于在不同的 ASP之间共享信息。
最大的不同在于其应用的范围:
Application对象是对所有用户,
Session对象是对单一用户。
Application对象 的使用语法为:
其中 property表示 Application对象的属性,method表示 Application对象的方法 。
Application.property|method
Application对象在 global.asa文件中声明两个事件 Application_OnEnd、
Application_OnStart的脚本:
Application 对 象 对 应 两 个 事 件,
Application_OnEnd,Application_OnStart。
其中 Application_OnStart 事 件 对 应
Application对象的起始事件:每当产生一个
Application对象,该事件所定义的代码都将被 激 活 ; Application_OnEnd 事 件 对 应
Session对象的结束事件:当 Application对象被终止或失效时,该事件所对应的代码被激活 。
<SCRIPT LANGUAGE = ScriptLanguage RUNAT = Server>
Sub Application_OnStart
事件的处理程序代码
End Sub
Sub Application_OnEnd
事件的处理程序代码
End Sub
</SCRIPT>
这两个事件的代码必须放在 global.asa文件中,如下:
Application对象的集合如下:
Application对象的属性如下:
属 性 名 描 述
Lock Lock方法禁止其他客户修改 Application对象的属性 。
Unlock Unlock方法允许其他客户修改 Application对象的属性 。
集 合 名 描 述
Contents 包含所有通过脚本命令添加到应用程序中的项 。
StaticObjects 包含所有用 <OBJECT>标记添加到会话中的对象 。
3.6 ObjectContext对象
ObjectContext对象是一个以组件为主的事务处理系统,可以保证事务的成功完成 。 使用 ObjectContext对象,就允许 程 序 在 网 页 中 直 接 配 合 Microsoft
Transaction Server( MTS) 使用,从而可以管理或开发高效率的 Web服务器应用程序 。
在 ASP中使用 @TRANSACTIO关键字来完成的,语法如下:
<%@TRANSACTION = value %>
要注意的是 @TRANSACTION 指令必须位于,asp文件中的第一行,否则将出错,
必须将该指令加到要在某个事务下运行的每一页中。当脚本处理完成之后,当前事务也就结束了。
ObjectContext的 方法,
方 法 意 义
SetComplete SetComplete方法声明脚本不了解事务未完成的原因 。 如果 事 务 中的 所 有 组件 都 调 用
SetComplete,事务将完成 。
SetAbort SetAbort方法声明被脚本初始化的事务未完成,
无法更新源 。
ObjectContext对象提供 OnTransactionCommit、
OnTransactionAbort两个事件处理程序,前者是在事务完成时被激活,后者是在事务失败时激活。
SubOnTransactionCommit()
处理程序
End Sub
SubOnTransactionAbort()
处理程序
End Sub
第四章 ASP组件第四章 ASP组件
4.1 Ad Rotator组件
4.2 Browser Capabilities组件
4.3 Database Access 组件
4.4 File Access组件
4.5 Content Linking组件
4.6 其它 ASP组件使用组件可以完成诸如 Web广告条轮换、
浏览器兼容、数据库存取、服务器端文件存取等多种功能,值得一提的是,ASP提供的组件是在服务器端运行,
组 件 名 描 述
Ad Rotator 创建一个 Ad Rotator对象,该对象可按用户指定的播放顺序,在同一页上自动轮换显示各种广告 。
Browser
Capabilities
创建一个 Browser Type对象,该对象决定访问
Web站点的每个浏览器的性能,类型及版本 。
Database
Access
提供 ActiveX Data Objects(ADO) 对数据库的访问 。
Content
Linking
创建一个 Next Link对象,该对象可动态生成 Web
页内容列表,并象书一样将各页顺续连接 。
File Access 提供对 Web服务器端文件的输入输出访问 。
4.1 Ad Rotator组件
Ad Rotator组件中,能很容易实现在
Web页面上插入一个循环播放广告横幅的播放器,可以通过定义一个播放顺序文件,
使播放器能根据文件中定义的播放顺序轮流播放一系列广告图片。
Ad Rotator组件所使用的播放顺序文件是一个文本文件,只要修改这个文件,
就可以实现广告横幅播放顺序的更新。
一般来说,Ad Rotator组件相关文件除了必要的 Adrot.dll文件外,还要有循环定时文件,另外也可以有重定向文件。
循 环 定 时 文 件 也 叫 作 Rotator
Schedule文件,包含 Ad Rotator组件用于管理和显示各种广告图象的信息 。
重定向文件是 Ad Rotator组件中可选择项,如果在循环定时文件中指定使用重定向文件,每当用户点击广告时,其发出的请求对会重定向到该文件。
Ad Rotator组件的属性属 性 名 语 法 描 述
Border Border = size 允许用户指定显示广告时四周是否带边框 。
Clickable Clickable =
value
允许用户指定是否将广告作为超链接显示 。 默认值是 TRUE。
TargetFr
ames
TargetFrame =
frame
用于指定链接将被装入的目标框架 。
该属性完成的功能等价于 HTML语句中的 TARGET参数 。 frame指定用来显示广告框架的名称 。
Ad Rotator组件只要 GetAdvertisement
一个方法,主要功能在于重新取得一个将要显示的图片和超文本链接 。 语法如下:
其中 rotationSchedulePath 指定
Rotator Schedule文件相对于虚拟目录的位置 。
GetAdvertisement(rotationSchedulePath)
4.2 Browser Capabilities组件
ASP提供的 Brower Capabilities组件的使用,可以轻松地获取客户端浏览器的类型,进而判断浏览器所支持的特性,然后再根据此信息,启用浏览器支持的特性,
屏蔽不支持的特性。
Browser Capabilities组件除包含一系列属性,方法外,也有一个外部驱动文件
Browscap.ini文件 。 语法如下:
Set Browser = Server.CreateObject("MSWC.BrowserType")
Browscap.ini文件中主要定义了各种浏览器所具有的属性,可以在该文件中声明属性定义任意数量的浏览器数目,也可以设置用户浏览器不在所定义的列表中时使用的默认值 。
对每一个浏览器定义,都可以提供一个用户代理的 HTTP( HTTP User Agent) 标题和属性以及希望与标题相关联的值 。
4.3 Database Access 组件
Database Access 组件是 ASP的精华,
通过使用 该 组件,Web开发人员可以很容易地实现在 Web应用程序中访问数据库。
Database Access 组件可以通过 ADO
访问存储在数据库或其他表格化数据结构中的信息,同时支持 ODBC3.0的数据库连接池特征。
4.4 File Access组件
File Access组件可用来访问计算机文件系统的方法和属性。 该 组件是由
FileSystemObject对象,TextStream对象组成。其中,FileSystemObject对象负责文件或目录的管理,但如果你要访问文件的内容,就必须与 TextStream对象一起使用。
File Access组件建立的语法如下:
Set fs=CreateObjext(“Scripting.FileSystemObject”)
FileSystemObject对象提供对计算机文件系统的访问,共有 24种方法 ( 教材表 4.4)
和一种属性 。 语法如下:
Scripting.FileSystemObject
TextStream对象的使用可以有助于顺序访问文件,可以协助利用 File Access组件启动或建立的文件 。 语法如下:
TextStream.{property | method}
其中 property和 method参数可以是任何与 TextStream对象相关联的属性和方法。
4.5 Content Linking组件
Content Linking组件的主要目的在于管理网页或网址间的超文本链接,可以通过一个网页或网址的线性排列顺序列表来管理多个网页或网址间的超文本链接顺序。 该组件读取一个被称为线性排列顺序文本链接的文本文件,根据 该文件的内容,
组件可以自动创建每个相关页面的导航链接和目录链接 。
Content Linking组件创建语法如下:
Set NextLink = Server.CreateObject("MSWC.NextLink")
线性排列顺序文件是一个包含 Web页列表的文本文件,语法如下:
Web-page-URL [ text-description [ comment]]
其中参数 Web-page-URL表示的 Web页的虚拟或相对 URL。 参数 text-description包含
Web-page-URL 描述文字的值 。 参数
comment为组件不处理的说明性文字 。
4.6 其他 ASP组件
ASP还包括其他组件,每个组件都相当于一个小工具,利用这些组件,就可以快速、方便的构造网页。比如 Content
Rotator组件,Permission Checker组件、
Logging Utility组件,Tools组件等。
第五章 VBScript和 Jscript
第五章 VBScript和 Jscript
5.1 服务器端脚本和客户端脚
5.2 VBScript脚本语言
5.3 JScript脚本语言
ASP程序是由文本,HTML标记和脚本组合而成的。可以用任何脚本语言来编写 ASP程序中的脚本部分,只要 Web服务器上安装了该语言的脚本引擎。
目前比较流行的脚本语言有 VBScript
和 Jscript。
5.1 服务器端脚本和客户端脚本使用 VBScript和 JScript,既可编写服务器端脚本,也可编写客户端脚本。服务器端脚本在 Web服务器上执行,生成发送到浏览器的 HTML页面由 Web服务器负责。
在 ASP中,服务器端脚本要用分隔符 <
%% >括起,或者在 <SCRIPT></SCRIPT>
标记中用 RUNAT=Server表示脚本在服务器端执行。
脚本代码能够嵌入到 HTML文档的任何地方,通常都是将所有脚本代码集中放在 HEAD部分,这样可以确保在 BODY部分调用代码之前所有脚本代码都被读取并解码 。
5,2 VBScript脚本语言
VBScript是 Visual Basic的一个子集,
编程方法和 Visual Basic基本相同,但有相当多的 Visual Basic特性在 VBScript中都被删去了。
1 将单行语旬分成多行有时一条语句可能会很长,这给打印和阅读带来不便,此时可用续行符,-”
(一个空格紧跟一个下划线)将长语句分成多行。
2 在代码中加注释在 VBScript中,注释符采用西文单引号,′”,即以撇号作为注释的开始。注释可以和语句在同一行并写在语句的后面,
也可单独占一行。
3 使用不同进制的数字在 VBScript中,除了可以用默认的十进制来表示数字外,还允许用十六进制或八进制来表示数字。对于不同进制的数,
VBScript在表达方式上有明确规定,即十六进制数要加前缀& H(如& H9),八进制数要加前缀& 0(数字零)(如& 011)
4 数据类型
VBScript只有一种数据类型,即 Variant
类型。由于 Variant类型是 VBScript中唯一的数据类型,因此它也是 VBScript中所有函数的返回值的数据类型。 Variant类型可以在不同场合代表不同类型的数据。
5 变量声明变量有两种方式,即显式声明和隐式声明。
显式声明要用到 Dim语句。
隐式声明是指脚本中第一次使用变量时,就自动创建该变量。
在 VBScript中,变量命名必须遵循这样的规则:
①名字必须以字母开头;
②名字中不能含有句号;
③名字不能超过 255个字符;
④名字不能和关键字同名;
⑤名字在被声明的作用域内必须唯一。
VBScript不区分大小写。
变量被声明后不是在任何地方都可以被使用,每个变量都有它的作用域,作用域是指程序中哪些代码能引用变量。过程内部声明变量称为 过程级变量或局部变量,这样的变量只有在声明它们的过程中才能使用,即无法在过程外部访问;过程外部声明的变量称为 脚本级变量或全局变量,即在同一个程序文件中的任何脚本命令均可访问和修改该变量的值。过程级和脚本级变量可以同名,
修改其中一个变量的值,不会影响另一个。
6 常量常量是具有一定含义的名称,用于代替数值或字符串。
在 VBScript中,还可以用 Const语句来定义自己的常量。
7 数组在 VBScript中,把具有相同名字不同下标值的一组变量称为数组变量,简称数组。
数组有上界和下界,数组中的元素在上下界内是连续的。
在 VBScript中,数组有两种类型,即固定数组和动态数组。
8 运算在 VBScript中,可以进行 4种类型的运算,即算术运算、连接运算、关系运算和逻辑运算。
在表达式中,当运算符不止一种时,
要首先进行算术运算,接着进行关系运算,
然后进行逻辑运算。
9 控制结构在 VBScript中,控制结构有两种,即判定结构和循环结构。
VBScript支持的判定结构分条件结构和选择结构两种。
可以用选择结构来替代块结构的条件语句,
以便在多个语句块中有选择地执行其中的一个。
循环结构允许重复执行一行或数行代码。
在 VBScript中,提供了三种不同风格的循环结构,即 Do循环,For循环和 For Each
循环。
10 with语句
with语句用于对某个对象执行一系列操作,而不用重复指出对象的名字。
With语句可以嵌套,即 With语句能够置入另一个 With语句中,但不能用一个
With来 设置多个不同的对象。
11 过程过程是用来执行特定任务的独立的程序代码。
使用过程,可以将程序划分成一个个较小的逻辑单元,过程中的代码能够被反复调用,这样可以减少不必要的重复。
12 VBscript函数摘要
VBScript提供的函数见教材表 5.5
5,3 JScript脚本语言
Jscript完全实现了 ECMAScript-262语言规范并提供了一些增强特性。与 C++和
Java这样成熟的面向对象语言相比,功能要弱些,不能用 Jscript来编写独立运行的应用程序,Jscript脚本只能在某个解释器上运行,该解释器既可是 Web服务器,也可是
Web浏览器。 Jscript是一种宽松类型的语言,
即不必显式定义变量的数据类型,JScript
会根据需要自动进行转换。
1 语句和语句块在 JScript中,语句由一行中的一个或多个项和符号组成。每行开始一条新的语句。可以用分号 (; )来显式地终止一条语句。分号是 JScript的语句终止符。
用大括号括起来的一组 Jscript语句称为一个语句块。
2 变量
JScript通常不要求变量声明,但在使用之前先进行声明是一种良好的编程习惯。
在 JScript中,变量声明要用到 var语句。
3 数据类型
JScript有六种数据类型(见教材表
5.6)。
在 JScript中,变量在技术上没有固定的类型,但具有与其包含的值的类型等价的类型。
4 运算符
Jscript的运算符如教材表 2.7所示。
5 数组在 JScript中,可以用 new运算符和
Array()构造函数来创建数组。
当创建数组时,Jscript将在该数组中包括一个只写的 length属性,用来记录数组中的项数。
创建数组后,可以用方括号 []来访问数组中的单个元素。
6 控制结构
Jscript支持 if和 if… else条件语句。
JScript支持条件运算。条件运算在待测条件后用一个问号并指定两个可选项,
一个可选项在条件满足时使用,另一个在条件不满足时使用,选项间用冒号隔开。
JScript支持 for循环,for… in循环、
while循环和 do… while循环。
7 函数在 JScript中,可以用 function语句来创建自己的函数。
8 复制、传递和比较数据
9 特殊字符
JScript提供了一些特殊字符(见教材表 5.9),允许在字符串中包括一些无法直接键人的字符。每个特殊字符都以反斜杠开始。反斜杠是一个转义字符,表示紧随其后的字符是特殊字符。
10 固有对象
JScript提供了九个固有对象(教材表
5.10),每个固有对象都有与之关联的方法和属性。
第六章 Web数据库的使用第六章 Web数据库的使用
6,1 Web数据库的概述
6,2 ODBC的安装设置
6,3 ADO概述
6,4 Connection对象
6,5 Command对象第六章 Web数据库的使用
6,6 Recordset对象
6,7 Field对象和 Fields数据集合
6,8 Properies数据集合和 Property对象
6,9 Parameters数据集合与 Parameter对象
6,10 Errors数据集合和 Error对象
6,1 Web数据库的概述数据库是管理信息的常规方法,它可以处理各种各样的信息、试验数据、销售总结、业务记录、人事档案和顾客要求等等 。
随着网络技术的飞速发展,基于
Internet/Intranet的浏览器 /服务器结构的管理信息系统应运而生 。
要开发基于 Internet/Intranet的浏览器 /
服务器结构的管理信息系统,首先要解决的就是如何实现网页与数据库的连接和集成,实现这个目的,一般有下面三种方法:
(1) CGI的方法;
(2) Web通过处理器与数据库进行连接;
(3)采用集成了 ODBC接口功能的 Web服务器 。
现在采用的方式绝大多数都是用第三种方式 。
对于一个 ASP程序而言,它通常是通过 ADO层或 ODBC接口来访问数据库的 。
ASP对数据库的整个访问过程是这样:
客户端的浏览器向 Web服务器提出 ASP页面文件请求(包括数据库的操作),服务器将把该页面由 ASP.DLL文件进行解释,并在服务器端运行,完成数据库的操作,再把数据库操作的结果生成动态的网页返回给浏览器,浏览器再将该网页内容显示在客户端。
6,2 ODBC的安装设置本节主要介绍如何建立一个与已有数据库连接的 DSN( Data Source Name),其中 DSN表示应用程序和指定数据库的连接信息。(请参考书 6.2 )
6,3 ADO概述
ASP对数据库的访问是可以通过 ADO
模式来实现。 ADO对象给开发人员提供了一种快捷、简单、高效的数据库访问方法,
ADO可以包含在脚本中来产生对数据库的连接,并从数据库表中读取记录,形成实际要使用的对象集合。而且,对数据资源,
如数据库,ADO提供了应用程序一级的界面。
ADO对象主要是由 Connection对象,
Command 对象,Parameter 对象,
Recordset对象,Field对象,Property对象,
Error对象等七个对象,以及 Fields数据集合,Properties数据集合,Parameters数据集合,Error数据集合等四个数据集合所组成 。
在介绍 ADO的七个对象和四个数据集合后,下面将用图表的关系来介绍一下。
C o n n e c t i o n 对象 R e c o r d s e t 对象
E r r o r 对象
P a r a m e t e r
对象
C o m m a n d 对象
F i e l d 对象
E x e c u te 操作方法
A c ti v e C o n n e c t
属性
E x e c u te 操作方法
F i e l d s 数据对象
S o u r c e 属性
P a r a m e te r s
数据集合
E r r o r s 数据集合
A c ti v e C o n n e c t
属性
6,4 Connection对象在 ASP中,Connection对象是网页通过 ADO存取数据库的关键,Connection对象负责与数据库实际的连接动作,其它的对象都是必须依赖与 Connection对象的连接才能发挥其特有的功能。
Connection对象代表与数据源进行的唯一会话。
在成功安装 ASP与 Web服务器后,就可以使用 ASP Server对象的 CreateObject方法来创建 Connection对象,语法如下:
Set Conn = Server.CreateObject(“ADODB.Connect”)
Connection对象的方法包括,Open、
Execute,Close,Cancel,Save,BeginTrans、
CommitTrans,RollbackTrans等方法。(请参考书 6.4)
Connection对象的属性包括 Attributes、
CommandTimeout,ConnectionString、
ConnectionTimeout,CursorLocation、
DefaultDatabase,IsolationLevel,Mode、
Provider,State,Version等属性。
Connection对象提供 Properties,
Errors两种数据集合。前者表示 Connection
对象运行是最近一次的错误或警告信息,
后者表示 Connection对象所定义的相关属性。
6,5 Command对象
Command对象负责对数据库提供请求,
也就是传递指定的 SQL命令。使用 Command
对象可以查询数据库并返回 Recordset对象中的记录,以便执行大量操作或处理数据库结构。
使用该对象不仅能够对一般的数据库信息进行操作,还因为对象可以带输入、
输出参数,从而可以完成对数据库存贮过程的调用。
Command对象可以使用 Execute方法来执行 SQL语句或对数据库存储过程的调用,
或创建一个 RecordSet对象。
Command对象还包括一个 Parameter集合,使用该集合,可以将数据库存储过程的参数与集合中各项元素相对应,而且存储过程的输出值也作为一个参数被包含在
Parameter集合中,从而简化对存储过程的调用。
Command对象所提供的属性包括 Name、
ActiveConnection,CommandText,State、
CommandType,CommandTimeout,Prepared
等属性。
Command 对 象 提 供 了 Execute,
CreateParameter等方法 。 (请参考书 6.5。 )
6,6 Recordset对象
Recordset对象表示的是来自基本表或命令执行结果的记录全集。任何时候该对象所指的当前记录均为集合内的单个记录。
也就是说,该对象负责浏览和操作从数据库中取出的数据,该对象就像一个二维数组,数组的每一列表示数据库中的一个数据列,而同时每个数据列包含多个字段,每个数据字段就表示一个 Field对象。
Recordset对象中一共有,Open,Close、
Movefirst,MoveLast,MoveNext,Move、
MovePrevious,Update,AddNew,Delete、
NextRecordset,CancelBatch,CancelUpdate、
GetRows,Requery,Resync,Cupports、
UpdateBatch,Close等方法。
Recordset对象属性同样很多,包括了
ActiveConnection,Source,CursorLocation、
CurSorType,LockType,RecordCount、
BOF,EOF,PageCount,PageSize,State、
AbsolutePage,AbsolutePosition,Bookmark、
EditMode,Filter,MaxRecords,CacheSize、
Status等。 (请参考书 6.6)
6,7 Field对象和 Fields数据集合
Field对象代表使用普通数据类型的数据的列。前面介绍的 Recordset对象,就包含有由 Field对象组成的 Fields集合,每个
Field对象对应于 Recordset中的一列。使用 Field对象的 Value属性可设置或返回当前记录的数据。
Fields数据集合与其它数据集合一样,
都有属于自己的方法与属性,有时候也称为 Field数据集合对象。 Fields数据集合提供的方法和属性包括 Count属性,Refresh方法、
Item方法。
Field对象属性包括 Name,Value,Type、
Attribute,NumericScale,Precision、
ActualSize,DefinedSize,OriginalValue、
UnderlyingValue等属性。方法包括 GetChunk,
AppendChunk等。
6,8 Properies数据集合和
Property对象
Property 对象代表由提供者定义的
ADO对象的动态特征,动态属性由基本的数据提供者定义,并出现在相应的 ADO对象
(如 Connect对象,Command对象,Field对象,Recordset对象 )的 Properties集合中。
语法如下:
Set properties = ADO对象,Properties
Properties集合是包含特定对象实例的所有 Property 对象,有时候也称为 Properties
数据集合对象。包括 Count属性,Refresh方法,Item方法等。
Property对象主要是用来记录相应 ADO
对象的每一项属性值,包括了 Name属性、
Value属性,Type属性,Attributes属性等。
6,9 Parameters数据集合与
Parameter对象在前面介绍 Command对象时,知道
Command对象是通过 Parameter对象来传递一个参数,而 Parameters数据集合则是
Command对象所有 Parameter对象的集合。
也可以说,Parameter对象是代表与基于参数化查询或存储过程的 Command对象相关联的参数或自变量。
Parameters集合是由 Parameter对象组成的。该集合包括 Count属性,Append方法、
Delete方法,Refresh方法,Item方法。
Parameter对象负责记录程序中要传递参数的相关属性,Parameter对象提供了
Name属性,Value属性,Type属性、
Attribute属性等。
6,10 Errors数据集合和 Error
对象在 ADO关系图中,知道通过 Errors数据集合,取得系统运行时发生的错误或警告信息,从而使程序更加完善。任何涉及
ADO对象的操作都会生成一个或多个提供者错误。每个错误出现时,一个或多个 Error
对象将被放到 Connection对象的 Errors集合中。
如果是通过直接建立 Connection对象来使用,可以直接通过 Connection对象的
Errors数据集合取得 Error对象 。 如果是通过建立 Recordset对象或 Command对象,在通过 ActiveConnection 属 性 来 使 用
Connection对象时,则必须通过 Recordset
对象或 Command对象的 ActiveConnection
属性来取得 Error对象 。 语法如下:
Set Err = Connection.Errors
Set Err = Recordset.ActiveConnection.Errors
Set Err = Command.ActiveConnection.Errors
Errors数据集合,也称 Errors数据集合对象,包含在响应涉及提供者的单个失败时产生的所有 Error对象。包括 Count属性,Clear
方法,Item方法。
Error对象是负责记录存储一个系统运行时发生的错误或警告。 Error对象提供了
Desription,Number,Source,NativeError、
SQLState,HelpContext,HelpFile等属性。
第七章 数据库的访问第七章 数据库的访问
7,1 常用的 SQL命令
7,2 数据库的连接
7,3 数据的查询控制
7,4 数据的添加和删除
7,5 数据的修改
7,6 调用数据库的存储过程本章将进一步介绍如何进行
Web数据库的访问操作,下面将
ADO存取数据源的数据的一般流程表示为如图:
连接数据源执行S Q L 命令设定参数设定S Q L 命令建立事务处理数据完成
7,1 常用的 SQL命令
SQL是 Strucured Query Language的缩写,
也就是常说的结构化查询语言。使用 SQL可以实现下面的功能:
(1)修改表结构;
(2)查询表中的数据信息;
(3)添加、删除数据库中的数据内容;
(4)修改数据库中的数据记录。
1 修改表结构在 ASP中,可以通过使用 SQL语句来修改现有的表结构。
修改表结构的 SQL命令是 ALTER
TABLE,该命令可以实现两种形式的修改:
在原有的表中添加一个或多个列;修改原表中已有列的属性。
语法如下:
ALTER TABLE 表名
ADD 列名 数据类型 | MODIFY 列名 数据类型 ;
其中 ADD表示添加新列,MODIFY表示修改已有的列 。
2 查询表中的数据信息
“查询”是数据库应用开发中最常用的操作,在 SQL中,查询操作是通过 Select
语句来完成的,最简单的 Select语句如下:
Select <列名 > From 表名
Select语句还具有筛选的功能,即可以有选择地输出表中的记录,方法是在 Select
语句后面加上 Where子句,加上筛选的条件。
同时,Select语句还提供了 Order By子句,通过使用该字句,可以改变输出结果的排序方式,语法如下:
Select <列名 > From 表名 Where 条件 Order By <列 1>,<列 1>…
3 添加、删除数据库中数据在实际操作中,程序往往要将新记录数据添加到数据库中,这时就要使用 SQL
语句中 Insert语句进行数据的插入操作。程序除了要添加记录,往往还要把某些记录从数据库中删除,这时就要使用 SQL语句中的 Delete语句。
Insert语句有两种方法,语法如下:
Insert Into 表名 <列 1,列 2… > VALUES <值 1,值 2… >

Insert Into 表 1名 <列 1,列 2… > Select <列 1,列 2… > From 表 2名 Where 条件其中前一种是 Insert命令的基本形式,它将值 1,值 2等值分别赋值给列 1,列 2,并为表添加一条新的数据记录,只适用于少数记录的添加,对于大批量的数据输入,则是很不适合的 。 这时,就要使用第二种方法,这种命令格式可以将一个或多个表的记录输入到另一个表中 。
Delete语句的语法如下:
Delete From 表名 Where 条件要注意的是,如果没有在 Delete语句中加上 Where条件,则该语句将删除所有的记录,这一点需要特别注意 。
4 修改数据库中的数据记录在使用过程中,有些数据记录需要进行修改,这时就可以使用 SQL中的 Update
命令,进行修改数据库的记录,语法如下:
Update表名 Set 列 1=值 1,列 2=值 2…… Where条件
7,2 数据库的连接数据库访问操作的第一步是数据库的连接。主要分下面几种方法:
(1)设置 ODBC的方法来连接数据库
(2)直接指定 ODBC驱动程序来连接数据库
(3)设置 Connection对象的 Provider属性来设置连接信息
(4)设置 ActiveConnection参数,完成对数据源连接的设置
7,3 数据的查询控制数据库在网络中的应用,主要集中在数据的查询操作上。数据的查询主要是利用
ADO对象中的 Connection对象和 Recordset对象 。
数据的查询主要通过使用 SQL语句中的
Select语句,采用了 Select语句对表进行了筛选,然后得到了所要的数据结果。
当查询结果得到的数据记录很大的时候,就有些不适用了,如随着数据记录数量的增加,从服务器传递到客户机的时间就会增加,可能发生数据传递超时而中断的现象,同时对服务器也会产生一些不好的后果,如增加服务器的负载等 。
本节主要介绍两种方法:
一种是通过 Session对象的特性,让查询程序以一页或一条为单位进行查询操作,
主要利用 Recordset对象的 AbsolutePosition属性来记录数据指针的位置;
另一种则主要是利用 Recordset对象的
PageSize属性来控制每一页所要显示的数据记录条数,当然其间也用到了 Session对象和 Recordset对象的 AbsolutePosition属性 。
7,4 数据的添加和删除添加数据记录方法很多,这里主要介绍两种:一种是利用 SQL语句中的 Insert命令来添加数据记录;另一种是利用 ADO对象之一的 Recordset对象的 AddNew方法来添加数据记录。
数据的删除也存在两种方式:一种就是运行 SQL语句中的 Delete命令来删除表中的数据记录;另一种就是利用 Recordset对象中的 Delete方法来删除数据 。
7,5 数据的修改数据的修改也可以有相似的两种方法:
一种就是利用 SQL语句中的 Update命令来修改表中的数据记录;另一种也是利用
Recordset对象的 Update或 UpdateBatch方法来完成数据的修改。
7,6 调用数据库的存储过程存储过程是大型数据库的一个重要概念。
存储过程( Stored Procedure)有时也称为存储查询( Stored Query),是存储在数据库中的一组预先定义的 SQL语句集合,在存储过程中不仅可以包括标准的 SQL语句,还可以包含输入和输出参数。
因此在更一般意义上讲,存储过程相当于对一个数据库进行操作的子程序,如果灵活运用,则可以完成很多复杂的功能 。
存储过程具有以下优点:
(1) 存储过程在执行速度上要快得多;
(2) 存储过程减少了对磁盘的访问;
(3) 存储过程允许被嵌套调用;
(4) 提高数据的安全性;
(5) 使用存储过程可以减轻网络的通信流量;
(6) 存储过程可以带有输入输出参数,可以利用它返回一个数据集合或其它类型的结果
1 创建存储过程创建存储过程使用的是一种被称为数据定义语言( DDL)的命令,该命令对 SQL
的扩展。存储过程可以包含多条 Transact-
SQL语句,而 Transact-SQL对使用
Microsoft SQL Server非常重要,与 SQL
Server通讯的所有应用程序都通过向服务器发送 Transact-SQL语句来进行通讯。
可使用 Transact-SQL 语句 CREATE
PROCEDURE 创建存储过程。创建存储过程前,请考虑下列事项:
(1) 不能将该语句与其它 SQL 语句组合到单个批处理中;
(2) 创建存储过程的权限默认属于数据库所有者;
(3) 存储过程是数据库对象;
(4) 只能在当前数据库中创建存储过程。
而且,在创建存储过程时,还应指定:
(l) 所有输入参数和向调用过程或批处理返回的输出参数;
(2) 执行数据库操作(包括调用其它过程)的编程语句;
(3) 返回至调用过程或批处理以表明成功或失败(以及失败原因)的状态值。
创建存储过程的语法如下:
CREATE PROC [ EDURE ] procedure_name [ ; number ]
[ { @parameter data_type }
[ VARYING ] [ = default ] [ OUTPUT ]
] [,...n ]
[ WITH
{ RECOMPILE | ENCRYPTION | RECOMPILE,ENCRYPTION
} ]
[ FOR REPLICATION ]
AS sql_statement [,..n ]
各个参数的意义的意义请参考书 7.6.1。
2.在 SQL Server中创建存储过程由于在 ASP应用开发中最常用的大型数据库是 SQL Sever,这里将介绍 SQL Server
2000如何创建存储过程。需注意的是 SQL
Server一般是安装在 NT环境 。
3 在 ASP中调用存储过程在 ASP中,调用存储过程的方法主要有两种:一种是通过 Connection对象来执行存储过程,另一种是通过 Command对象来执行存储过程。
第八章 用 Visual InterDev编写调试脚本第八章 用 Visual InterDev编写调试脚本
8.1 Visual InterDev使用基础
8.2 建立 Web工程
8.3 建立 Web页
8.4 客户端脚本
8.5 服务器端脚本
Visual InterDev是 Microsoft公司推出的一个功能强大的用于在
Internet/Intranet领域建立和维护动态
Web站点的软件,是快速设计、建立和调试 Web应用程序的可视化编程环境。
使用 Visual InterDev,既可编写客户端脚本,也可编写服务器端脚本。
8.1 Visual InterDev使用基础
1 Visual InterDev主要特点网页设计器站点设计器
CSS编辑器功能强大的调试器数据库集成动态 HTML
协作开发
2 开发环境和工作模式开发环境:
每台工作站都要安装一份 Visual
InterDev或 Microsoft FrontPage。开发者可以在各自工作站上建立本地 Web( Local Web)
进行开发,从宿主 Web( Master Web)中获取文件,拷贝到本地 Web中。另外,每台工作站上应安装一份 IIS或 PWS,以便开发者在本机上测试和调试应用程序。
工作模式宿主模式( Master Mode)
本地模式( Local Mode)
脱机模式( Offline Mode)
3 Visual InterDev用户界面如上图所示,其中包括标题栏、菜单栏、
网页编辑器、工具箱、工程浏览器和属性窗口等部分。
网页编辑器工具箱属性窗口工程浏览器
8.2 建立 Web工程建立一个工程需要五步:①命名工程;
②指定服务器和工作模式;③指定 Web;④
选择一种布局;⑤选择一种主题。
建立工程后,如果要更改工作模式,请从,Project”菜单指向,Web Project”子菜单,再选择,Working Mode”子菜单的
,Local”,,Master”或,Work Offline”命令。
8,3 建立 Web页
1 添加新页面
2 设置页面属性
Web页面都有一些通用属性,如页面标题、
背景图像及颜色等。要设置这些属性,在网页编辑器中打开待设置属性的页面,然后在属性窗口的对象框中选择,DOCUMENT”,
再单击属性窗口的,Property Pages”按钮,
打开,Properties”对话框。
3 文本与列表文本输入及格式化,在页面编辑器中,可以直接输入文本并用 HTML工具栏来设置文本的格式,如标题、字体、字体号、粗体、
斜体、下划线、上下标、颜色及对齐方式列表,在 Visual InterDev中,可以建立五种列表,即无序列表、有序列表、目录列表、菜单列表和定义列表。
4 滚动文本滚动文本是指可在网页的指定区域循环往复滚动的字符串。插入滚动文本的方法是:
⑴ 将光标移到待插入滚动文本的位置。
⑵ 选择,HTML”菜单的,Marquee”命令,
网页编辑器中出现一个矩形区域。
⑶ 输入要滚动的文本,并通过 HTML工具栏对文本进行格式化处理。
5 超级链接超级链接是从文本或图像指向另一页面或其它类型文件的链接。每个超级链接包含两个端点(也称锚)和一个方向。超级链接由开始端点(称源锚)指向目标端点(称目标锚)。目标锚可以是任意的网络资源,而源锚通常是页面中的文本或图像。
6 书签书签是页面中一个预定义的位置,它可以作为同一页面或其它页面中超级链接的目标锚。当在浏览器单击指向书签的超级链接时,浏览器不仅会加载相应的页面,
而且会自动 滚动到书签的位置。
7 插入图像网页上常用的图像格式有 GIF,JPEG和
PNG。 GIF是交错图形格式,使用非常高效的无损压缩。交错图片的特点是只要一半的显示时间便可大致看出全貌。 JPEG是有损压缩的静态图像文件格式,特点是压缩比非常高并支持真彩色图像。 PNG采用无损压缩来保存图片,产生的文件比 GIF小,
支持真彩色图像。
8 表格表格由多个方框组成,这些方框排成若干行和列。每个方框称为单元格,在单元格中可以填入文字、图像和超级链接等。
9 表单表单是用来输入信息的区域。方法是:
⑴ 将光标移到合适的位置。
⑵ 选择,HTML”菜单的,Form”命令,在页面中插入一个表单。
⑶ 根据需要从工具箱的,HTML”选项卡中把表单元素拖放到页面中。
⑷ 设置表单及表单元素的属性。
10 文档大纲文档大纲以层次结构形式显示了当前页面中的所有 HTML元素和对象。在文档大纲中选择一个 HTML元素或对象,就可以在网页编辑器中将光标迅速移到相应的位置。
8,4 客户端脚本客户端脚本是嵌在网页中的一段程序,
是由浏览器进行解释执行的。客户端脚本能够为用户提供更多的交互性。例如,在将表单内容发送给服务器之前,可以用客户端脚本来验证内容的合法性,这样不需要连接服务器就能使用户得到及时的反馈。
1 设置脚本语言客户端脚本可以用 VBScript来编写,
也可用 JavaScript来编写。 Visual InterDev
默认将脚本语言设为 JavaScript。如果要将脚本语言设为 VBScript,请在,Client”框中选择 VBScript。
2 事件处理网页上的每个元素都是一个对象。对象具有自己的属性、方法和事件。事件是能被对象识别的操作。客户端脚本可以处理由网页上的元素产生的事件。当事件由系统或用户触发时,对象就会对事件做出响应。响应某个事件后执行的操作是通过一段代码来实现的,这段代码称为事件处理函数。
3 脚本大纲
Visual 1nterDeV提供了一个脚本大纲来帮助开发人员编写事件处理函数,脚本大纲按层次结构显示了网页中的所有的对象、
事件和脚本。
4 样式属性要在脚本中访问元素的样式属性,需借助 style这个辅助对象才能实现。
8.5 服务器端脚本与客户端脚本一样,服务器端脚本也是嵌入在网页中的一小段程序,区别是:服务器端脚本是在 Web服务器上执行,而客户端脚本是由浏览器执行。
在 ASP页中,服务器端脚本要使用分隔符 <%和 %>括起,或者在 <SCRIPT>和
</SCRIPT>标记中用 RUNAT=Server表示脚本在服务器端执行。
第九章 如何建立自己的 ASP
组件第九章 如何建立自己的 ASP组件
9.1 什么是 ActiveX Server Components
9.2 Visual Basic 6.0与 ActiveX Server
Components
9,3 使用 ActiveX组件封装复杂计算和向
ASP导出高级语言的函数
9.1 什么是 ActiveX Server
Components
除了内置对象,ASP还提供了一些基本组件( Base Component),称为
ActiveX Server Components。
它们包括对用户浏览器能力及用户环境侦测组件的 Browser Capabilities
Component、提供建立动态广告板的 Ad
Rotator Component、协助管理、更新及建立网页连接功能的 Content Linking
Component、具有建立或存取服务器端文字文件能力的 File Access Component及具有建立网页计数器能力的 Page Counter
Component等。
9,2 Visual Basic6.0与
ActiveX Server Components
1 使用 Visual Basic 6.0编写
ASP组件开发 ActiveX Server Components可以使用很多工具,如 C/C++,Visual Basic或
Delphi等。这里通过示例介绍如何使用
Microsoft Visual Basic 6.0来编写属于自己的组件。
Visual Basic 6.0属性视窗及对象类别的属性
Name(名称)
DataBindingBehavior
DataSourceBehavior
Instancing
MTSTransactionMode
Persistable
2 通过 ASP调用自建组件编写前端用户界面编写后端处理程序
9,3 使用 ActiveX组件封装复杂计算和向 ASP导出高级语言的函数在 ASP脚本的编制过程中,可采用
VBScript和 JavaScript两种脚本语言。这两种脚本提供了丰富的功能和函数,但有时候它们提供的功能是不够的,碰到这种情况,一种行之有效的方法是使用 ActiveX组件来封装用高级语言编制的复杂计算,或者将高级语言的函数导出到 ASP应用程序中。
第十章 ASP应用程序开发入门第十章 ASP应用程序开发入门
10.1 ASP应用程序概述
10.2 网上投票系统
10.3 创建在线商店
10,1 ASP应用程序概述
ASP应用程序是通过 Internet服务管理器来创建与管理其所在的虚拟目录和所有子目录的。
基于 ASP的应用程序通常有两种状态:
应用程序状态,该状态对应 ASP中的
Application对象,在这种状态下,应用中的所有信息可以为登录到网上的所有用户使用。
会话状态,该状态对应 ASP中的 Session对象,在这种状态下,应用中的所有信息,
只能被一个对话中的用户使用。
在编写 ASP应用程序代码时,可以通过
Global.asa文件处理有关 ASP应用的所有事件。
Global.asa文件是一个普通文本文件,其后缀名 asa代表 Active Server Application(活动服务器应用),使用任何一个普通的文本编辑器都可以编辑它。
Global.asa文件在以下两种情况下被调用:
⒈ Web服务器第一次接收到客户端对 ASP 文件的请求;
⒉ 尚未处于会话状态用户请求一个 ASP文件。
10,2 网上投票系统设计网上投票系统的关键之处在于,
如何保存和读取选票结果。在 ASP应用程序中,主要通过两种形式保存数据,一是文本文件;二是数据库。这两种方法各有优劣,适用于不同的场合。
在 ASP里,用 FileSystemObject( FSO)
对象模式来处理驱动器、文件夹和文件。
FileSystemObject( FSO)对象模式下包含着不同的子对象和集合,通过它们,可以在 WEB服务器上添加、移动、改变、创建或删除文件夹(目录)和文件。
10,3 创建在线商店在线商店应用程序将会成为与访问客户交换信息的双向通道,所以创建一个三个表的相关数据库 。
1.Mproduce( 产品 ) 表:在 Mproduce表中存储待售商品的信息;
2.Member( 会员 ) 表:在 Member表中存储会员的信息;
3.Hbuy( 定货 ) 表:在 Hbuy表中包含了每个定单每项内容的每一条记录 。
1,Mproduce表,Mproduce表中存储了名称、产品描述等信息,它包含下列字段:
字段名 含义
Mpno 包含一个作为记录识别标志的自动增加的数字域
Mpname 包含商品名称的文字域
Mpprice 包含商品单价的数字域
Mpunit 包含商品单位的文字域
Mpnum 包含商品库存量的数字域
Mpphoto 包含商品图片名称 (商品图片存储在
Image文件夹 )的文字域
2,Member表,Member表存储了会员的基本信息,
它包含下列字段:
字段名 含义
Meno 包含一个作为记录识别标志的自动增加的数字域
Mename 包含会员名称的文字域
Mepwd 包含会员密码的文字域
Metruename 包含会员真实姓名的文字域
Memoney 包含会员金额的数字域
Meemail 包含会员 EMAIL地址的文字域
Megrand 包含会员等级的文字域,1表示此会员为系统管理员
3,Hbuy表,Hbuy表存储了会员购买商品的信息,
它包含下列字段:
字段名 含义
Hbno 包含一个作为记录识别标志的自动增加的数字域
Meno 包含会员编号的数字域
Mpno 包含商品编号的数字域
Hbdate 包含购买日期的日期域
Hbnum 包含购买某一商品数目的数字域
Hbqf 包含最近一次购买标志的文字域,1表示为最近一次购买内容第十一章 ASP程序的调试第十一章 ASP程序的调试
11,1 错误处理
11,2 Err对象
11,3 脚本调试器
11,1 错误处理错误处理是指发生错误时,在代码中进行某些处理或仅捕获该错误而不进行处理 。 错误发生的原因有许多种:当程序正在使用的一些服务程序没有正常安装,这时就会发生错误;当程序代码中使用了不正确的语法也会有错误发生;
当程序代码中出现了系统不知道如何处理的情况时也会发生错误 。
通过设置可以改变 IIS采用的默认处理错误代码程序,但这也仅仅提供某一个错误更友好的更容易理解的提示 。 所以,在实际操作的时候,通常自己编写代码来检查错误,然后根据该错误采取适当的处理方法 。
如果想在 ASP程序中处理错误代码,
那么就要使用 On Error语句,并将该语句放在 Option Explicit语句后,其它所有的代码之前。
On Error语句语法如下:
On Error Resume Next
这条语句是说明如果一行代码产生一个错误,就跳过该行代码而继续执行下面的语句,后面的语句代码就可以用来处理该错误。
11,2 Err对象
Err对象是用来判断发生什么错误 。 该对象提供了一系列的属性和方法,提供这些属性和方法就可以得到各种错误信息 。
Err对象包含五个属性( Number、
Description,Source,HelpFile、
HelpContext),这五个属性包含了一个错误的所有细节 。
通过合理使用 Err对象的这个五个属性,
就可以很清楚的了解错误的类型。在这个五个属性中,最常用的是前面三个。
Err对象包括两个方法( Clear,Raise),
可以用来操作 Err对象 。
现在可以使用 Err对象来识别发生的错误,但如果需要处理更加困难的问题,比如有访问者告诉网页存在问题,但又不知道位置,也不知道出了什么问题,这时就很难处理,很难找到错误发生的时间和页面 。
如果能将错误发生的时间和发生的页面记录在一个文本中以便以后补救,这是一个很有帮助的方法 。 利用这种方法可以帮助定位所发生的错误,也可以判断什么错误根本没有发生过 。
11,3 脚本调试器要检查错误发生的地方,就要一行一行的跟踪代码的执行过程,以便得到变量的变化结果 。 如果采用脚本调试器就能很容易地完成在 Windows2000中自带的 IIS5.0就有脚本调试器,通过设置就可以很方便的调用脚本调试器调试出错的网页 。