39
第第第 ASP 第第第第第 第第第第 • ASP 第第第第 第第第第第第第 第第第第第第 第第第第第第 第第第第第第第 第第第第第第

第 五 章 ASP 的内置组件

  • Upload
    peigi

  • View
    81

  • Download
    0

Embed Size (px)

DESCRIPTION

第 五 章 ASP 的内置组件. 本章要点 • ASP 组件概述 • 数据库存取组件 • 文件存取组件 • 广告轮显组件 • 浏览器兼容组件 • 文件超链组件. 5.1 ASP 组件概述. 5.2 数据库存取组件. ADO,ActiveX Database Objects ODBC,Open DataBase Connectivity. 5.3 文件存取组件. • 利用文件存取组件可以对服务器上的文件和文件夹进行管理,如文本文件的存取、文件和文件夹的复制、移动和删除等等。 - PowerPoint PPT Presentation

Citation preview

Page 1: 第 五 章   ASP 的内置组件

第五章 ASP 的内置组件本章要点• ASP 组件概述• 数据库存取组件• 文件存取组件• 广告轮显组件• 浏览器兼容组件• 文件超链组件

Page 2: 第 五 章   ASP 的内置组件

5.1 ASP 组件概述组件名 说 明

数据库存取组件 用于存取数据库

文件存取组件 用于存取文件,提供文件 I/O 方法

广告轮显组件 构建广告页面,维护、修改便利

浏览器兼容组件 根据客户端浏览器类型送出正确的 Web 页面

文件超链组件 用于构建超链接 Web 页面

Page 3: 第 五 章   ASP 的内置组件

5.2 数据库存取组件ADO,ActiveX Database ObjectsODBC,Open DataBase Connectivity

Page 4: 第 五 章   ASP 的内置组件

5.3 文件存取组件• 利用文件存取组件可以对服务器上的文件和

文件夹进行管理,如文本文件的存取、文件和文件夹的复制、移动和删除等等。

• 对于 Windows NT/2000 ,必须将文件及文件夹的权限设置为任何人可以存取。

• 文件存取组件包含的常见对象: FileSystemObject 、 TextStream 、

File 、 Folder

Page 5: 第 五 章   ASP 的内置组件

5.3.1 FileSystemObject 对象的方法• 此为最主要的对象,可以创建、打开或读写

文件,并可以对文件和文件夹进行新建、复制、移动、删除等操作。

Page 6: 第 五 章   ASP 的内置组件

方 法 说 明CreateTextFile 新建一个文本文件OpenTextFile 打开一个已有文本文件GetFile 返回一个 File 对象CopyFile 复制文件MoveFile 移动文件DeleteFile 删除文件FileExists 判断文件是否存在GetFolder 返回一个 Folder 对象CreateFolder 创建一个文件夹CopyFolder 复制一个文件夹MoveFolder 移动一个文件夹DeleteFolder 删除一个文件夹FolderExists 判断一个文件夹是否存在

Page 7: 第 五 章   ASP 的内置组件

5.3.2 TextStream 对象的属性与方法

属 性 说 明AtEndOfLine 语法: TextStream 对象 . AtEndOfLineAtEndOfStream 语法: TextStream 对象 . AtEndOfStreamColumn 语法: TextStream 对象 . Column

返回光标所在列Line 语法: TextStream 对象 . Line

返回光标所在行

Page 8: 第 五 章   ASP 的内置组件

方 法 说 明Close 语法: TextStream 对象 .Close()Read 语法: TextStream 对象 .Read(Characters

Num)ReadAll 语法: string=tStream.AllReadLine 语法: string=tStream.ReadLineSkip 语法: tStream.Skip(CharactersNum)SkipLine 语法: tStream.SkipLineWrite 语法: tStream.Write(string)WriteLine 语法: tStream.WriteLine([string])WriteBlankLine

语法: tStream.WriteBlankLines(NumOflines)

Page 9: 第 五 章   ASP 的内置组件

5.3.3 新建文本文件• 新建文本文件涉及 FileSystemObject 对象和

该对象的 CreateTextFile 方法• 语法:Set < 文件系统对象名 >= Server.CreateObject(“Scripting.FileSystemObjec

t”)Set < 文本流对象名 >=< 文件系统对象名 >.CreateTextFile(filename[,overwrite])Overwrite: 为 true ,允许覆盖;为 false ,则不允许覆盖。 缺省值为 flase

Page 10: 第 五 章   ASP 的内置组件

5.3.3 新建文本文件例<%

