Server对象与服务器端文件访问.docx

上传人:b****6 文档编号:4348605 上传时间:2022-11-30 格式:DOCX 页数:25 大小:27.06KB
下载 相关 举报
Server对象与服务器端文件访问.docx_第1页
第1页 / 共25页
Server对象与服务器端文件访问.docx_第2页
第2页 / 共25页
Server对象与服务器端文件访问.docx_第3页
第3页 / 共25页
Server对象与服务器端文件访问.docx_第4页
第4页 / 共25页
Server对象与服务器端文件访问.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

Server对象与服务器端文件访问.docx

《Server对象与服务器端文件访问.docx》由会员分享,可在线阅读,更多相关《Server对象与服务器端文件访问.docx(25页珍藏版)》请在冰豆网上搜索。

Server对象与服务器端文件访问.docx

Server对象与服务器端文件访问

Server对象与服务器端文件访问

7.1Server对象属性及方法

Server对象是专门为处理服务器上的事物而设计的内置对象,专门是与服务器的环境和处理活动有关的任务。

有了sever对象,就能够在服务器上启动ActiveX控件。

事实上,当你用ASP编写服务器端应用程序时,必须依靠ActiveX组件来强大Web应用程序的功能,譬如:

你需要连接数据库,对数据库进行在线操作或者对WEB服务器上的文件系统进行操作,亦或你需要一个WEB广告交换程序,所有这一切你都必须通过调用ASP内建的ActiveX组件或自己编写所需的组件来完成。

事实上ActiveX组件是一个存在于WEB服务器上的文件,该文件包含执行某项或一组任务的代码,组件能够执行公用任务,如此就不必自己去创建执行这些任务的代码。

当你在WEB服务器上安装完ASP环境后,就能够直截了当使用它自带的几个常用组件,如DatabaseAccess组件。

因此你也能够从第三方开发者处获得可选的组件,也能够编写自己的组件。

能够使用任何支持组件对象模型(COM)的语言来编写组件,如,C、C++、Java或VisualBasic。

ActiveX是Microsoft对INTERNET上使用OLE/COM作为基础技术的规格定义,ActiveX是Microsoft提出的一组使用COM(ComponentObjectModel,部件对象模型)使得软件部件在网络环境中进行交互的技术集。

它与具体的编程语言无关。

作为针对Internet应用开发的技术,ActiveX被广泛应用于WEB服务器以及客户端的各个方面。

同时,ActiveX技术也被用于方便地创建一般的桌面应用程序。

能够使用VB、VC等编程工具开发该控件。

要使用Active控件必须先注册才能使用(已注册的组件,能够在注册表的HKEY—CLASSES—ROOT中找到)。

具体使用组件时,第一要创建对象的实例并将那个新的实例分配变量名。

使用ASP的Server.CreateObject方法能够创建对象的实例。

7.1.1Server对象的属性

Server对象的属性为:

ScriptTimeOut.通过设置该属性值能够强制规定脚本的最长执行时刻(单位:

秒)。

ScriptTimeout默认值为90秒。

设置该属性值的方法:

例如Server.ScriptTimeout=120

摸索题:

如何验证ScriptTimeout的默认值为90秒呢?

例:

应用ScriptTimeout防止脚本显现死循环。

ScriptTimeout属性用法示例

<%

Server.ScriptTimeout=1'设置脚本文件最长执行时刻为1秒

Dimi

i=1

DoWhilei>0'死循环程序

i=i+1

Loop

%>

7.1.2Server的方法

Server的方法要紧有:

ØCreateObject(component):

建立组件实例

ØExecute(path):

调用PATH指定的程序

ØGetlastError():

返回一个ASPError对象的实例,该实例描述最近发生的错误

ØHTMLEncode(string):

将String进行编码,使它可不能被说明为HTML语法

ØURLEncode(string):

将String进行编码,以放入QueryString返回服务器

ØMapPath(path):

将Path指定的虚拟路径转换为实际路径

ØTransfer(path):

将操纵权转移到Path指定的ASP程序

◆Server.Execute方法

格式:

Server.Execute(path)

功能:

该方法是IIS5.0新增的功能,用途类似程序语言中的函数调用,也确实是说,你能够在ASP程序中使用Server.Execute(path)方法调用path指定的ASP程序,待彼此调用的程序执行完毕之后再返回原先的程序,连续执行接下来的指令。

