ASP学习笔记

1、Application对象:可以使用Application使给定应用程序的所有用户共享信息。负责存储数据以供多个用户使用。

2、Server对象:提供对服务器上的方法和属性进行访问,最常见的方法是创建ActiveX组件的实例(Server.CreateObject()).即:负责控制ASP的运行环境。

3、Request对象:访问任何使用HTTP请求传递的信息:(1)post和get方法传递的参数。(2)cookie。(3)用户认证。(浏览器的种类、表头信息、表单参数及cookies){必须先将 Web 服务器配置为要求客户端验证,然后才能使用 ClientCertificate 集合。}{BinaryRead 方法获取作为 POST 请求的一部分而从客户端传送到服务器的数据。}

4、Response对象:控制发送给用户的信息。(1)直接发送给用户的信息.(2)重定向浏览器到另一个URL。(3)设置cookie值。(包含Web服务器所要响应给用户的各项信息)

5、组件:(1)活动服务器组件{AD Rotator 、Capabilitiy File、 Access Content、 Linking Counters 、PageCounter等}(2)数据存取组件(3)Dictionary、FileSystemObject组件、TextStream组件。

6、<标记名[属性名 = "属性值"][事件 = "过程名"]> 内容 </标记名> 如果有多个属性,需要用空格进行分开。

7、多数情况下,只需为声明的变量赋一个值。只包含一个值的变量被称为标量变量。有时候,将多个相关值赋给一个变量更为方便,因此可以创建包含一系列值的变量,称为数组变量。数组变量和标量变量是以相同的方式声明的,唯一的区别是声明数组变量时变量名后面带有括号 ( )。

    声明了一个包含 11 个元素的一维数组:   Dim A(10)

    数组并不仅限于一维。数组的维数最大可以为 60。声明多维数组时用逗号分隔括号中每个表示数组大小的数字。例如:Dim MyTable(5, 10),第一个数字表示行的数目,第二个数字表示列的数目。

    也可以声明动态数组,即在运行脚本时大小发生变化的数组。对数组的最初声明使用 Dim 语句或 ReDim 语句。但是对于动态数组,括号中不包含任何数字。

Dim MyArray()

ReDim AnotherArray()要使用动态数组,必须随后使用 ReDim 确定维数和每一维的大小。

ReDim MyArray(25)

. . .

ReDim Preserve MyArray(30)

重新调整动态数组大小的次数是没有任何限制的,将数组的大小调小时,将会丢失被删除元素的数据。

8、循环语句:

(1)Do [{While | Until} condition]

[statements]

[Exit Do]

[statements]

Loop 或 //多用于计算次数不可知的情况下!或进行死循环直到跳出程序!

Do

[statements]

[Exit Do]

[statements]

Loop [{While | Until} condition]    //多用于计算次数不可知的情况下!或进行死循环直到跳出程序!

(2)While condition

&nbsp;  Version [statements]

Wend                 多用于计算次数不可知的情况下!或进行死循环直到跳出程序!

(3)For counter = start To end [Step step]

[statements]

[Exit For]

[statements]

Next    //经常用于数组,例如Dictionary的函数items()和keys()就是返回两个数组。UBound(arrayname[,dimension])和LBound(arrayname[,dimision])两个值!

    游标集等!

(4)For Each element In group

[statements]

[Exit For]

[statements]

Next [element]//常常用于集合: Application.Contents、 Session.Contents、 Drives、 Files 、Folders、 Cookies、  Fields等等!

9、一个ASP文件中,除了HTML代码以外,一般还包客户端括代码和服务器端代码两部分.客户端代码可以直接在客户端浏览器上运行,这些代码一般放置在<script>标记中.服务器端代码,也就是狭义上的ASP带吗,需要在服务器上运行,运行结果结果被解释为HTML代码后,显示在客户端浏览器上.因此,服务器端代码在客户端浏览器上不可见.

10、ASP是Active Server Pages的简称,是服务器端脚本编写环境,使用它可以创建和运行动态、交互的 Web 服务器应用程序。使用 ASP 可以组合 HTML页、脚本命令和 ActiveX 组件以创建交互的Web页和基于Web的功能强大的应用程序。ASP可用来创建动态Web页或生成功能强大的Web应用程序。(文本,HTML标记,  ASP脚本命令)

11、Session :负责存储个别用户的信息,以便重复使用。

12、ObjectContext对象 可供ASP程序直接配合MTS进行分散式的事务处理。

13、动态网页设计之ASP: (1)HTML标记主要是输出用户可视化,结构化信息;标志为< >(2)脚本语言一般用来对用户的输入数据进行预处理,比如判断输入的数据是否有效,数据输入是否完全相等,也可以来控制客户端的显示情况:标志为<script language="javascript|VBscript" src=> </script >.(3)ASP代码一般在服务器端运行,必须放置在<% %>之间,以区别与其他代码。对于ASP来说,可用于编写服务端代码的语言不止一种,可以用@language = 'vbscript'进行标志。

14、客户端脚本除了定义在过程或函数中的代码以外,其他代码在页面加载时即被执行。为了控制代码的执行时机,最好把代码定义在函数或过程中。客户端代码相应的两种方法:(1)在时间触发试调用其它函数或过程来处理事件;(2)直接定义空间的事件代码。

15、ASP(1)使用ASP可以动态的生成HTML代码;(2)可以控制HTML的执行。 为了减少HTML与ASP代码之间的相互分割,可以用response.write("")输出THML显示代码。

16、dim , public , private ,这三个是用来指定变量的有效范围 :范围 脚本是一个完整的代码文件,过程是脚本中的一个功能模块(函数、过程等)

过程级: 1、专用:变量对于这种过程是专用的,在该过程中出现了这些变量。 2、公用:不可使用。不能在一个过程中声明公用变量。

模块级 1、专用:变量对于这种过程是专用的,在该过程中出现了这些变量。 2、公用:变量可用于所有模块。

过程级变量只有在声明它们的过程中才能被识别。也称它们为局部变量。用 Dim 或者 Static 关键字来声明它们。(只在定义模块中有效)

Public 关键字声明公用变量。公用变量中的值可用于应用程序的所有过程。(在整个脚本中有效)。

在VBscript中可以使用Option Explicit语句来强制要求显示声明变量。变量之间用逗号分开。对大小写不敏感!

17、脚本代码能够嵌入到HTML文档的任何地方,通常都是将所有脚本代码集中放在HEAD部分,这样可以确保在BODY部分调用代码之前所有脚本代码都被读取并解码。

18、有时一条语句可能会很长,这给打印和阅读带来不便,此时可用续行符 -(一个空格紧跟一个下划线)将长语句分成多行。注释符采用西文单引号,即以撇号作为注释的开始。注释可以和语句在同一行并写在语句的后面,也可单独占一行。

19、(1)"/"表示除;"/"表示整除。(2)[+]如果一个表达式或两个表达式都为NULL,则结果为Null;如果两个表达式都为Empty,则结果为Integer子类型。(3)[-]如果一个或两个表达式都为NULL表达式,则result为NULL。如果某个表达式Empty,则安0值处理。

20、 (1)On Error GoTo 0 禁止当前过程中任何已经启动的错误处理。(2)On Error resume next 当一个运行错误发生时,空间转到紧接着错误的语句之后的语句,并在此继续执行。

21、CreateObject(servername.typename[,location])

servername 必需的。提供此对象的应用程序名称。

typename 必需的。对象的类型或类(type/class)。

location 可选的。在何处创建对象。

22、RegExp对象:(正则表达式相关对象)(1)Global属性,该属性用于指定当使用正则表达式对字符串进行匹配检测,是检测整个字符串还是在第一次匹配后结束。(2)IgnoreCase属性:该属性用于指定当使用正则表达式进行匹配检测时,是否区分大小。(3)Pattern属性:用于设置或返回进行匹配检测的正则表达式。

(1)Excute方法:该方法用于对指定的正则表达式进行匹配检测,其返回值为一个Matches集合,其中包含所有检测到匹配的Match对象。如果没有检测到任何匹配,则返回一个空Matches集合。(3)Replace方法:如果在指定的字符串中找到与指定正则表达式匹配的字符串,则用于指定的其他字符串进行替换。(3)Test方法:该方法是判断指定的正则表达式相匹配的内容。

23、1.CGI:CGI是一种通用的网关接口,是外部程序和WEB服务器之间的标准编程接口。可以使用各种不同的程序语言编写适合的CGI程序,比如:Visual Basic、Delphi  或C/C++等。运行效率比较低。 (Common Gateway Interface)