Dim FileObject ' 定义一个 FileSystemObject 对象实例Dim TextFile ' 定义一个 TextStream 对象实例Set FileObject=

Server.CreateObject("Scripting.FileSystemObject")Set TextFile= FileObject.CreateTextFile("c:\inetpub\wwwroot\asptemp\chapter8\test.txt")TextFile.WriteLine(" 你好 ")TextFile.Close ' 关闭 TextStream 对象%>

Page 11: 第 五 章   ASP 的内置组件

5.3.4 文本文件的读取或添加• 对文本文件进行读取和添加,需要用 FileSy

stemObject 对象和 OpenTextFile 方法,以及 TextStream 对象的 WriteLine 和 readLine 方法等。

• 语法Set < 文本流对象 >= < 文件系统对象 >. OpenTextFile(filename[,iomode,[ctrate]])

Page 12: 第 五 章   ASP 的内置组件

5.3.4 文本文件的读取或添加 ( 续 )

OpenTextFile 方法的参数

• Filename: 指定待打开的文件名称及其路径• Iomode: 指定待打开文件操作模式, 1 为只

读; 2 为可写; 8 为添加。缺省为 1 。• Create: 指定待打开文件不存在时,是否自动

建立新文件, true 为是, false 为否。缺省为 false 。

Page 13: 第 五 章   ASP 的内置组件

5.3.4.1 逐行读取并显示文本文件<%

Dim FileObject ' 定义一个 FileSystemObject 对象实例Dim TextFile ' 定义一个 TextStream 对象实例Set FileObject=

Server.CreateObject("Scripting.FileSystemObject")Set TextFile= FileObject.OpenTextFile("c:\inetpub\wwwroot\asptemp\chapter8\test.txt")Do While Not TextFile.AtEndOfStream

Response.Write TextFile.ReadLine & "<br>" Loop

TextFile.Close ‘ 关闭 TextStream 对象%>

Page 14: 第 五 章   ASP 的内置组件

5.3.4.2 对文本文件添加内容<%

Dim FileObject ' 定义一个 FileSystemObject 对象实例Dim TextFile ' 定义一个 TextStream 对象实例Set FileObject=

Server.CreateObject("Scripting.FileSystemObject")Set TextFile= FileObject.OpenTextFile("c:\inetpub\wwwroot\asptemp\chapter8\test.txt",8,True)TextFile.WriteLine(" 添加内容 ") ' 添加内容TextFile.Close ' 关闭 TextStream 对象%>

Page 15: 第 五 章   ASP 的内置组件

5.3.5 文本的复制、移动和删除• 复制< 文件系统对象 >.CopyFile 源文件名,目标文件名• 移动< 文件系统对象 >.MoveFile 源文件名,目标文件名• 删除< 文件系统对象 >.DeleteFile 文件名• 文件是否存在< 文件系统对象 >.FileExists( 文件名 )

Page 16: 第 五 章   ASP 的内置组件

<%Dim FileObject ' 定义一个 FileSystemObject 对象实例Set FileObject=Server.CreateObject("Scripting.FileSystemObject")Dim SourceFile,DestiFile ' 定义源文件和目标文件变量SourceFile="c:\inetpub\wwwroot\asptemp\chapter8\test.txt"DestiFile="c:\inetpub\wwwroot\asptemp\chapter8\test2.txt"FileObject.CopyFile SourceFile, DestiFile SourceFile="c:\inetpub\wwwroot\asptemp\chapter8\test2.txt"DestiFile="c:\inetpub\wwwroot\asptemp\chapter8\temp\test2.txt"FileObject.MoveFile SourceFile, DestiFile

SourceFile="c:\inetpub\wwwroot\asptemp\chapter8\temp\test2.txt"IF FileObject.FileExists(SourceFile) Then

FileObject.DeleteFile SourceFile End If%>

Page 17: 第 五 章   ASP 的内置组件

5.3.6 文本夹的新建立、复制、移动和删除• 新建< 文件系统对象 >.CopyFolder 文件夹名• 复制< 文件系统对象 >.CopyFolder 源文件夹名,目标文件夹名• 移动< 文件系统对象 >.MoveFolder 源文件夹名,目标文件夹名• 删除< 文件系统对象 >.DeleteFolder 文件夹名• 文件是否存在< 文件系统对象 >. FolderExists( 文件夹名 )

Page 18: 第 五 章   ASP 的内置组件

