390 likes | 539 Views
第 五 章 ASP 的内置组件. 本章要点 • ASP 组件概述 • 数据库存取组件 • 文件存取组件 • 广告轮显组件 • 浏览器兼容组件 • 文件超链组件. 5.1 ASP 组件概述. 5.2 数据库存取组件. ADO,ActiveX Database Objects ODBC,Open DataBase Connectivity. 5.3 文件存取组件. • 利用文件存取组件可以对服务器上的文件和文件夹进行管理,如文本文件的存取、文件和文件夹的复制、移动和删除等等。
E N D
第五章 ASP的内置组件 本章要点 • ASP组件概述 •数据库存取组件 • 文件存取组件 • 广告轮显组件 •浏览器兼容组件 •文件超链组件
5.2 数据库存取组件 ADO,ActiveX Database Objects ODBC,Open DataBase Connectivity
5.3 文件存取组件 •利用文件存取组件可以对服务器上的文件和文件夹进行管理,如文本文件的存取、文件和文件夹的复制、移动和删除等等。 • 对于Windows NT/2000,必须将文件及文件夹的权限设置为任何人可以存取。 • 文件存取组件包含的常见对象:FileSystemObject、TextStream、 File、Folder
5.3.1 FileSystemObject对象的方法 •此为最主要的对象,可以创建、打开或读写文件,并可以对文件和文件夹进行新建、复制、移动、删除等操作。
5.3.3 新建文本文件 • 新建文本文件涉及FileSystemObject对象和该对象的CreateTextFile方法 •语法: Set <文件系统对象名>= Server.CreateObject(“Scripting.FileSystemObject”) Set <文本流对象名>= <文件系统对象名>.CreateTextFile(filename[,overwrite]) Overwrite:为true,允许覆盖;为false,则不允许覆盖。 缺省值为flase
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对象 %>
5.3.4 文本文件的读取或添加 • 对文本文件进行读取和添加,需要用FileSystemObject对象和OpenTextFile方法,以及TextStream对象的WriteLine和readLine方法等。 • 语法 Set <文本流对象>= <文件系统对象>. OpenTextFile(filename[,iomode,[ctrate]])
5.3.4 文本文件的读取或添加(续) OpenTextFile方法的参数 • Filename: 指定待打开的文件名称及其路径 • Iomode: 指定待打开文件操作模式,1为只读;2为可写;8为添加。缺省为1。 • Create: 指定待打开文件不存在时,是否自动建立新文件,true为是,false为否。缺省为false。
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对象 %>
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对象 %>
5.3.5 文本的复制、移动和删除 • 复制 <文件系统对象>.CopyFile 源文件名,目标文件名 • 移动 <文件系统对象>.MoveFile 源文件名,目标文件名 • 删除 <文件系统对象>.DeleteFile 文件名 •文件是否存在 <文件系统对象>.FileExists(文件名)
<% 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 %>
5.3.6 文本夹的新建立、复制、移动和删除 • 新建 <文件系统对象>.CopyFolder 文件夹名 • 复制 <文件系统对象>.CopyFolder 源文件夹名,目标文件夹名 • 移动 <文件系统对象>.MoveFolder 源文件夹名,目标文件夹名 • 删除 <文件系统对象>.DeleteFolder 文件夹名 •文件是否存在 <文件系统对象>. FolderExists(文件夹名)
<% 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
'移动文件夹---将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 %>
5.3.7 显示文本夹下的所有内容 • 我们可以利用Folder对象来列出文件夹下的所有文件和子文件夹 Folder对象的属性
<% 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>" Next Response.Write "d:\plan子文件如下:<br>" For Each Item In myFolder.Files Response.Write Item & "<br>" Next %>
5.4 广告轮显组件 • 广告轮显组件,Ad Rotate Component,可用于制作交替变换的广告Web页面,每次从客户端进入或刷新该Web页面时,显现出来的广告信息就会发生变化。 •使用方便,以文本文件存放广告信息,维护时只要修改这个文本文件即可,不必修改网页代码。
5.4.1 广告轮显组件的组成 •广告信息文本文件:记载广告信息的文本文件 •超链接处理文件:引导客户到相应广告网页的ASP文件 •显示广告图片文件:存放广告图片的文件
5.4.3 广告轮显组件使用表例 •建立广告信息文本文件 • 第1行确定超链接处理文件 • 第2、3行指定图片的宽度、高度和边框 • 具体的广告信息放在*的下行 • 超链接处理文件 <% Response.Redirect Request.QueryString("url") '引导客户至相应网址 %>
REDIRECT 8-8.asp WIDTH 440 HEIGHT 60 BORDER 20 * images/jjshang.gif http://jjshang.126.com/ 尚俊杰个人主页 20 images/sohu.gif HTTP://www.sohu.com/ 搜狐 20 images/edu.gif http://www.edu.cn/ 中国教育科研网 20 5.4.3 广告轮显组件使用表例
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") '获取广告信息 %>
5.5 浏览器兼容组件 • 浏览器不同,网页效果可能也不同。 • 应该根据不同的浏览器设计不同的Web程序。 • 浏览器兼容组件可用于检测客户端的浏览器类型、环境等特性。
5.5.1 浏览器兼容组件的工作原理 • 客户端服务器端,请求,User_Agent页眉,其中包含客户端浏览器的种类及版本信息。 • 浏览器兼容组件用该页眉信息与Browsercap.ini文件内容进行比较。如有相匹配的浏览器,就认为是一致的;否则,按所设定的缺省浏览器信息处理。
5.5.2 浏览器兼容组件使用表例 语法: Set <对象实例名>= Server.CreateObject(“MSWC.BrowserType”) <对象实例名>.<属性>
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 %>
5.6 文件超链接组件 •文件超链接组件用于建立便于维护的Web索引站点 • 步骤: (1)建立超链接数据文件,*.txt (2) 读取并显示超链接数据文件内容,*.asp • 文件超链接组件的方法
5.6 文件超链接组件使用示例 www.chinaasp.com 中国ASP网站 www.fanso.com 会化云坊 www.edu.cn 中国教育网 www.sohu.com 搜狐
<% 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 %>