2.ASP:可以认为ASP是一种类似HTML、Script与CGI的结合体,但是其运行效率却要比CGI高。ASP的应用程序容易开发和修改,其功能也是很强大的。(Active Server Pages)

3. PHP:PHP(Hypertext Preprocessor,超文本预处理器)是一种HTML内嵌式的语言(类似于ASP)。它的源代码可以公开,成为目前广泛应用的网站建设技术之一。

4.JSP:JSP(Java Server Pages)是Sun公司推出的网站开发技术,是将纯Java代码嵌入HTML中实现动态功能的一项技术。

JSP与ASP都是在HTML代码中嵌入某种脚本并由语言搜索引擎解释执行程序的代码,都是面向服务器的技术,客户端浏览器不需要任何附加软件的支持。

区别:1.ASP使用的编程语言是VBScript之类的脚本程序,JSP使用的是Java  2.ASP中的VBScript代码被ASP引擎解释执行,而JSP中脚本在第一次执行时被编译成Servlet并由Java虚拟机执行。

23、2、ASP的工作原理

ASP程序可以混合使用HTML、脚本语言以及ASP语句来创建服务器端功能强大的Internet应用程序。从用户的一个URL请求到服务器反馈一个页面到浏览器,这个流程的工作原理是:

(1)用户在客户端浏览器中输入一个URL,与服务器建立连接。

(2)服务器根据用户请求的URL在硬盘上找到相应文件。

(3)若文件是普通的HTML文档,那么服务器直接把该文件传送到客户端。

(4)若文件是服务器脚本文件,如ASP文档,那么服务器将运行这个文档,如果需要查询数据库,则通过ADO组件ODBC或DNS数据源访问数据库,进行一系列运算和解释后,将最终结果形成一个纯HTML文档。

(5)把这个文档传送到客户端。

24、Microsoft Visual Basic Scripting Edition 是程序开发语言 Visual Basic 家族的最新成员,它将灵活的 Script 应用于更广泛的领域,包括 Microsoft Internet Explorer 中的 Web 客户机 Script 和 Microsoft Internet Information Server 中的 Web 服务器 Script

25、VBScript 使用 ActiveX™ Script 与宿主应用程序对话。使用 ActiveX Script,浏览器和其他宿主应用程序不再需要每个 Script 部件的特殊集成代码。ActiveX Script 使宿主可以编译 Script、获取和调用入口点及管理开发者可用的命名空间。通过 ActiveX Script,语言厂商可以建立标准 Script 运行时语言。Microsoft 将提供 VBScript 的运行时支持。Microsoft 正在与多个 Internet 组一起定义 ActiveX Script 标准以使 Script 引擎可以互换。

26、<SCRIPT LANGUAGE="VBScript">

<!--

   Function CanDeliver(Dt)

      CanDeliver = (CDate(Dt) - Now()) > 2

   End Function

-->

</SCRIPT>

代码的开始和结束部分都有 <SCRIPT> 标记。LANGUAGE 属性用于指定所使用的 Script 语言。由于浏览器能够使用多种 Script 语言,所以必须在此指定所使用的 Script 语言。注意 CanDeliver 函数被嵌入在注释标记(<!-- 和 -->)中。这样能够避免不能识别 <SCRIPT> 标记的浏览器将代码显示在页面中。

27、SCRIPT 块可以出现在 HTML 页面的任何地方(BODY 或 HEAD 部分之中)。然而最好将所有的一般目标 Script 代码放在 HEAD 部分中,以使所有 Script 代码集中放置。这样可以确保在 BODY 部分调用代码之前所有 Script 代码都被读取并解码。

28、<SCRIPT FOR="Button1" EVENT="onClick" LANGUAGE="VBScript">

      MsgBox "按钮被单击!"

   </SCRIPT>

29、2、ActiveX简单理解即为可重复利用的控件,不同的程序都可利用别人已开发好的ActiveX控件来开发自己的程序;

30、VarType 函数

描述:返回指示变量子类型的值。

语法:VarType(varname)

varname 参数可以是任何变量。

vbEmpty 0 Empty(未初始化)

vbNull 1 Null(无有效数据)

vbInteger 2 整数

vbLong 3 长整数

vbSingle 4 单精度浮点数

vbDouble 5 双精度浮点数

vbCurrency 6 货币

vbDate 7 日期

vbString 8 字符串

vbObject 9 Automation 对象

vbError 10 错误

vbBoolean 11 Boolean

vbVariant 12 Variant(只和变量数组一起使用)

vbDataObject 13 数据访问对象

vbByte 17 字节

vbArray 8192 数组

31、变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储 Script 运行时可更改的程序信息

32、(1)用 Dim 声明的 Script 级变量可用于 Script 中的所有过程,过程级变量只能用于过程中。

    (2)使用 Public 语句声明的变量可用于所有项目的全部 Script 中的所有过程。在使用引用对象的变量之前,必须用 Set 语句将某个已有对象赋予该变量。在赋值之前,所声明的对象变量有一个特殊的值 Nothing。

    (3)用于在 Script 级中声明私有变量及分配存储空间。Private 变量只能在声明该变量的 Script 中使用。.... ...

33、另一种方式是通过直接在 Script 中使用变量名这一简单方式隐式声明变量。这通常不是一个好习惯,因为这样有时会由于变量名被拼错而导致在运行 Script 时出现意外的结果。因此,最好使用 Option Explicit 语句显式声明所有变量,并将其作为 Script 的第一条语句。