<%Dim FileObject ' 定义一个 FileSystemObject 对象实例Set FileObject=Server.CreateObject("Scripting.FileSystemObject")Dim SourceFolder,DestiFolder ' 定义源文件夹和目标文件夹变量' 新建文件夹 --- 新建 new1 文件夹SourceFolder="c:\inetpub\wwwroot\asptemp\chapter8\new1"FileObject.CreateFolder SourceFolder ' 复制文件夹 --- 将 new1 复制为 new2 文件夹SourceFolder="c:\inetpub\wwwroot\asptemp\chapter8\new1"DestiFolder="c:\inetpub\wwwroot\asptemp\chapter8\new2"FileObject.CopyFolder SourceFolder, DestiFolder

Page 19: 第 五 章   ASP 的内置组件

' 移动文件夹 --- 将 new2 文件夹移动到 new1 下SourceFolder="c:\inetpub\wwwroot\asptemp\chapter8\new2"DestiFolder="c:\inetpub\wwwroot\asptemp\chapter8\new1\new2"FileObject.MoveFolder SourceFolder, DestiFolder ' 删除文件夹 --- 如存在,将 new2 文件夹删除SourceFolder="c:\inetpub\wwwroot\asptemp\chapter8\new1\new2"IF FileObject.FolderExists(SourceFolder) Then

FileObject.DeleteFolder SourceFolder End If%>

Page 20: 第 五 章   ASP 的内置组件

5.3.7 显示文本夹下的所有内容

• 我们可以利用 Folder 对象来列出文件夹下的所有文件和子文件夹

Folder 对象的属性

属 性 说 明

Files 返回文件夹中的所有文件

Folder 返回文件夹中的所有子文件夹

Size 返回指定文件夹大小

Page 21: 第 五 章   ASP 的内置组件

<%Dim myFileObject ' 定义一个 FileSystemObject 对象实例Dim myFolder ' 定义一个 Folder 对象Set myFileObject=Server.CreateObject("Scripting.FileSystemObject")'GetFolder 方法将返回一个 Folder 对象Set myFolder=myFileObject.GetFolder("d:\plan")Response.Write "d:\plan 子文件夹如下: <br>"For Each Item In myFolder.SubFolders

Response.Write Item & "<br>"NextResponse.Write "d:\plan 子文件如下: <br>"For Each Item In myFolder.Files

Response.Write Item & "<br>"Next

%>

Page 22: 第 五 章   ASP 的内置组件

5.4 广告轮显组件• 广告轮显组件, Ad Rotate Component ,

可用于制作交替变换的广告 Web 页面,每次从客户端进入或刷新该 Web 页面时,显现出来的广告信息就会发生变化。

• 使用方便,以文本文件存放广告信息,维护时只要修改这个文本文件即可,不必修改网页代码。

Page 23: 第 五 章   ASP 的内置组件

5.4.1 广告轮显组件的组成• 广告信息文本文件:记载广告信息的文本文

件• 超链接处理文件:引导客户到相应广告网页

的 ASP 文件• 显示广告图片文件:存放广告图片的文件

Page 24: 第 五 章   ASP 的内置组件

5.4.2 广告轮显组件的属性属 性 说 明

Border 确定广告图片的边框大小语法: ad.BorderSize=整数值

Clickable 确定广告图片是否提供超链接功能语法: ad. Clickable=true/false

TargerFrame 确定超链接的 Web 页面ad. TargerFrame=“Target=‘targetname’”Targetname 系超链接的窗口或框架名称,如 _TOP,_NEW,_CHILD,_SELF,_PARENT, _BLANK或用户自定义名

Page 25: 第 五 章   ASP 的内置组件

5.4.2 广告轮显组件的方法

属 性 说 明GetAdvertisement

获取广告信息语法: ad. GetAdvertisement(<广告信息文本文件名 >)

Page 26: 第 五 章   ASP 的内置组件

5.4.3 广告轮显组件使用表例• 建立广告信息文本文件(1) 第 1 行确定超链接处理文件(2) 第 2 、 3行指定图片的宽度、高度和边框(3) 具体的广告信息放在 *的下行• 超链接处理文件<%Response.Redirect Request.QueryString("url") '引导客户至相应网址

%>

Page 27: 第 五 章   ASP 的内置组件

5.4.3 广告轮显组件使用表例REDIRECT 8-8.aspWIDTH 440HEIGHT 60BORDER 20*images/jjshang.gifhttp://jjshang.126.com/尚俊杰个人主页20

images/sohu.gifHTTP://www.sohu.com/搜狐20images/edu.gifhttp://www.edu.cn/中国教育科研网20

Page 28: 第 五 章   ASP 的内置组件

5.4.3 广告轮显组件使用表例• 建立广告信息显示文件<%