举例:

Server.Execute方法使用

<%Response.Write"调用Execute方法之前"%>

<%Server.Execute("page_2.asp")%>'执行page_2.asp后会再返回

<%Response.Write"调用Execute方法之后"%>

<%Response.Write“这是page_2.asp的执行结果"%>

◆Server.Transfer方法

格式:

Server.Transfer(path)

功能:

该方法也是IIS5.0新增的功能,用于将目前ASP程序的操纵权转移到path指定的ASP程序,即使转移之后的程序差不多执行完毕,操纵权可不能返回原先的程序。

举例:

Server.Transfer方法使用

<%Response.Write"调用Transfer方法之前"%>

<%Server.Transfer("page_2.asp")%>'将操纵权转移至page_2.asp后便不再返回

<%Response.Write"调用Transfer方法之后"%>

注意:

Server.Transfer、Server.Execute和Redirect三者的区别:

(1)Transfer与Execute差不多相似,唯独区别是Transfer方法执行完新网页后并不回到原先网页。

(2)Redirect与Transfer有点相似,都有页面导向的功能,所不同的是,使用Transfer能够保留原先所有内置对象的值,而Redirect却做不到。

摸索题:

编程验证Redirect与Transfer对内置对象的值的阻碍有何不同。

◆Server.HTMLEncode和Server.URLEncode方法

Server对象提供的Server.HTMLEncode和Server.URLEncode两个方法能够进行字符串编码。

1.Server.HTMLEncode编码方式

该编码方式能够将String进行编码,使字符串可不能被说明为HTML语法。

其格式为:

Response.Write(Server.HTMLEncode(“段落标记:

”))

例如,请分析下列程序的运行结果

<%