34、日期文字和时间文字包含在两个井号 (#) 之间。例如:

Const CutoffDate = #6-1-97#

在 VBScript 中,无论用户的实际设置是什么,唯一能识别的格式是英语(美国)。也就是说,日期文字的格式为 mm/dd/yyyy。

35、Imp 运算符:result = expression1 Imp expression2

如果 expression1 为 且 expression2 为 则 result 为

True    True    True

True    False   False

True    Null    Null

False   True    True

False   False   True

False   Null    True

Null    True    True

Null    False   Null

Null    Null    Null

36、Is 运算符:用于比较两个对象引用变量。

result = object1 Is object2

Is 运算符的语法有以下部分:

部分        描述

result 任意数值变量。

object1     任意对象名。

object2     任意对象名。

如果 object1 和 object2 都引用同一个对象,则 result 为 True;否则 result 为 False。可以使用许多方法使两个变量引用同一个对象。

37、要运行多行代码,必须使用多行(或块)语法。多行(或块)语法包含 End If 语句,

38、Select Case 结构只计算开始处的一个表达式(只计算一次),而 If...Then...ElseIf 结构计算每个 ElseIf 语句的表达式,这些表达式可以各不相同。仅当每个 ElseIf 语句计算的表达式都相同时,才可以使用 Select Case 结构代替 If...Then...ElseIf 结构。

39、MsgBox(prompt[, buttons][, title][, helpfile, context])

在对话框中显示消息,等待用户单击按钮,并返回一个值指示用户单击的按钮。

prompt 作为消息显示在对话框中的字符串表达式。prompt 的最大长度大约是 1024 个字符,这取决于所使用的字符的宽度。如果 prompt 中包含多个行,则可在各行之间用回车符 (Chr(13))、换行符 (Chr(10)) 或回车换行符的组合 (Chr(13) & Chr(10)) 分隔各行。

buttons 数值表达式,是表示指定显示按钮的数目和类型、使用的图标样式,默认按钮的标识以及消息框样式的数值的总和。有关数值,请参阅设置部分。如果省略,则 buttons 的默认值为 0。

title 显示在对话框标题栏中的字符串表达式。如果省略 title,则将应用程序的名称显示在标题栏中。

helpfile 字符串表达式,用于标识为对话框提供上下文相关帮助的帮助文件。如果已提供 helpfile,则必须提供 context。在 16 位系统平台上不可用。

context 数值表达式,用于标识由帮助文件的作者指定给某个帮助主题的上下文编号。如果已提供 context,则必须提供 helpfile。在 16 位系统平台上不可用。

buttons 参数可以有以下值:

vbOKOnly 0 只显示确定按钮。

vbOKCancel 1 显示确定和取消按钮。

vbAbortRetryIgnore 2 显示放弃、重试和忽略按钮。

vbYesNoCancel 3 显示是、否和取消按钮。

vbYesNo 4 显示是和否按钮。

vbRetryCancel 5 显示重试和取消按钮。

vbCritical 16 显示临界信息图标。

vbQuestion 32 显示警告查询图标。

vbExclamation 48 显示警告消息图标。

vbInformation 64 显示信息消息图标。

vbDefaultButton1 0 第一个按钮为默认按钮。

vbDefaultButton2 256 第二个按钮为默认按钮。

vbDefaultButton3 512 第三个按钮为默认按钮。

vbDefaultButton4 768 第四个按钮为默认按钮。

vbApplicationModal 0 应用程序模式:用户必须响应消息框才能继续在当前应用程序中工作。

vbSystemModal 4096 系统模式:在用户响应消息框前,所有应用程序都被挂起。

返回值

MsgBox 函数有以下返回值:

常数 值 按钮

vbOK 1 确定

vbCancel 2 取消

vbAbort 3 放弃

vbRetry 4 重试

vbIgnore 5 忽略

vbYes 6 是

vbNo 7 否

40、InputBox(prompt[, title][, default][, xpos][, ypos][, helpfile, context])

在对话框中显示提示,等待用户输入文本或单击按钮,并返回文本框内容。

prompt 字符串表达式,作为消息显示在对话框中。prompt 的最大长度大约是 1024 个字符,这取决于所使用的字符的宽度。如果 prompt 中包含多个行,则可在各行之间用回车符 (Chr(13))、换行符 (Chr(10)) 或回车换行符的组合 (Chr(13) & Chr(10)) 以分隔各行。

title 显示在对话框标题栏中的字符串表达式。如果省略 title,则应用程序的名称将显示在标题栏中。

default 显示在文本框中的字符串表达式,在没有其它输入时作为默认的响应值。如果省略 default,则文本框为空。

xpos 数值表达式,用于指定对话框的左边缘与屏幕左边缘的水平距离(单位为缇)。如果省略 xpos,则对话框会在水平方向居中。

ypos 数值表达式,用于指定对话框的上边缘与屏幕上边缘的垂直距离(单位为缇)。如果省略 ypos,则对话框显示在屏幕垂直方向距下边缘大约三分之一处。

helpfile 字符串表达式,用于标识为对话框提供上下文相关帮助的帮助文件。如果已提供 helpfile,则必须提供 context。

context 数值表达式,用于标识由帮助文件的作者指定给某个帮助主题的上下文编号。如果已提供 context,则必须提供 helpfile。

41、由于脚本在服务器上而不是在客户端运行,传送到浏览器上的 Web 页是在 Web 服务器上生成的。所以不必担心浏览器能否处理脚本:Web 服务器已经完成了所有脚本的处理,并将标准的 HTML 传输到浏览器。由于只有脚本的结果返回到浏览器,所以服务器端脚本不易复制。用户看不到创建他们正在浏览的页的脚本命令。

42、因为 .ASP 文件需要额外的处理,请不要将所有的 HTML 页都转换为 ASP 页。应该只将包含脚本命令的文件转换为 .ASP 文件。.ASP 和 .htm 文件可以放置在相同的目录中。

43、定界符括入的命令被称为主脚本命令。这些命令被主脚本语言处理。在脚本定界符中使用的任何命令都必须对主脚本语言有效。默认情况下,主脚本语言是 VBScript。要设置另一种语言。如果您已经熟悉了客户端脚本编写(编写在浏览器上运行的脚本),请注意不要用 HTML <SCRIPT> 元素括入表达式。在编写服务器端脚本时,只用 <SCRIPT> 元素在主脚本语言外的其他语言中定义过程。

44、如果正在使用 JScript 命令,可以插入花括号指示语句块直接进入 ASP 命令,而不用考虑它是否夹杂着 HTML 标签和文本。例如:

<% if (screenresolution == "low") { %>

This is the text version of a page.

<% } else { %>

This is the multimedia version of a page.

<% } %>

45、使用 ASP 指令

ASP提供了您使用的脚本语言以外的指令。这是一些输出指令和处理指令。

ASP的输出指显示表达式的值。这个输出指令等同于使用 Response.Write 显示信息。

46、<%@ LANGUAGE=VBScript %>

处理指令必须出现在 .ASP 文件的第一行。不要将处理指令放在包含 #include 语句的文件中。必须在 at 标记(@)和关键字之间加入一个空格。处理指令有下列关键字:

LANGUAGE 关键字设置页的脚本语言。

CODEPAGE 关键字设置页的代码页(字符编码)。

LCID 关键字设置页的现场标识符。

TRANSACTION 关键字指定将在事务处理环境下运行的页。

ENABLESESSIONSTATE 关键字指定 ASP页是否使用会话状态。

可以在单个指令中包含多个关键字;关键字/值对之间必须由空格分开。不要在等号(=)左右加入空格。下面的例子中设置了脚本语言和代码页。

47、Active Server Pages 是 ActiveX 脚本的宿主。要使用一种语言,必须安装脚本引擎,该引擎必须遵循 ActiveX 脚本标准并作为一个 COM (组件对象模型)对象驻留在 Web 服务器上。

48、在服务端通过 ASP 使用 VBScript 时,两个 VBScript 特征将失效。(1)由于 Active Server Pages 脚本是在服务器端执行的,表示用户接口的元素的 VBScript 语句 InputBox 和 MsgBox 将不被支持。另外,(2)在服务器端的脚本中,请不要使用 VBScript 函数 CreateObject 和 GetObject。而要使用 Server.CreateObject,这样 ASP 就可以跟踪对象实例了。用 CreateObject 或 GetObject 创建的对象不能访问 ASP 内建对象,也不能参与事务处理。

49、输出表达式不能包括注释。<%= name 'this prints the variable name. This script will fail. %>

50、Application 对象:控制应用程序级数据

当一个对象需要在整个程序运行期间存在时,可以把它创建为Application级对象。这样该对象和其他所有存储的数据将在整个程序生命周期中有效。

方法(1) Set Application("Obj") = server.CreateObject("对象库名")

             (2)<OBJECT ID = "obj" RUNAT = "server" SCOPE ="Application" PROGID = "对象库名"></OBJECT>

实际上,真正编写应用程序时,Application级的数据定义都是放在Global.asa文件中,而在此只是为了演示Application级变量的定义级应用,所以不严格。

<%

dim Manager(1)

Manager(0) = "初始化管理员名单密码"

Set Manager(1) = sever.createobject("scripting.dictionary")

Manager(1).add "Lily", "pas8314"

Manager(1).add "DouDou", "upc007"

appplication("Manager") = Manager

%>

Application对象有两个重要事件:

  Application_OnStart和Application_OnEnd,这两个事件的处理过程写在 Global.asa文件中。

Application_OnStart事件对应一个Application的开始,

Application_OnEnd事件则对应于Application的结束。

 Global.asa文件的内容是用来存储事件信息和由应用程序全局使用的对象。该文件存放在应用程序的根目录中。每个应用程序只有一个Global.asa文件

51、Application("Var") = VarValue

其中"Var"就是要创建的Application级的变量的名称,"VarValue"是该变量的值。

<OBJECT ID = "Var" RUNAT = "server" SCOPE ="Application" </OBJECT>

最经典的应用是网络计数器,代码如下: Globbal.asa中

<script language = "vbscript" runat = "server">

    Sub Application_OnStart

        Application("counter") = 0

    End Sub

    Sub Session_OnStart

        Application("counter") = Application("counter") + 1

    Rnd Sub

</script>

52、Contents 集合包含着通过脚本命令添加到 application/session 的所有项目。

Application.Contents(Key)

Session.Contents(Key)

key  必需。要取回的项目的名称。

循环遍历 Contents 集合:

<%

for each x in Application.Contents

  Response.Write(x & "=" & Application.Contents(x) & "<br />")

next

%>或者:

<%

For i=1 to Application.Contents.Count

  Response.Write(i & "=" & Application.Contents(i) & "<br />")

Next

%>

对于Session:

循环遍历 Contents 集合:

<%

for each x in Session.Contents

  Response.Write(x & "=" & Session.Contents(x) & "<br />")

next

%>或者:

<%

For i=1 to Session.Contents.Count

  Response.Write(i & "=" & Session.Contents(i) & "<br />")

Next

%>

53、StaticObjects 集合包含所有使用 HTML <object> 标签追加到 application/session 的对象。

Application.StaticObjects(Key)   

Session.StaticObjects(Key)参数 描述

key  必需。要取回的项目的名称。

例子:在 Global.asa 中:

<object runat="server" scope="application"

id="MsgBoard" progid="msgboard.MsgBoard">

</object>

<object runat="server" scope="application"

id="AdRot" progid="MSWC.AdRotator">

</object>

在 ASP 文件中:

<%

for each x in Application.StaticObjects

  Response.Write(x & "<br />")

next

%>

54、方法:   Contents.Remove 从Contents集合中删除某个项目。

        Contents.RemoveAll() 从Contents集合中删除所有的项目。

        Lock 防止其余的用户修改Application对象中的变量。

        Unlock 使其余的用户可以修改Application对象中的变量(在被Lock方法锁定之后)。

55、事件:    Application_OnEnd 当所有用户的session都结束,并且应用程序结束时,此事件发生。

        Application_OnStart 在首个新的session被创建之前(这时Application被首次引用),此事件会发生。

56、数组:函数之Array();

(1)dim arr, str

arr = Array(1, 3, 5, 7, 9)

str = "已经生成了一个数组,其中元素为:"

for each i in arr

    str= str&","&i

next

msgbox str, "Array函数"

(2) <%

    response.write("<dir>")

for each obj in Application.Contents

    '如果obj为一个对象

    if IsObject(Application.Contents(obj)) then

    response.write("<li>对象:"&obj)

    ' 如果是个数组

    Elseif IsArray(Application.Contents(obj)) then

       response.write("<li>数组:"&obj)

       Arr = Application.Contents(obj)

       response.Write("<dir>")

       '遍历数组

       for i = lBound(Arr) to UBound(Arr)

           response.write("<li>"&cstr(i)&":"&Arr(i))

           next

           response.write("</dir>")

        Else

            response.write("变量:"&obj&"="&Application.Contents(obj))

        end if

next

response.write("</dir>")

%>

57、ASPError对象用于显示在ASP文件的脚本中发生的任何错误的详细信息。当Server.GetLastError被调用时,ASPError对象就会被创建,因此只能通过使用Server.GetLastError方法来访问错误信息。

    Set objASPError = server.GetLastError()

58、属性:   ASPCode 返回由IIS生成的错误代码。

        ASPDescription 属性可返回错误的详细描述。

        Category 属性可返回错误源(错误是由 IIS 、脚本语言还是组件产生的?)

        Column 属性可返回产生错误的 ASP 文件中的列位置。

        Description 属性可返回关于错误的简要描述。

        File 属性可返回产生错误的 ASP 文件的名称

        Line 属性可返回产生错误的 ASP 文件中的行位置。

        Number 属性可返回错误的标准 COM 错误代码。

        Source 属性可返回错误发生行的实际源代码。

<%

dim objErr

set objErr=Server.GetLastError()

 

response.write("ASPCode=" & objErr.ASPCode)

response.write("<br />")

response.write("ASPDescription=" & objErr.ASPDescription)

response.write("<br />")

response.write("Category=" & objErr.Category)

response.write("<br />")

response.write("Column=" & objErr.Column)

response.write("<br />")

response.write("Description=" & objErr.Description)

response.write("<br />")

response.write("File=" & objErr.File)

response.write("<br />")

response.write("Line=" & objErr.Line)

response.write("<br />")

response.write("Number=" & objErr.Number)

response.write("<br />")

response.write("Source=" & objErr.Source)

%>

59、QueryString集合:当某用户点击链接时发送查询信息

此表单使用GET方法,这意外着被发送的信息对用户来说是可见的(在地址中)。GET方法还会限制所发送信息的数量。

<form action="/example/aspe/demo_aspe_simplereqquery.asp" method="get">

First name: <input type="text" name="fname"><br>

Last name: <input type="text" name="lname"><br>

<input type="submit" value="Submit">

</form>

<%

Response.Write(Request.QueryString)

%>

答案:fname=wang&lname=fuli

60、Form集合:此表单使用POST方法,这意味着发送的信息对用户来说是不可见的,并且对所发送信息的量没有限制(可发送大量的信息)。

61、ServerVariables集合取得访问者的浏览器类型、IP地址等信息。

取得用户信息 :

<p>

<b>You are browsing this site with:</b>

<%Response.Write(Request.ServerVariables("http_user_agent"))%>

</p>

<p>

<b>Your IP address is:</b>

<%Response.Write(Request.ServerVariables("remote_addr"))%>

</p>

<p>

<b>The DNS lookup of the IP address is:</b>

<%Response.Write(Request.ServerVariables("remote_host"))%>

</p>

<p>

<b>The method used to call the page:</b>

<%Response.Write(Request.ServerVariables("request_method"))%>

</p>

<p>

<b>The server's domain name:</b>

<%Response.Write(Request.ServerVariables("server_name"))%>

</p>

<p>

<b>The server's port:</b>

<%Response.Write(Request.ServerVariables("server_port"))%>

</p>

<p>

<b>The server's software:</b>

<%Response.Write(Request.ServerVariables("server_software"))%>

</p>

取得服务器变量 :

<%

For Each Item in Request.ServerVariables

      Response.Write(Item & "<br />")

Next

%>

62、Cookies 集合用于设置或取得 cookie 的值。如果 cookie 不存,就创建它,并赋予它规定的值。

Response.Cookies(name)[(key)|.attribute]=value

variablename=Request.Cookies(name)[(key)|.attribute]

name  必需。cookie 的名称。

value  必需(对于 Response.Cookies 命令)。cookie 的值。

attribute  可选。规定有关 cookie 的信息。可以是下面的参数之一。

    Domain - 只写;cookie 仅被送往此域的请求。

    Expires - 只写;cookie 的失效日期。如果没有规定日期,cookie 会在 session 结束时失效。

    HasKeys - 只读;规定 cookie 是否拥有 key(这是唯一一个可与 Request.Cookies 命令使用的属性)

    Path - 只写;如果被设置,cookie 仅仅会被发送到此路径的请求。如果没有设置,则使用应用程序的路径。

    Secure - 只写;指示 cookie 是否安全。 

key  可选。规定值被赋予何处的 key。

Response.Cookies("user")("firstname")="John"

Response.Cookies("user")("lastname")="Smith"

Response.Cookies("user")("country")="Norway"

Response.Cookies("user")("age")="25"

<%

dim x,y

for each x in Request.Cookies

  response.write("<p>")

  if Request.Cookies(x).HasKeys then

    for each y in Request.Cookies(x)

      response.write(x & ":" & y & "=" & Request.Cookies(x)(y))

      response.write("<br /")

    next

  else

    Response.Write(x & "=" & Request.Cookies(x) & "<br />")

  end if

  response.write "</p>"

next

%>

63、Response 对象:(1)使用ASP写文本 。<%response.write("Hello World!")%>

(2)在ASP中使用HTML标签格式化文本 。<%

response.write("<h2>You can use HTML tags to format the text!</h2>")

%>

<%

response.write("<p style='color:#0000ff'>This text is styled with the style attribute!</p>")

%>

(3)将用户重定向至不同的URL 。<%

if Request.Form("select")<>"" then

       Response.Redirect(Request.Form("select"))

end if

%>  

<html>

<body>

<form action="/example/aspe/demo_aspe_redirect.asp" method="post">

<input type="radio" name="select"

value="/example/aspe/demo_aspe_server.asp">

Server Example<br>

<input type="radio" name="select"

value="/example/aspe/demo_aspe_text.asp">

Text Example<br><br>

<input type="submit" value="Go!">

</form>

</body>

</html>

64、属性:Buffer 规定是否缓冲页面的输出

CacheControl 设置代理服务器是否可以缓冲由 ASP 产生的输出。

Charset 将字符集的名称追加到 Response 对象中的 content-type 报头。

ContentType 设置 Response 对象的 HTTP 内容类型。

Expires 设置页面在失效前的浏览器缓存时间(分钟)

ExpiresAbsolute 设置浏览器上页面缓存失效的日期和时间。

IsClientConnected 指示客户端是否已从服务器断开。

Pics 向 response 报头的 PICS 标志追加值。

Status 规定由服务器返回的状态行的值。

65、方法:AddHeader 向 HTTP response 添加新的 HTTP 报头和值:response.AddHeader name,value

AppendToLog 向服务器记录项目(server log entry)的末端添加字符串 :response.AppendToLog string

BinaryWrite 在没有任何字符转换的情况下直接向输出写数据

Clear 清除已缓冲的 HTML 输出

End 停止处理脚本,并返回当前的结果

Flush 立即发送已缓冲的 HTML 输出

Redirect 把用户重定向到另一个 URL

Write 向输出写指定的字符串 

65、ASP使用ActiveX技术基于开放设计环境,用户可以自己定义和制作组件加入其中,使自己的动态网页几乎具有无限的扩充能力。ASP页面所使用的脚本语言均在Web服务器端执行,然后把执行结果传送到用户端的浏览器。ASP的源程序只在服务器端执行,不会被传到客户端浏览器,因而可以避免源程序外泄,提高了程序的安全性。可使用服务器端的脚本来产生客户端的脚本。ActiveX服务器元件具有无限可扩充性。可以使用Visual Basic、Java、Visual C++、COBOL等编程语言定制自己所需要的ActiveX服务器组件。

66、ASP为用户提供了脚本语言以外的指令:输出指令和处理指令。

(1)ASP的输出指令显示表达式expression的值:

       <%=expression%>

(2)ASP的处理指令提供处理.asp文件所需信息。  

       <%@keyword%>

67、处理指令必须出现在.asp文件的第一行。不要将处理指令放在包含#include语句的文件中。必须在标记(@)和关键字之间加入一个空格。处理指令有下列关键字:

LANGUAGE关键字:设置Web页的脚本语言。

CODEPAGE关键字:设置Web页的字符编码。

LCID关键字:设置Web页的Locale ID 。

ENABLESESSIONSTATE关键字:指定ASP页是否使用会话状态。

68、Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。用户每次访问站点时,Web 应用程序都可以读取 Cookie 包含的信息。

假设在用户请求访问一个网站 www.contoso.com 上的某个页面时,网站的应用程序发送给该用户的不仅仅是一个页面,还有一个包含日期和时间的 Cookie。用户的浏览器在获得页面的同时还得到了这个 Cookie,并且将它保存在用户硬盘上的某个文件夹中。

语法格式如下:

  Request.Cookies(cookie){(key)|.attribute}

  Response.Cookies(cookie)[([(key)|.attribute] = value

参数说明:

cookie:指定要检索其值的cookie。

Key:可选参数,用于从cookie字典中检索子关键字的值。

Attribute:指定cookie自身的有关信息。如:HasKeys只读,说明cookie是否包含关键字。可以通过包含一个key值来访问cookie字典的子关键字。如果访问cookie字典时未指定key,则所有关键字都会作为单个查询字符串返回。

<%

  nickname=request.form("nick")

  response.cookies("nick")=nickname

  用response对象将用户名写入Cookie之中

  response.write "欢迎"&request.cookies("nick") & "光临小站!"

  %>

69、vbcrlf:回车符和换行符;Replace(StrM,vbcrlf,"<Br>" & vbcrlf),Replace函数:将字符串StrM中的vbcrlf替换为"<Br>" & vbcrlf

70、(1)Session对象是客户端浏览器与服务器之间建立的互动信息的状态。每一个不同的用户连接得到不同的Session。Session在用户进入网站时由服务器自动产生,并在用户正常离开站点时释放。

当用户在应用程序的页之间跳转时,存储在 Session 对象中的变量不会清除,而用户在应用程序中访问页面时,这些变量始终存在。

使用Session可以保存很多与用户相关的信息,例如用户的账号、昵称等;利用Session,可以跟踪用户在网站上的活动。

(2)Session对象有两个时间事件分别是Session_OnStart和Session_OnEnd,它们分别在Session开始和Session结束的时候被触发。

Session_OnStart和Session_OnEnd这两个事件的处理过程写在 Global.asa文件中。

在编写Global.asa文件时,该文件中的脚本只能使用Microsoft规范的<Script>……</script>标记而不能使用<%……%>’’标记;不能使用HTML语言,不能在里面添加任何的输出语句,这是因为Global.asa在任何时候都不会进行内容输出。

在Web站点根目录或一些应用程序的虚拟目录中,存放Global.asa的文件

71、Global.asa文件的使用

Application和Session对象的两个事件OnStart和OnEnd的脚本都必须写在Global.asa文件中。

Global.asa文件其实是一个可选文件,程序编写者可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象。该文件的内容是用来存储事件信息和由应用程序全局使用的对象。该文件的名称必须是Global.asa且必须存放在应用程序的根目录中。每个应用程序只能有一个Global.asa文件。

72、下面是一个标准的Global.asa文样: 

 <SCRIPT LANGUAGE="VBScript" RUNAT="server">

'Session_OnStart当客户首次运行ASP应用程序中的任何一个页面时运行

'Session_OnEnd当一个客户的会话超时或退出应用程序时运行

'Application_OnStart当任何客户首次访问该应用程序的首页时运行

'Application_OnEnd当该站点的Web服务器关闭时运行

</SCRIPT>

<SCRIPT LANGUAGE="VBScript" RUNAT="Server">

Sub Application_OnStart

73、当在 WEB 服务器上安装完 ASP 环境后,就可以直接使用它自带的几个常用组件,如 Database Access 组件。也可以从第三方开发者处获得可选的组件, 也可以编写自己的组件。

Activex组件是包含在动态链接库(.dll)或可执行文件(.exe)中的可执行代码。组件可以提供一个或多个对象以及对象的方法和属性。

74、    <input type = "submit" value = "登录" name = "tj">

    <input type = "submit" value = "跳过" name = "tj">

        if request.querystring("tj") <> "" then

            if request.querystring("tj") = "登录" then

                if request.querystring("user") <> "" and request.querystring("pwd") <> "" then

需要注意的是两个方面: (1)两个相同的输入有一个同样的名字;仅仅拥有不同的值。(2)对输入的值,先判断是否为空,然后再判断是否等于某个值!

75、    <form action = "get方法.asp" method = "get">

    <form action = "post方法.asp" method = "post">

不管是post还是get方法,他都要求有一个指定的页面。这个页面通过form和querystring来接受数据。

76、<from action = "<%= request.serverVariable("SCRIPT_NAME")%>" method = "post">

    在上面的语句中,正在被执行的ASP 页面的虚拟路径。

指定用表单所在的页面响应表单中的数据。

</form>

77、    set  Application("obj") = server.createobject("对象库名")

    set Session("obj") = server.createobject("对象库名")

    Application("Var") = VarName

    Session("Var") = VarName

<OBJECT ID = "obj" RUNAT = "Server" SCOPE = "Application | Session" PROGID = "对象库名">

<OBJECT ID = "var" RUNAT = "Server" SCOPE = "Application | Session" >

Contents    方法: Remove RemoveAll (Abondon CodePage LCID Sesstion TimeOut) Lock UnLock ,

StaticObjects

78、Sub Session_OnStart

    homepage = "/session/home.asp"

    curpage = request.ServerVariables("SCRIPT_NAME")

    if curpage <> homepage then

        response.Redirect homepage

    end if

End Sub

当用户访问站点的页面时,首先判断一下该页面是否为指定页面,比如站点主页等。如果不是的话就自动跳转到指定的页面上。

78、<script language = "vbscript" runat = "server">

Sub Application_OnStart

Application("counter") = 0

End Sub

 Sun Session_OnStart

    Application.Lock

    Application("counter") = Application("counter" ) +1

    Application.Unlock

</script>

79、session是为单个用户保存的变量,对单个用户有效.

当一个用户登陆时,可以将使用session("id")保存他的ID,并触发session_onstart事件,服务器通过session("id")识别登陆用户.例如,调出用户的资料:

id=session("id")

set cn=server.createobject("adodb.connection")

cn.open "driver={Microsoft Access Driver (*.mdb)};dbq="&server.mappath("数据库.mdb")

set cn1=server.createobject("adodb.recordset")

cn1.open "select * from a where id='"&id&"'",cn,1,1

'服务器通过session识别用户,并调出该用户的资料

application是为所有用户保存的变量,对所有用户有效.

application广泛应用在聊天室里,application针对的是所有用户.

方法    信息量大小 保存时间   应用范围   保存位置

Application   任意大小    整个应用程序的生命期    所有用户   服务器端

 Session   小量,简单的数据 用户活动时间+一段延迟时间(一般为20分钟) 单个用户    服务器端

Cookie 小量,简单的数据   可以根据需要设定    单个用户    客户端

application是一个公共的对象,当网站服务器开启的时候(比如IIS),application就被创建。而session对象是指访问者从到达某个特定主页到离开为止的那段时间网站为用户分配的用来保存用户信息的对象。

1.Application对象

    Application用于保存所有用户的公共的数据信息,如果使用Application对象,一个需要考虑的问题是任何写操作都要在Application_OnStart事件(global.asax)中完成.尽管使用Application.Lock和Applicaiton.Unlock方法来避免写操作的同步,但是它串行化了对Application对象的请求,当网站访问量大的时候会产生严重的性能瓶颈.因此最好不要用此对象保存大的数据集合

2.Session对象

    Session用于保存每个用户的专用信息.她的生存期是用户持续请求时间再加上一段时间(一般是20分钟左右).S

ession中的信息保存在Web服务器内容中,保存的数据量可大可小.当Session超时或被关闭时将自动释放保存的数据信息.由于用户停止使用应用程序后它仍然在内存中保持一段时间,因此使用Session对象使保存用户数据的方法效率很低.对于小量的数据,使用Session对象保存还是一个不错的选择.使用Session对象保存信息的代码如下:

 3.Cookie对象

    Cookie用于保存客户浏览器请求服务器页面的请求信息,程序员也可以用它存放非敏感性的用户信息,信息保存的时间可以根据需要设置.如果没有设置Cookie失效日期,它们仅保存到关闭浏览器程序为止.如果将Cookie对象的Expires属性设置为Minvalue,则表示Cookie永远不会过期.Cookie存储的数据量很受限制,大多数浏览器支持最大容量为4096,因此不要用来保存数据集及其他大量数据.由于并非所有的浏览器都支持Cookie,并且数据信息是以明文文本的形式保存在客户端的计算机中,因此最好不要保存敏感的,未加密的数据,否则会影响网站的安全性.使用Cookie对象保存的代码如下:

80、Server:(1) SrciptTimeout属性:指定脚本有效运行的时间,--程序能够运行的最大时间。属性以秒为单位设置脚本可以有效运行的时间。最少不能少于1秒!木哦人值为90秒!超出指定的时间后,服务器就会中止脚本,并显示错误信息。,属性的设置必须放置在有效的Asp代码之前,否则不会有任何效果!一个缺省的Scritpt Timeout的值会能过ASPScriptTimeOUT属性来设置在Web sertvic 或 Web server上。在程序中,ScriptTimeout属性的值不能小于这个缺省值。举个例子吧,如果NumSeconds我们设置为10秒,而缺省值为90秒,那么程序就会中止在90秒以后,而不是10秒以后的。同样,如果我们设置ScriptTimeout的值为100秒,那么,程序就会在100秒之后中止,而不是90秒。

<%

server.ScriptTimeout = 5

response.write("你可以在该页面上停留"&server.scriptTimeout&"秒")

%>

(2)一般来说,用由Server.CreateObject方法创建的对象拥有页面的范围.这就说,当这页的asp程序执行完后,这种对象会自动地消失。为了创建一个拥有Session或Application范围的对象,你可以在Global.asa文件中使用。

(3)Server.Execute 方法提供了一种将一个复杂ASP应用程序分化为小块单位来执行的方法。通过这种方法,你能够建一个ASP图书馆,你能够随便在你需要时调用你图书馆中的ASP文件。当IIS根据指定的ASP文件路径执行完这个ASP文件之后,就会自动返回以前的ASP文件。这个刚刚执行完的ASP文件有可能改变了HTTP head.但是和其它的ASP文件一样,当程序试图改变http head时,就会报错!

(1)<%

dim objdic

set session("objdic") = server.CreateObject("Script.dicitionary")

set objdic = session("objdic")

objdic.add "12", "server"

objdic.add "11", "objectContext"

response.redirect("createobject 方法测试.asp")

%>

<%

dim objdic

set objdic = session("objdic")

for each sitem in objdic  //dictionary--字典本身是一个集合。它代表了关键字的集合!

    response.write(sitem&":"&objdic.item(sitem)&"<br>")//而item("sitem")就是关键字对应的值!

%>

(2)< %@ Transaction=Required%>

< %

 Server.Execute ("Page22.asp")

 Sub OnTransactionAbort

 Sub OnTransactionCommit

%>

< %@ Transaction=Required

 Sub OnTransactionAbort

 Sub OnTransactionCommit

%>

GetLastError 方法返回一个ASPError Object 来描述一个错误信息.这个方法只适用于在asp文件发送任何内容给用户机之前.一般的Web Site 都是根据文件/iishelp/common/500-100.asp来构造的。你能够用它来执行一个asp错误,当然你能够自己定义了!。如果你想改变为另外一个asp文件的来执行这些用户错误。那么你可以用IIS中的snap-in。

Transfer:从当前页面转向执行页面指定页面!Transfer方法只是简单的把浏览器中的地址从定位到指定的地址,此时服务器就要重新发送接收到来自该页面的HTTP头信息,并且,Response.Redirect方法不会把当前页中的状态信息发送到所转向的页面中。--Response.Redirect允许调用其他服务器或本服务器其他虚拟目录路径下的页面,而Transfer只能转向在统一虚拟路径下的其他页面。

81、ObjectContext对象:该对象用于控制Active Server Pages的事务处理。事务处理由Microsoft Transaction Server (MTS)管理。

事件

ObjectContext.OnTransactionAbort    由放弃的事务处理事件激发,在脚本完成处理后发生。

ObjectContext.OnTransactionCommit   由成功的事务处理事件激发,在脚本完成处理后发生。

方法

ObjectContext.SetAbort 显式的放弃一次事务处理。

ObjectContext.SetComplete   覆盖前面任何调用ObjectContext.SetAbort方法的调用。

82、文件下载,指定默认名

Response.AddHeader("content-type","application/x-msdownload");

Response.AddHeader("Content-Disposition","attachment;filename=要下载的文件名.rar");

刷新页面

Response.AddHeader REFRESH, 60;URL=newpath/newpage.asp

这等同于客户机端<META>元素:

<META HTTP-EQUIV=REFRESH, 60;URL=newpath/newpage.asp

页面转向

Response.Status = 302 Object Moved

Response.Addheader Location, newpath/newpage.asp

这等同于使用Response.Redirect方法:

Response.Redirect newpath/newpage.asp

强制浏览器显示一个用户名/口令对话框

Response.Status= 401 Unauthorized

Response.Addheader WWW-Authenticate, BASIC

强制浏览器显示一个用户名/口令对话框,然后使用BASIC验证把它们发送回服务器(将在本书后续部分看到验证方法)。

如何让网页不缓冲

Response.Expires = 0

Response.ExpiresAbsolute = Now() - 1

Response.Addheader "pragma","no-cache"

Response.Addheader "cache-control","private"

Response.CacheControl = "no-cache

83、Dicitionary对象:对象中的关键词必须是唯一的,不能重复,项目值则是可以重复多次出现的,但每一个项目必须与唯一的关键词对应!

属性: Key--Obj.Key(key) = newkeyvalue【如果一个被修改的关键词并不存在,那么VBScript将自动创建这个关键词并将与响应的项目设为空】

    item--Obj.item(key)[ =newitem ]【如果与要修改的项目相关联的关键词并不存在,那么VBScript将利用所指定的newitem创建该关键词。如果要返回一个关键词所关联的项目时,发现该关键词并不存在,那么VBscript创建该关键词且将其相关联的项目设置为空】

    count--返回Dicitionary对象中的数目。

    CompareMode--设置或返回Dicitionary对象的比较模式。【如果试图改变Dicitionary的比较模式,但对象已经存储了数据,那么将导致一个错误。】

方法: Add--ojb.Add(key, item)【如果添加的关键字已经存在,就会导致错误产生!】

    Exists--obj.exists(key)[true|false]判断Dicitionary对象中是否存在所指定的关键词。

    items--obj.items()返回一个存储了Dicitionary对象中所有项目的数组。

    Keys--obj.Keys()返回一个存储所有关键词的数组。

    remove--obj.remove(key)删除一个关键词、项目对。  removeAll

StrArr = dicObj.Items

For i =0 To dicObj.count-1

response.write(strArr(i))

next

 

StrCode = dicObj.Keys

for i = 0 To dicObj.count-1

response.write(StrCode(i)&string(4,"")&strArr(i)&"<br>")

84、Drive和Drives对象:要创建一个Drive对象,首先要创建一个FileSystemObject对象,然后再通过FileSystemObject对象的GetDrive方法来创建需要的Drive对象.

    set fsoObj = server.createObject("Scripting.FileSystemObject")

    set DrvObj = fsoObj.GetDrive("C")

    for each DriObj in fsoObj.Drives

        //对Drive对象的操作语句

    next

AvailableSpace属性:获取驱动器上的可用空间的大小;     DriveLetter属性:返回代表该驱动器的字母符号;

DriveType属性: 返回所制定的驱动器的类型:        FileSystem属性:返回驱动器所用的文件系统类型;

FreeSpace属性:返回指定驱动器山的剩余空间;           IsReady属性:判断驱动器是否就绪;

Path属性:返回驱动器的路径;                  RootFolder属性:返回指定驱动器的根目录;

SerialNumber属性:返回磁盘的序列号;          ShareName属性:返回驱动器的共享名称;

TotalSize属性:返回指定驱动器上的全部空间大小;        VolumeName属性:设置或返回指定驱动器山的卷名;

85、File对象和Files集合对象:

set fsoObj = server.createObject("Scripting.FileSystemObject")

set fobj = fsoObj.GetFile("E:/第四章/dicitionary/Drive.asp")

Attributes属性:设置或返回文件的属性;            DataCreated属性:获取文件的创建时间;

DataLastAccessed属性:返回文件最后被访问的时间;      DataLastModified属性:返回文件最后被修改的时间;

Drive属性:返回文件所在的驱动器;             Name属性:返回所指定文件的文件名;

ParentFolder属性:返回文件所在的目录;            Path属性:返回指定文件的路径;

ShortName属性:返回指定文件的短文件名;           ShortPath属性:返回指定文件的段路径名;

Type属性:返回指定文件的类型信息              Size属性:返回文件的大小;

方法:Copy; obj.copy destination [,overwrite]       Delete: Obj.Delete[force]

    move: obj.Move destintion               OpenAsTextStream方法, obj.OpenAsTextStream([iomode[,format]])

Files 集合对象:属性Count;返回Files集合所包含的文件的数目属性Item: 根据文件名返回文件的路径;obj.Item(fileName)

set fsoObj = server.createObject("Scripting.FileSystemObject")

Set fdObj = fsoObj.GetFolder("E:/第四章/dicitionary")

set fs = fdObj.Files

86、FileSystemObject对象:访问计算机文件系统

Drives属性:返回本地计算机上所有的Drive对象组成的Drivres集合  

BuildPath方法:根据新的参数生成新的路径; obj.BuildPath path , addname[path现有路径;addname要附加现有路径后面的内容!]

CopyFile方法: obj.copyFile soure, destination [,overwrite] 注意:在复制多个文件时,通配符只能作用文件名上且在目标位置时不能使用通配符。

copyfolder方法: obj.copyFolder soure, destination [,overwrite]      CreateFolder: Obj.createFolder(Folder)

createTextFile方法:  obj.createtextFile(Filename[,overwrite[,unicode]]) DeleteFile方法:删除文件:

DeleteFolder方法:删除指定的文件夹和其中的内容! DriveExists方法:判断指定的驱动器是否存在!

FileExists方法:判断指定的文件是否存在        FolderExists方法:判断指定的文件夹是否存在

GetAbsolutePathName方法:返回意义完整的路基路径   GetBaseName方法:返回文件或文件夹的基本名

GetDrive方法:从指定的路径上的到一个Drive对象;   GetDriveName方法:从提供的路径中提取表示驱动器的字符串

GetFile方法:返回一个指向文件的File对象;     GetFolder方法:返回一个指向指定文件夹的Folder对象;

GetParentFolderName方法:返回给定路径最后一部分的父目录; GetSpecialFolder方法:根据要求返回一个特殊文件夹:

GetTempName方法:随机生成文集或文件夹用于操作:   MoveFile方法:将一个或一批文件移动到目标位置

MoveFolder方法:移动一个或一批文件夹到目标位置; OpenTextFile方法:打开指定文件用于读写操作

86、Folder集合:

Files 返回指定文件夹中所有文件夹的集合         SubFolders 返回指定文件夹中所有字文件夹的集合

Attributes 设置或返回指定文件夹的属性         DateCreated 返回指定文件夹被创建的日期和时间

DateLastAccessed 返回指定文件夹最后被访问的日期和时间 DateLastModified 返回指定文件夹最后被修改的日期和时间

Drive 返回指定文件夹所在的驱动器的驱动器字母。     IsRootFolder 假如文件夹是根文件夹,则返回ture,否则返回false。

Name 设置或返回指定文件夹的名称。 ParentFolder 返回指定文件夹的父文件夹。   Path 返回指定文件的路径。

ShortName 返回指定文件夹的短名称。(8.3命名约定) ShortPath 返回指定文件夹的短路径。(8.3命名约定)

Size 返回指定文件夹的大小。  Type 返回指定文件夹的类型。

Copy 把指定的文件夹从某个位置拷贝到另一位置。

Delete 删除指定文件夹

Move 把指定的文件夹从某个位置移动到另一位置。

CreateTextFile 在指定的文件夹创建一个新的文本文件,并返回一个TextStream对象以访问这个文件。

87、TextStream 对象用于访问文本文件的内容

<%

dim fs, f

set fs=Server.CreateObject("Scripting.FileSystemObject")

set f=fs.CreateTextFile("c:/test.txt",true)

f.WriteLine("Hello World!")

f.Close

set f=nothing

set fs=nothing

%>

如需创建TextStream对象的一个实例,我们可以使用FileSystemObject对象的CreateTextFile方法或者OpenTextFile方法,也可以使用File对象的OpenAsTextStream方法。

AtEndOfLine 在 TextStream 文件中,如果文件指针正好位于行尾标记的前面,那么该属性值返回True;否则返回False。

AtEndOfStream 如果文件指针在 TextStream 文件末尾,则该属性值返回 True;否则返回 False。

Column 返回 TextStream 文件中当前字符位置的列号。

Line 返回一个 TextStream 文件中的当前行号。

方法:

Close 关闭一个打开的 TextStream 文件。

Read 从一个 TextStream 文件中读取指定数量的字符并返回结果(得到的字符串)。

ReadAll 读取整个的 TextStream 文件并返回结果。

ReadLine 从一个 TextStream 文件读取一整行(到换行符但不包括换行符)并返回结果。

Skip 当读一个 TextStream 文件时跳过指定数量的字符。

SkipLine 当读一个 TextStream 文件时跳过下一行。

Write 写一段指定的文本(字符串)到一个 TextStream 文件。

WriteLine 写入一段指定的文本(字符串)和换行符到一个 TextStream 文件中。

WriteBlankLines 写入指定数量的换行符到一个 TextStream 文件中。

<%

dim fs,f,t,x

set fs=Server.CreateObject("Scripting.FileSystemObject")

set f=fs.CreateTextFile("c:/test.txt")

f.write("Hello World!")

f.close

 

set t=fs.OpenTextFile("c:/test.txt",1,false)

x=t.Read(5)

t.close

Response.Write("The first five characters are: " & x)

%>

88、从 ASP 页面访问数据库

从 ASP 文件内部访问数据库的通常途径是:

创建至数据库的 ADO 连接(ADO connection); 打开数据库连接 ;创建 ADO 记录集(ADO recordset) ;打开记录集(recordset) ;从数据集中提取你所需要的数据 ;关闭数据集 ;关闭连接 。

(1)建立连接:

on error resume next

dim objcnn

set objcnn = server.createobject("ADODB.Connection")

objcnn.open "DSN = mark; UID = mark; PWD = mark" '在asp中访问dsn

'objcnn.open "FileDSN = "&MapPath("mark.dsn")&"; UID = mark; PWD = mark" '在asp中通过dsn访问数据源

'stringProvider= "Driver = {database driver}; DBQe = database; UID = uid; PWD = pwd"

'例如:strProvider = "Driver={Microsoft Access Driver(*.mdb)};DBQ=""&server.MapPath("mark.mdb")

linkString = "Provider = provider; Data Source = database; UID =uid; PWD = pwd"

例如:strProvider = "Provider = micorosoft.jet.oledb.4.0; Data Source = "&server.MapPath("mark.mdb")

if err.number > 0 then

response.write(err.description)

else

response.write("数据库连接成功!")

objconn.close

set objcnn = nothing

end if

89、asp数据库常用代码 

<1>.数据库连接(用来单独编制连接文件conn.asp)

 

<%

set conn = server.createobject(adodb.connection)

conn.open driver={microsoft access driver (*.mdb)}; dbq= & server.mappath(/bbs/db1/user.mdb)

%>

 

(用来连接bbs/db1/目录下的user.mdb数据库)

 

<2>显示数据库记录

 

原理:将数据库中的记录一一显示到客户端浏览器,依次读出数据库中的每一条记录

 

如果是从头到尾:用循环并判断指针是否到末 使用: not rs.eof

 

如果是从尾到头:用循环并判断指针是否到开始 使用:not rs.bof

 

<!--#include file=conn.asp--> (包含conn.asp用来打开bbs/db1/目录下的user.mdb数据库)

<%

set rs=server.createobject(adodb.recordset) (建立recordset对象)

sqlstr=select * from message ---->(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)

rs.open sqlstr,conn,1,3 ---->(表示打开数据库的方式)

rs.movefirst ---->(将指针移到第一条记录)

while not rs.eof ---->(判断指针是否到末尾)

response.write(rs(name)) ---->(显示数据表message中的name字段)

rs.movenext ---->(将指针移动到下一条记录)

wend ---->(循环结束)

rs.close

conn.close 这几句是用来关闭数据库

set rs=nothing

set conn=nothing

%>

 

其中response对象是服务器向客户端浏览器发送的信息

 

<3>增加数据库记录

 

增加数据库记录用到rs.addnew,rs.update两个函数

 

<!--#include file=conn.asp--> (包含conn.asp用来打开bbs/db1/目录下的user.mdb数据库)

<%

set rs=server.createobject(adodb.recordset) (建立recordset对象)

sqlstr=select * from message ---->(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)

rs.open sqlstr,conn,1,3 ---->(表示打开数据库的方式)

rs.addnew 新增加一条记录

rs(name)=xx 将xx的值传给name字段

rs.update 刷新数据库

rs.close

conn.close 这几句是用来关闭数据库

set rs=nothing

set conn=nothing

%>

 

<4>删除一条记录

 

删除数据库记录主要用到rs.delete,rs.update

 

<!--#include file=conn.asp--> (包含conn.asp用来打开bbs/db1/目录下的user.mdb数据库)

<%

dim name

name=xx

set rs=server.createobject(adodb.recordset) (建立recordset对象)

sqlstr=select * from message ---->(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)

rs.open sqlstr,conn,1,3 ---->(表示打开数据库的方式)

while not rs.eof

if rs.(name)=name then

rs.delete

rs.update 查询数据表中的name字段的值是否等于变量name的值xx,如果符合就执行删除,

else 否则继续查询,直到指针到末尾为止

rs.movenext

emd if

wend

rs.close

conn.close 这几句是用来关闭数据库

set rs=nothing

set conn=nothing

%>

 

<5>关于数据库的查询

 

(a) 查询字段为字符型

 

<%

dim user,pass,qq,mail,message

user=request.form(user)

pass=request.form(pass)

qq=request.form(qq)

mail=request.form(mail)

message=request.form(message)

if trim(user)&x=x or trim(pass)&x=x then (检测user值和pass值是否为空,可以检测到空格)

response.write(注册信息不能为空)

else

set rs=server.createobject(adodb.recordset)

sqlstr=select * from user where user='&user&' (查询user数据表中的user字段其中user字段为字符型)

rs.open sqlstr,conn,1,3

if rs.eof then

rs.addnew

rs(user)=user

rs(pass)=pass

rs(qq)=qq

rs(mail)=mail

rs(message)=message

rs.update

rs.close

conn.close

set rs=nothing

set conn=nothing

response.write(注册成功)

end if

rs.close

conn.close

set rs=nothing

set conn=nothing

response.write(注册重名)

%>

 

(b)查询字段为数字型

 

<%

dim num

num=request.form(num)

set rs=server.createobject(adodb.recordset)

sqlstr=select * from message where id=&num (查询message数据表中id字段的值是否与num相等,其中id为数字型)

rs.open sqlstr,conn,1,3

if not rs.eof then

rs.delete

rs.update

rs.close

conn.close

set rs=nothing

set conn=nothing

response.write(删除成功)

end if

rs.close

conn.close

set rs=nothing

set conn=nothing

response.write(删除失败)

%>

90、HTML文件是被网络浏览器读取,产生网页的文件。从本质上来说,环球网只是一个由HTML文件及一系列传输协议所组成的集合。这些HTML文件存储在分布于世界各地的计算机的硬盘上,而传输协议能把这些文件从一台计算机传输到另一台计算机。网络浏览器,例如Netscape Navigator或Microsoft Internet explorer,能够解释HTML文件来显示网页,这是网络浏览器的主要作用。当你使用浏览器在环球网上浏览网页时,浏览器软件就自动完成HTML文件到网页的转换。

91、大部分HTML标识符是成对出现的,并且象一个容器的作用一样。

92、首先,HTML是一个不断发展的标准。即使每个人都有一个能对最新的HTML规范正确解释的浏览器,问题还是存在的。Microsoft和Netscape一直忽略网络标准,他们都在自己新版的网络浏览器中加入了它们各自的HTML标识符。它们运行不同的操作系统,具有不同的屏幕显示特性。如果你使用同一个版本的软件来浏览同一个主页,但一次是在UNIX机器上,而另一次是在Windows机器上,你就会发现一些显示上的细微差别。

(1)低版本的浏览器软件不能解释所有的最新HTML规范中的标识符。

(2)Netscape和Microsoft在他们各自的浏览器软件中引入了专门的标识符。

(3)使用不同操作系统及显示器的计算机以不同的方式来显示网页。

92、BinaryRead 方法用于读取作为 POST 请求的一部分从客户端发出的未加工数据。此方法用于在底层访问数据,与此相反,Request.Form 集合用于查看在公告请求中发送的表格数据。一旦调用了 BinaryRead,则引用 Request.Form 集合中的任何变量都将导致错误发生。反之,一旦引用了 Request.Form 集合中的一个变量,则调用 BinaryWrite 也将导致错误发生。请记住,如果在访问 Request 集合中的变量时未指定该变量属于哪一个子集,将搜索 Request.Form 集合并强制使用上述规则。

93、QueryString 集合是在 ServerVariables 集合中 QUERY_STRING 变量的分析版本 。它可以让您以名称检索 QUERY_STRING 变量。Request.QueryString (参数) 的值是出现在 QUERY_STRING 中所有参数 的值的数组。通过调用 Request.QueryString(parameter).Count 可以确定参数有多少个值。如果变量未关联多个数据集,则计数为 1。如果找不到变量,计数为 0。 要在多个数据集合的一个中引用 QueryString 变量,请指定 index 的值。index 参数可以是 1 到 Request.QueryString(variable).Count 中任意值。

94、可以通过包含一个 key 值来访问 cookie 字典的子关键字。如果访问 cookie 字典时未指定 key,则所有关键字都会作为单个查询字符串返回。例如,如果 MyCookie 有两个关键字, First 和 Second ,而在调用 Request.Cookies时并未指定其中任何一个关键字,那么将返回下列字符串。 First=firstkeyvalue&Second=secondkeyvalue 如果客户端浏览器发送了两个同名的 cookie,那么 Request.Cookie 将返回其中路径结构较深的一个。例如,如果有两个同名的的 cookie,但其中一个的路径属性为 /www/ 而另一个为 /www/home/,客户端浏览器同时将两个 cookie 都发送到 /www/home/ 目录中,那么 Request.Cookie 将只返回第二个 cookie

95、这就意味着每当服务器完成向客户发送页面后,服务器就彻底忘记了这个客户。因此,当客户请求下一个页面时,与一个新的访问者是完全相同的。服务器无法记住这个客户,相应的,也就无法判断它们上次请求的页面是哪一个。因为,不能使用相对路径来提供一个页面,即使页面包含一个相对的链接也不行,

<A HREF=Download.asp>Next Page</A>

      浏览器将自动建立完整的新页面的URL,方法是使用当前页的域和路径;或使用页面<HEAD>段中的<BASE>元素,告诉浏览器一个页面中所有链接的其URL是什么。例如:

      <BASE HERF=http://www.wrox.com/Store>

      当把鼠标指向一个页面的链接时,可在浏览器的状态栏中看到。当前页面的路径和当前域名或基域名或基路径已经与请求的页面名结合在一起了。

95、RESPONSE.WRITE与<%=%>都是ASP程序向客户端输出字符串的方法,虽然两者的结果相同但是其效果是不同的。

一般的来说我们大部分时间将<%=%>用于html与asp代码相混合的状态下,而Response.Write用于〈%……%〉脚本段中,但从VBScript 语法 <% = expression %> 将表达式的值写入 ASP 输出流来分析这个方法可以发现。如果响应缓冲没有打开,则这些语句的每一句都会导致通过网络,以许多小型包的形式,向浏览器写入数据。这是非常慢的。另外,解释少量脚本和 HTML,将导致在脚本引擎和 HTML 之间切换,也降低了性能。因此,对于 Response.Write 的一个调用,替换内嵌的密集组合表达式在应用程序的性能上可以得到很大的提高.

96、当载入ASP DLL并响应对一个ASP网页的第一个请求时,创建 Application对象。该对象提供一个存储场所,用来存储对于所有访问者打开的所有网页都可用的变量和对象。当访问者首次从站点请求一个ASP页面时,为他创建一个Session对象,并保持有效直到缺省的超时周期(或由脚本确定的超时周期)。该对象提供一个存储场所,用来存储仅仅对该访问者在会话的活动期间打开的网页可用的变量和对象。

97、ADO is a Microsoft technology :ADO是微软的技术。

ADO stands for ActiveX Data Objects :ADO代表ActiveX Data Objects

ADO is a Microsoft Active-X component :ADO是微软Active-X 组件。

ADO is automatically installed with Microsoft IIS :ADO随IIS安装而安装。

ADO is a programming interface to access data in a database :ADO在编程中用于获取数据库中的数据。

96、< OBJECT RUNAT=Server ID=MyAd PROGID="MSWC.AdRotator">< /OBJECT>

创建对象!AcvtiveX对象!用于操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值