Dim Ad ' 定义一个广告轮显组件实例变量Set Ad=Server.CreateObject("MSWC.AdRotator")ad.Border=1 ' 定义图片边框为 1 象素ad.Clickable=True ' 该图片提供超链接功能ad.TargetFrame="target='_NEW'" ' 在新窗口中打开网址Response.Write Ad.GetAdvertisement("adver.txt")

'获取广告信息%>

Page 29: 第 五 章   ASP 的内置组件

5.5 浏览器兼容组件• 浏览器不同,网页效果可能也不同。• 应该根据不同的浏览器设计不同的 Web程序。• 浏览器兼容组件可用于检测客户端的浏览器

类型、环境等特性。

Page 30: 第 五 章   ASP 的内置组件

5.5.1 浏览器兼容组件的工作原理• 客户端服务器端,请求, User_Agent 页眉,

其中包含客户端浏览器的种类及版本信息。• 浏览器兼容组件用该页眉信息与 Browsercap.i

ni 文件内容进行比较。如有相匹配的浏览器,就认为是一致的;否则,按所设定的缺省浏览器信息处理。

Page 31: 第 五 章   ASP 的内置组件

属 性 说 明Browser 浏览器类型名称Version 浏览器版本majorver 浏览器主版本minorver 浏览器次版本Frame 是否支持框架功能

Tables 是否支持表格功能

Cookies 是否支持 Cookies

Backgroundsounds

是否支持背景音乐

Vbscript 是否支持 VbscriptJavascript 是否支持 JavascriptJavaapplets 是否支持 JavaappletsActiveXControls 是否支持 ActiveXControls 控件

Page 32: 第 五 章   ASP 的内置组件

5.5.2 浏览器兼容组件使用表例语法:Set < 对象实例名 >= Server.CreateObject(“MSWC.BrowserTyp

e”)< 对象实例名 >.< 属性 >

Page 33: 第 五 章   ASP 的内置组件

5.5.2 浏览器兼容组件使用表例( 续 )

<%Dim Bc ' 定义一个组件实例变量Set Bc=Server.CreateObject("MSWC.BrowserType")Response.Write " 浏览器类型: " & Bc.Browser & "<br>"Response.Write " 浏览器版本: " & Bc.Version & "<br>"Response.Write " 支持 Cookies 否: " & Bc.Cookies & "<br>"Response.Write " 支持 Java 小程序否: " & Bc. Javaapplets

%>

Page 34: 第 五 章   ASP 的内置组件

5.5.2 浏览器兼容组件使用表例( 续 )

Page 35: 第 五 章   ASP 的内置组件

5.6 文件超链接组件• 文件超链接组件用于建立便于维护的 Web索引站点

• 步骤: (1) 建立超链接数据文件, *.txt

(2) 读取并显示超链接数据文件内容, *.asp

• 文件超链接组件的方法

Page 36: 第 五 章   ASP 的内置组件

方 法 说 明GetListCount 返回超链接的地址个数

语法: n=< 对象实例 >. GetListCount(< 文件名 >)GetListIndex 返回当前页的位置

语法: n=< 对象实例 >. GetListIndex (< 文件名 >)GetNextURL 返回超链接文件中的下一个 URL 地址

GetPreviousURL 返回超链接文件中的上一个 URL 地址

GetNextDescription 返回超链接文件中的下一个地址的描述

GetPreviousDescription 返回超链接文件中的上一个地址的描述

GetNthURL 返回超链接文件中的第 N 个 URL 地址n=< 对象实例 >. GetNthURL (< 文件名 >, index)

GetNthDescription 返回超链接文件中的第 N 个地址描述n=< 对象实例 >. GetNthDescription (< 文件名 >, index)

Page 37: 第 五 章   ASP 的内置组件

5.6 文件超链接组件使用示例www.chinaasp.com 中国 ASP网站www.fanso.com 会化云坊www.edu.cn 中国教育网www.sohu.com 搜狐

Page 38: 第 五 章   ASP 的内置组件

<%Dim Link ' 定义一个组件实例变量Dim I,Sum ' 定义两个变量待用Set Link=Server.CreateObject("MSWC.nextlink")Sum=Link.GetListCount("link.txt") ' 返回 URL网络导航总数For I=1 to Sum ' 用循环依次写出所有的网络导航

%><a href="http://<%=Link.GetNthURL("link.txt",I)%>" target="_New"> <%=Link.GetNthDescription("link.txt",I)%></a><br><% Next %>

Page 39: 第 五 章   ASP 的内置组件

5.6 文件超链接组件使用示例