Response.write("这是对HTMLEncode方法的测试。


那个地点应该可不能另起一行。

")

%>

<%

Response.writeServer.HTMLEncode("这是对HTMLEncode方法的测试。


那个地点应该可不能另起一行。

")

%>

2.Server.URLEncode编码方式

该方式能够将Srting进行编码,以放入Querystring返回服务器。

服务器端用Request.Querystring(“keyname”)猎取即可。

例如,分析下列程序找出错误缘故。

<%language=vbscript%>

URLENCODE举例

name=<%=server.urlencode("李四")%>">传name过去

<%@language=vbscript%>

<%

name=request.form("name")

%>

注意观看

<%=name&"你好"%>

◆Server.MapPath方法

格式:

Server.MapPath(path)

功能:

该方法用于将path指定的虚拟路径转换为实际路径。

举例:

Server.MapPath方法使用

<%Response.Write"父名目为"&Server.MapPath("../")%>

<%Response.Write"现在名目为"&Server.MapPath("./")%>

<%Response.Write"根名目为"&Server.MapPath("/")%>

<%Response.Write"网页的实际路径为"&Server.MapPath("path.asp")%>


◆Server.CreateObject方法

格式:

Server.CreateObject(component)

功能:

这是Server对象最重要的一个方法。

它用于创建差不多注册到服务器(从注册表里能找到差不多注册的组件)上的ActiveX组件的实例。

有了它,我们就能够使用ActiveX组件轻松的扩展ActiveX的能力,使设计更加多元化。

举例:

下面就声明了FileSystemObject的一个实例:

DimobjFSO'声明objFSO的变量,以存放对象实例

SetobjFSO=Server.CreateObject("Scripting.FileSystemObject")

说明:

1.Set是VBScript关键字,用来建立对象实例,objFSO是那个对象的名称;Scripting.FileSystemObject是FileSystem组件在服务器注册时的ID标识。

2.服务器组件不能直截了当使用,必须先用Server.CreateObject建立一个组件的对象实例,然后才能通过次对象实例访问其集合、方法和属性。

7.2ASP内置组件

本节要紧介绍如下几个ASP内置组件:

ØFileSystemObject组件:

要紧负责对服务器断文件或文件夹的相关操作。

ØBrowserCapabilities组件:

猎取扫瞄器信息。

ØContentLinking组件:

用于建立网络导航,这在建立大型网站专门有用。

ØDictionary组件:

功能类似于数据库操作,所有操作在内存中完成,不需要存取磁盘上的文件,适合储存少量的数据。

ØAdRotator组件:

广告轮显组件。

用于制作动态交替变换的广告Web页面。

7.2.1FileSystemObject组件

FSO(FileSystemObject)组件模式包含在Scripting类型库中,该库位于Scrrun.dll文件中。

因而,要使用FSO对象模式,必须把Scrrun.dll放在Web服务器的适当系统名目中。

一、检查指定的磁盘、文件夹或文件是否存在

在进行磁盘、文件夹或文件的读写之前,我们都必须先确定磁盘、文件夹或文件是存在的,否则将产生错误信息。

我们能够分别使用FilesystemObject组件的DriveExistes(path)、FileExists(path)及FolderExists(path)方法来检查磁盘、文件夹或文件是否存在,例如以下程序:

01:

02:

<%

03:

DimobjFSO'声明一个名称为objFSO的变量以存放对象实例

04:

SetobjFSO=Server.CreateObject("Scripting.FileSystemObject")

05:

IfobjFSO.DriveExists("C:

")Then

06:

Response.Write"C:

磁盘是存在的"&"
"

07:

Else将虚拟路径转换为实际路径

08:

Response.Write"C:

磁盘是不存在的"&"
"

09:

EndIf

10:

IfobjFSO.FolderExists(Server.MapPath("\Ch07"))Then

11:

Response.Write"Ch07文件夹是存在的"&"
"

12:

Else

13:

Response.Write"Ch07文件夹是不存在的"&"
"将虚拟路径转换为实际路径

14:

EndIf

15:

IfobjFSO.FileExists(Server.MapPath("CheckExist.asp"))Then

16:

Response.Write"CheckExist.asp文件是存在的"&"
"

17:

Else

18:

Response.Write"CheckExist.asp文件是不存在的"&"
"

19:

EndIf

20:

SetobjFSO=Nothing'开释FileSystemObject对象实例

21:

%>

22:

注意:

1.使用FolderExists方法和FileExists方法时,要求参数必须是实际路径,因此,在程序中,我们总要使用Server.MapPath方法先将虚拟路径先转换为实际路径。

2.程序终止前,我们使用SetobjFSO=Nothing开释我们曾经在程序中建立的对象。

二、对文件夹的操作

1.建立文件夹

格式:

objFSO.CreateFolder(FolderName)

用途:

FileSystemObject对象的CreateFolder方法用于建立一个FolderName文件夹,而且参数FolderName必须使用实际路径。

举例:

在Ch07文件夹内建立一个名称为NewFolder的文件夹。

<%

DimobjFSO

SetobjFSO=Server.CreateObject("Scripting.FileSystemObject")

objFSO.CreateFolder(Server.MapPath("\ch07\NewFolder"))

Response.Write"新文件夹的实际路径为"&Server.MapPath("\ch07\NewFolder")

SetobjFSO=Nothing

%>

2.移动、重新命名文件夹

格式:

objFSO.MoveFolderSource,Destination

用途:

FileSystemObject对象的MoveFolder方法用于将Source指定的文件夹移动到Destination,而且参数Source和Destination必须使用实际路径。

举例:

将Web主名目的Folder1文件夹移动到Ch07文件夹内,而且移动之后的文件夹名称改为Folder2。

<%

DimobjFSO

SetobjFSO=Server.CreateObject("Scripting.FileSystemObject")

IfobjFSO.FolderExists(Server.MapPath("\Folder1"))Then

objFSO.MoveFolderServer.MapPath("\Folder1"),Server.MapPath("\Ch07\Folder2")

Else

Response.Write"Folder1文件夹不存在无法进行移动"

EndIf

SetobjFSO=Nothing

%>

3.删除文件夹

格式:

objFSO.DeleteFolderpath,force

用途:

FileSystemObject对象的DeleteFolder方法用于删除path指定的文件夹,force为布尔值,默认值为false,不删除只读文件夹,若要采纳默认值,可省略不写,若要删除只读文件夹,force的值要设置为true,参数path必须使用实际路径。

举例:

将Web主名目的MyFolder文件夹删除。

<%

DimobjFSO

SetobjFSO=Server.CreateObject("Scripting.FileSystemObject")

IfobjFSO.FolderExists(Server.MapPath("\MyFolder"))Then

objFSO.DeleteFolderServer.MapPath("\MyFolder")

Else

Response.Write"MyFolder文件夹不存在无法进行删除"

EndIf

SetobjFSO=Nothing

%>

4.复制文件夹

Ø使用FileSystemObject的CopyFolder方法完成文件夹复制

格式:

objFSO.CopyFolderSource,Destination

功能:

FileSystemObject对象的CopyFolder方法用于将Source指定的文件夹复制到Destination,而且参数Source和Destination必须使用实际路径。

举例:

将Web主名目的Folder1文件夹复制到Ch07文件夹内,而且移动之后的文件夹名称改为Folder2。

<%

DimobjFSO

SetobjFSO=Server.CreateObject("Scripting.FileSystemObject")

IfobjFSO.FolderExists(Server.MapPath("\Folder1"))Then

objFSO.CopyFolderServer.MapPath("\Folder1"),Server.MapPath("\Ch07\Folder2")

Else

Response.Write"Folder1文件夹不存在无法进行复制"

EndIf

SetobjFSO=Nothing

%>

Ø使用Folder对象的Copy方法完成文件夹的复制

格式:

objFolder.Copydestination,overwrite

功能:

Folder对象的Copy方法用于将文件夹复制到Destination,若Destination已有同名文件夹,且Overwrite的值为True,表示将其覆盖,否则不覆盖。

举例:

对上例进行修改。

<%

DimobjFSO,objFolder

SetobjFSO=Server.CreateObject("Scripting.FileSystemObject")

IfobjFSO.FolderExists(Server.MapPath("\Folder1"))Then

SetobjFolder=objFSO.GetFolder(Server.MapPath("\Folder1"))

objFolder.CopyServer.MapPath("\Ch07\Folder2"),true

Else

Response.Write"Folder1文件夹不存在无法进行复制"

EndIf

SetobjFolder=Nothing

SetobjFSO=Nothing

%>

注意:

在本例中,我们使用FilesystemObject的GetFolder方法取得Folder1文件夹的Folder对象实例,类似的还有GetFile、GetDrive方法,使用方法类似。

问题:

对象开释的顺序是什么?

三、取得文件夹的父文件夹信息

我们能够使用FilesystemObject的GetParentFolderName、GetSpecialFolder方法来取得文件夹的父文件夹路径和WindowsFolder、SystemFolder、TemporaryFolder等专门文件夹的路径,但假如要取得文件夹的大小、属性、类型和日期等信息,就必须使用Folder对象提供的属性。

我们一起来看下面的例子。

01:

02:

<%

03:

DimobjFSO,objFolder

04:

SetobjFSO=Server.CreateObject("Scripting.FileSystemObject")

05:

IfobjFSO.FolderExists(Server.MapPath("\Ch07"))Then

06:

Response.Write"父文件夹的路径:

"&_

07:

objFSO.GetParentFolderName(Server.MapPath("\Ch07"))&"
"

08:

Response.Write"专门文件夹WindowsFolder的路径:

"&_

09:

objFSO.GetSpecialFolder(WindowsFolder)&"
"

10:

SetobjFolder=objFSO.GetFolder(Server.MapPath("\Ch07"))

11:

Response.Write"文件夹的名称:

"&objFolder.Name&"
"

12:

Response.Write"文件夹的路径:

"&objFolder.Path&"
"

13:

Response.Write"文件夹的建立日期:

"&objFolder.DateCreated&"
"

14:

Else

15:

Response.Write"Ch07文件夹不存在无法显示相关信息"

16:

EndIf

17:

SetobjFolder=Nothing

18:

SetobjFSO=Nothing

19:

%>

20:

本例实现对文件夹相关信息的查询,要紧使用FileSystemObject对象的Getparentfoldername方法、Folder对象的相关属性。

四、列出文件夹内的所有内容

Folder对象提供的属性除了能够取得文件夹的大小、类型、日期、名称和路径等信息之外,还能够取得文件夹内的所有文件或子文件夹。

我们一起来看下面的例子。

01:

02:

03:

<%

04:

DimobjFSO,objFolder,objFile

05:

SetobjFSO=Server.CreateObject("Scripting.FileSystemObject")

06:

If

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1