ASP缓存类含调用演示

< %
'by xilou,www.chinacms.org,20090115
'最后更新:20090115
'修改记录:无

CONST CACHEPREFIX = "CACHE_" '缓存前缀,不能为空

'说明:
' 1,缓存的格式为Application(CACHEPREFIX & key) = array("缓存key","缓存时间","缓存内容","缓存说明","到期时间")
' 2,缓存key不区分大小写

'添加缓存,不检查缓存是否存在,如果存在则相当于更新缓存
'varAry : 参数,格式为:array("缓存key","缓存时间","缓存内容","缓存说明")
' 缓存key :application()格式相同
' 缓存时间:单位秒,可以为负数,表示立即过期,可以为空,空或不是数字则默认为20分钟过期
' 缓存内容:缓存数据,不支持对对象的缓存
' 缓存说明:缓存描述说明
Function AddCache(varAry)
Dim c,ary(4)
If Not IsArray(varAry) Then
Response.Write "Error:AddCache(varAry)参数错误,参数不是数组"
Response.End()
End If
If UBound(varAry) <> 3 Then
Response.Write "Error:AddCache(varAry)参数错误,数组长度错误"
Response.End()
End If
If varAry(0) = "" Then
Response.Write "Error:AddCache(varAry)错误,key不能为空"
Response.End()
End If
If varAry(1) = "" or Not IsNumeric(varAry(1)) Then varAry(1) = 1200
Application.Lock()
Application(CACHEPREFIX & varAry(0)) = array(varAry(0),varAry(1),varAry(2),varAry(3),DateAdd("s",varAry(1),Now()))
Application.UnLock()
End Function
Read the rest of this entry

ASP 事件类 eventProvider

asp事件类,功能说明:
1,showInfo(e_title,c_url,e_num,e_des,e_time,opera,ip,reurl):显示错误信息
2,getIP():取得客户IP
3,checkPost():验证是否是站外提交
4,getReferer():来路记录
5,getCurURL():取得当前页面路径
6,isRefresh(s1,s2,maxtimes):防刷新 Read the rest of this entry

ASP 通用函数库

< %
    '******************************
    '类名:
    '名称:通用库
    '日期:2008/10/28
    '作者:by xilou
    '网址:http://www.chinacms.org
    '描述:通用库
    '版权:转载请注名出处,作者
    '******************************
    '最后修改:20090108
    '修改次数:2
    '修改说明:
    '20090108 增加下列函数:
    '    A2U(),U2A(),UrlEncode(),UrlDecode(),GBToUTF8(),Bytes2Str(),Str2Bytes()
    '20090108 增加下列函数:
    '    AryToVbsString(arr)
    '目前版本:
    '******************************/
 
    '输出
    Sub Echo(str)
        Response.Write str
    End Sub
 
    '断点
    Sub Halt()
        Response.End()
    End Sub
 
    '输出并换行
    Sub Br(str)
        Echo str & "<br />" & vbcrlf
    End Sub
 
    '简化Request.Form()
    'f : 表单名称
    Function P(f)
        P = Replace(Request.Form(f), Chr(0), "")
    End Function
 
    '接收表单并替换单引号
    Function Pr(f)
        Pr = Replace(Request.Form(f), Chr(0), "")
        Pr = Replace(Pr, "'", "''")
    End Function
 
    '简化Request.Querystring()
    'f : 表单名称
    Function G(f)
        G = Replace(Request.QueryString(f), Chr(0), "")
    End Function
 <a href="http://www.lixiaopeng.org/asp-general-library/#more-967" class="more-link">Read the rest of this entry</a>

ASP错误代码总结

Microsoft VBScript语法错误(0x800A03E9)-->内存不足
Microsoft VBScript语法错误(0x800A03EA)-->语法错误
Microsoft VBScript语法错误(0x800A03EB)-->缺少 ':'
Microsoft VBScript语法错误(0x800A03ED)-->缺少 '('
Microsoft VBScript语法错误(0x800A03EE)-->缺少 ')'
Microsoft VBScript语法错误(0x800A03EF)-->缺少 ']'
Microsoft VBScript语法错误(0x800A03F2)-->缺少标识符
Microsoft VBScript语法错误(0x800A03F3)-->缺少 '='
Microsoft VBScript语法错误(0x800A03F4)-->缺少 'If'
Microsoft VBScript语法错误(0x800A03F5)-->缺少 'To'
Microsoft VBScript语法错误(0x800A03F6)-->缺少 'End'
Microsoft VBScript语法错误(0x800A03F7)-->缺少 'Function'
Microsoft VBScript语法错误(0x800A03F8)-->缺少 'Sub'
Microsoft VBScript语法错误(0x800A03F9)-->缺少 'Then'
Microsoft VBScript语法错误(0x800A03FA)-->缺少 'Wend'
Microsoft VBScript语法错误(0x800A03FB)-->缺少 'Loop'
Microsoft VBScript语法错误(0x800A03FC)-->缺少 'Next'
Microsoft VBScript语法错误(0x800A03FD)-->缺少 'Case'
Microsoft VBScript语法错误(0x800A03FE)-->缺少 'Select'
Microsoft VBScript语法错误(0x800A03FF)-->缺少表达式
Microsoft VBScript语法错误(0x800A0400)-->缺少语句
Microsoft VBScript语法错误(0x800A0401)-->语句未结束
Microsoft VBScript语法错误(0x800A0402)-->缺少整型常数
Microsoft VBScript语法错误(0x800A0403)-->缺少 'While' 或 'Until'
Microsoft VBScript语法错误(0x800A0404)-->缺少 'While', 'Until' 或语句未结束
Microsoft VBScript语法错误(0x800A0405)-->缺少 'With'
Microsoft VBScript语法错误(0x800A0406)-->标识符过长
Microsoft VBScript语法错误(0x800A0407)-->无效数字
Microsoft VBScript语法错误(0x800A0408)-->无效字符
Microsoft VBScript语法错误(0x800A0409)-->未结束的字符串常量
Microsoft VBScript语法错误(0x800A040A)-->注释未结束
Microsoft VBScript语法错误(0x800A040D)-->无效使用 'Me' 关键字
Microsoft VBScript语法错误(0x800A040E)-->'loop' 语句缺少 'do'
Microsoft VBScript语法错误(0x800A040F)-->无效的 'exit' 语句
Microsoft VBScript语法错误(0x800A0410)-->循环控制变量 'for' 无效
Microsoft VBScript语法错误(0x800A0411)-->名称重定义
Microsoft VBScript语法错误(0x800A0412)-->必须是行中的第一个语句
Microsoft VBScript语法错误(0x800A0413)-->不能为 non-ByVal 参数赋值
Microsoft VBScript语法错误(0x800A0414)-->调用子程序时不能使用括号
Microsoft VBScript语法错误(0x800A0415)-->缺少文字常数
Microsoft VBScript语法错误(0x800A0416)-->缺少 'In'
Microsoft VBScript语法错误(0x800A0417)-->缺少 'Class'
Microsoft VBScript语法错误(0x800A0418)-->必须在一个类的内部定义
Microsoft VBScript语法错误(0x800A0419)-->在属性声明中缺少 Let , Set 或 Get
Microsoft VBScript语法错误(0x800A041A)-->缺少 'Property'
Microsoft VBScript语法错误(0x800A041B)-->在所有属性的规范中,变量的数目必须一致
Microsoft VBScript语法错误(0x800A041C)-->在一个类中不允许有多个缺省的属性/方法
Microsoft VBScript语法错误(0x800A041D)-->类的初始化或终止程序没有参数
Microsoft VBScript语法错误(0x800A041E)-->属性的 set 或 let 必须至少有一个参数
Microsoft VBScript语法错误(0x800A041F)-->错误的 'Next'
Microsoft VBScript语法错误(0x800A0420)-->'Default' 只能在 'Property' , 'Function' 或 'Sub' 中指定
Microsoft VBScript语法错误(0x800A0421)-->指定 'Default' 时必须同时指定 'Public' ")
Microsoft VBScript语法错误(0x800A0422)-->只能在 Property Get 中指定 'Default'
Microsoft VBScript 运行时错误(0x800A0005)-->无效的过程调用或参数
Microsoft VBScript 运行时错误(0x800A0006)-->溢出
Microsoft VBScript 运行时错误(0x800A0007)-->内存不足
Microsoft VBScript 运行时错误(0x800A0009)-->下标越界
Microsoft VBScript 运行时错误(0x800A000A)-->该数组为定长的或临时被锁定
Microsoft VBScript 运行时错误(0x800A000B)-->被零除
Microsoft VBScript 运行时错误(0x800A000D)-->类型不匹配
Microsoft VBScript 运行时错误(0x800A000E)-->字符串空间不够
Microsoft VBScript 运行时错误(0x800A0011)-->不能执行所需的操作
Microsoft VBScript 运行时错误(0x800A001C)-->堆栈溢出
Microsoft VBScript 运行时错误(0x800A0023)-->未定义过程或函数
Microsoft VBScript 运行时错误(0x800A0030)-->加载 DLL 时出错
Microsoft VBScript 运行时错误(0x800A0033)-->内部错误
Microsoft VBScript 运行时错误(0x800A0034)-->错误的文件名或号码
Microsoft VBScript 运行时错误(0x800A0035)-->文件未找到
Microsoft VBScript 运行时错误(0x800A0036)-->错误的文件模式
Microsoft VBScript 运行时错误(0x800A0037)-->文件已经打开
Microsoft VBScript 运行时错误(0x800A0039)-->设备 I/O 错误
Microsoft VBScript 运行时错误(0x800A003A)-->文件已存在
Microsoft VBScript 运行时错误(0x800A003D)-->磁盘已满
Microsoft VBScript 运行时错误(0x800A003E)-->输入超出了文件尾
Microsoft VBScript 运行时错误(0x800A0043)-->文件过多
Microsoft VBScript 运行时错误(0x800A0044)-->设备不可用
Microsoft VBScript 运行时错误(0x800A0046)-->没有权限
Microsoft VBScript 运行时错误(0x800A0047)-->磁盘没有准备好
Microsoft VBScript 运行时错误(0x800A004A)-->重命名时不能带有其他驱动器符号
Microsoft VBScript 运行时错误(0x800A004B)-->路径/文件访问错误
Microsoft VBScript 运行时错误(0x800A004C)-->路径未找到
Microsoft VBScript 运行时错误(0x800A005B)-->对象变量未设置
Microsoft VBScript 运行时错误(0x800A005C)-->For 循环未初始化
Microsoft VBScript 运行时错误(0x800A005E)-->无效使用 Null
Microsoft VBScript 运行时错误(0x800A0142)-->不能创建所需的临时文件
Microsoft VBScript 运行时错误(0x800A01A8)-->缺少对象
Microsoft VBScript 运行时错误(0x800A01AD)-->ActiveX 部件不能创建对象
Microsoft VBScript 运行时错误(0x800A01AE)-->类不能支持 Automation 操作
Microsoft VBScript 运行时错误(0x800A01B0)-->Automation 操作中文件名或类名未找到
Microsoft VBScript 运行时错误(0x800A01B6)-->对象不支持此属性或方法
Microsoft VBScript 运行时错误(0x800A01B8)-->Automation 操作错误
Microsoft VBScript 运行时错误(0x800A01BD)-->对象不支持此操作
Microsoft VBScript 运行时错误(0x800A01BE)-->对象不支持已命名参数
Microsoft VBScript 运行时错误(0x800A01BF)-->对象不支持当前区域设置
Microsoft VBScript 运行时错误(0x800A01C0)-->未找到已命名参数
Microsoft VBScript 运行时错误(0x800A01C1)-->参数是必选项
Microsoft VBScript 运行时错误(0x800A01C2)-->错误的参数个数或无效的参数属性值
Microsoft VBScript 运行时错误(0x800A01C3)-->对象不是一个集合
Microsoft VBScript 运行时错误(0x800A01C5)-->未找到指定的 DLL 函数
Microsoft VBScript 运行时错误(0x800A01C7)-->代码资源锁定错误
Microsoft VBScript 运行时错误(0x800A01CA)-->变量使用了一个 VBScript 中不支持的 Automation 类型
Microsoft VBScript 运行时错误(0x800A01CE)-->远程服务器不存在或不可用
Microsoft VBScript 运行时错误(0x800A01E1)-->无效图片
Microsoft VBScript 运行时错误(0x800A01F4)-->变量未定义
Microsoft VBScript 运行时错误(0x800A01F5)-->非法赋值
Microsoft VBScript 运行时错误(0x800A01F6)-->对象不能安全地使用 Script 编程
Microsoft VBScript 运行时错误(0x800A01F7)-->对象不能安全初始化
Microsoft VBScript 运行时错误(0x800A01F8)-->对象不能安全创建
Microsoft VBScript 运行时错误(0x800A01F9)-->无效的或无资格的引用
Microsoft VBScript 运行时错误(0x800A01FA)-->类没有被定义
Microsoft VBScript 运行时错误(0x800A01FB)-->出现一个意外错误
Microsoft VBScript 运行时错误(0x800A1398)-->缺少常规表达式对象
Microsoft VBScript 运行时错误(0x800A1399)-->常规表达式语法错误
Microsoft VBScript 运行时错误(0x800A139A)-->错误的数量词
Microsoft VBScript 运行时错误(0x800A139B)-->常规表达式中缺少 ']'
Microsoft VBScript 运行时错误(0x800A139C)-->常规表达式中缺少 ')'
Microsoft VBScript 运行时错误(0x800A139D)-->字符集越界
Microsoft VBScript 运行时错误(0x800A802B)-->未找到元素
ActiveServerPages,ASP0126(0x80004005)-->找不到包含文件
Microsoft OLEDBProviderforODBCDrivers(0x80040E14)-->sql语句出错(字段名错误,或数据类型不匹配)
Microsoft OLEDBProviderforODBCDrivers(0x80040E07)-->sql语句出错(要插入或更新的字段的类型与变量数据类型不匹配)
Microsoft OLEDBProviderforODBCDrivers(0x80040E57)-->sql语句出错(要插入或更新的数据溢出)
Microsoft OLEDBProviderforODBCDrivers(0x80040E10)-->sql语句出错(update字段名或要更新的数据类型错误)
Microsoft OLEDBProviderforODBCDrivers(0x80004005)-->sql语句出错(要插入或更新的字段的数值不能为空值)
Microsoft OLEDBProviderforODBCDrivers(0x80004005)-->打开数据库出错,没有在指定目录发现数据库
Microsoft OLEDBProviderforODBCDrivers(0x80040E37)-->没有发现表
ODBCDrivers(0x80040E21)-->sql语句出错(数据类型不匹配或表/字段错误或处于编辑状态,或不存在于conn打开的数据库中)
ADODB.Recordset(0x800A0BB9)-->sql语句出错(sql语句或conn语句未定义或对一个rs属性进行赋值时发生错误)
ADODB.Recordset(0x800A0CC1)-->rs对像出错(rs对像本身不存在或错误地引用了一个不存在的字段名)
ADODB.Recordset(0x800A0BCD)-->rs对像出错(记录集中没有记录却对记录集进行操作)
ADODB.Recordset(0x800A0E78)-->rs对像出错(记录集不存在,缺少rs.open语句)
ADODB.Recordset(0x800A0CC1)-->rs对像出错(引用了一个不存在的字段名)
ADODB.Recordset(0x800A0E7D)-->conn定义错误 Read the rest of this entry

Asp伪静态html实现方法

Asp伪静态html实现方法
数据库是access,表名article,里面有id,title,content
config.asp连接数据库文件

< % 
'功能:asp实现伪静态的例子 
'数据库链接 
db="data.mdb" 
Set conn = Server.CreateObject("ADODB.Connection") 
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(db) 
conn.open connstr 
If Err Then 
err.Clear 
Set conn = Nothing 
Response.Write "数据库连接出错,请检查连接字串。" 
Response.End 
End If 
'定义新闻阅读界面的读取 
Dim News_title,News_content 
Sub ReadNews() 
set rs1=server.createobject("adodb.recordset") 
sql1="select id,title,content from article where id="& ID 
rs1.open sql1,conn,3,3 
News_title=rs1("title") 
News_content=rs1("content") 
rs1.close 
set rs1=Nothing 
End Sub 
%>

Read the rest of this entry

Asp实现屏蔽IP地址访问的代码

<%
'受屏蔽IP地址(段)集合,星号为通配符,通常保存于配置文件中。
Const BadIPGroup = "220.200.59.136|220.205.168.141"
If IsForbidIP(BadIPGroup) = True Then
Response.Write(GetUserIP &#038;"IP地址禁止访问")
Response.End()
End If
'****************************************************************
'参数vBadIP:要屏蔽的IP段,IP地址集合,用|符号分隔多个IP地址(段)
'返回Bool:True用户IP在被屏蔽范围,False 反之
'****************************************************************
Function IsForbidIP(vBadIP)
Dim counter, arrIPPart, arrBadIP, arrBadIPPart, i, j
arrBadIP = Split(vBadIP, "|")
arrIPPart = Split(GetUserIP(), ".")
For i = 0 To UBound(arrBadIP)
counter = 0
arrBadIPPart = Split(arrBadIP(i), ".")
For j = 0 To UBound(arrIPPart)
If (arrBadIPPart(j)) = "*" or Cstr(arrIPPart(j)) = Cstr(arrBadIPPart(j)) Then
counter = counter + 1
End If
Next
If counter = 4 Then
IsForbidIP = True
Exit Function
End If
Next
IsForbidIP = False
End Function
'***************
'返回客户IP地址
'***************
Function GetUserIP()
Dim IP
IP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If IP = "" Then IP = Request.ServerVariables("REMOTE_ADDR")
GetUserIP = IP
End Function
%>

转自:http://www.54rk.cn//blogview.asp?id=273

Request对象用于接受所有从浏览器发往你的服务器的请求内的所有信息。集合

Request.ClientCertificate(key[SubField])

所有客户证书的信息的集合。对于Key,该集合具有如下的关键字:

Subject
证书的主题。包含所有关于证书收据的信息。能和所有的子域后缀一起使用。

Issuer
证书的发行人。包含所有关于证书验证的信息。除了CN外,能和所有的子域后缀一起使用。

VadidFrom
证书发行的日期。使用VBScript格式。

ValidUntil
该证书不在有效的时间。

SerialNumber
包含该证书的序列号。

Certificate
包含整个证书内容的二进制流,使用ASN.1格式。
对于SubField,Subject和Issuer关键字可以具有如下的子域后缀:(比如:SubjectOU或IssuerL)

C
起源国家。

O
公司或组织名称。

OU
组织单元。

CN
用户的常规名称。

L
局部。

S
州(或省)。

T
个人或公司的标题。

GN
给定名称。

I
初始。
当文件cervbs.inc(VBScript使用)或cerjavas.inc(Jscript使用)通过使用#INCLUDE导向包含在你的Active Server Page里时,下面两个标志可以使用:

ceCertPresent
指明客户证书是否存在,其值为TRUE或FALSE。

ceUnrecongnizedIssure
指明在该链表中的最后的证书的发行者是否未知,其值为TRUE或FALSE。
Request.Cookies(Cookie[(key).Attribute])

Cookie的集合。允许获得浏览器的Cookie。Cookie指明返回那一个Cookie。Key用于从Cookie字典中返回具有某一关键字的Cookie值。对于Attribute,你能使用属性HasKeys来确定某一Cookie是否具有子关键字。HasKeys的值为TRUE或FALSE。

Request.Form(Parameter)[(Index).Count]

填写在HTML的表单中所有的数据的集合。Parameter是在HTML表单中某一元素的名称。当某一参数具有不止一个值(比如,当在<SELECT>中使用MULTIPLE属性时)时,使用Index。当某一参数具有多值时,Count指明多值个数。

Request.QueryString(Varible)[(Index).Count]

查询字符串的所有值的集合。Varible是在查询字符串某一变量的名称。当某一变量具有多于一个值时,使用Index。当某一参数具有多值时,Count指明值的个数。

Request.ServerVaribles(Server Environment Variable)

环境变量的集合。允许读取HTTP头。你可以通过使用HTTP_前缀来读取任何头信息。比如,HTTP_USER_AGENT接受客户代理HTTP头(浏览器类型)。除此外,你可以使用下表所示的变量获得任何环境信息。

ALL_HTTP
客户端发送的所有HTTP标头,他的结果都有前缀HTTP_。

ALL_RAW
客户端发送的所有HTTP标头,其结果和客户端发送时一样,没有前缀HTTP_

APPL_MD_PATH
应用程序的元数据库路径。

APPL_PHYSICAL_PATH
与应用程序元数据库路径相应的物理路径。

AUTH_PASSWORD
当使用基本验证模式时,客户在密码对话框中输入的密码。

AUTH_TYPE
这是用户访问受保护的脚本时,服务器用于检验用户的验证方法。

AUTH_USER
代验证的用户名。

CERT_COOKIE
唯一的客户证书ID号。

CERT_FLAG
客户证书标志,如有客户端证书,则bit0为0。如果客户端证书验证无效,bit1被设置为1。

CERT_ISSUER
用户证书中的发行者字段。

CERT_KEYSIZE
安全套接字层连接关键字的位数,如128。

CERT_SECRETKEYSIZE
服务器验证私人关键字的位数。如1024。

CERT_SERIALNUMBER
客户证书的序列号字段。

CERT_SERVER_ISSUER
服务器证书的发行者字段

CERT_SERVER_SUBJECT
服务器证书的主题字段。

CERT_SUBJECT
客户端证书的主题字段。

CONTENT_LENGTH
客户端发出内容的长度。 Read the rest of this entry

asp内置对象 session 详解

可以使用 Session 对象存储特定用户会话所需的信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。

Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在 Session 对象中。有关使用 Session 对象的详细信息,请参阅"ASP 应用程序"部分的"管理会话"。

注意 会话状态仅在支持 cookie 的浏览器中保留。

语法
Session.collection|property|method

集合
Contents 包含已用脚本命令添加到会话中的项目。
StaticObjects 包含通过 <OBJECT> 标记创建的并给定了会话作用域的对象。
属性
CodePage 将用于符号映射的代码页。
LCID 现场标识。
SessionID 返回用户的会话验证。
Timeout 应用程序会话状态的超时时限,以分钟为单位。
方法
Abandon 该方法破坏 Session 对象并释放其资源。
事件
global.asa 文件中声明下列事件的脚本。

Session_OnEnd
Session_OnStart
有关以上事件及 global.asa 文件的详细信息, 请参阅 Global.asa 参考.

注释
您可以在 Session 对象中存储值。存储在 Session 对象中的信息在会话及会话作用域内有效。下列脚本演示两种类型的变量的存储方式。

<%
Session("username") = "Janine"
Session("age") = 24
%> Read the rest of this entry

在 ASP 的内建对象中除了用于发送、接收和处理数据的对象外,还有一些非常实用的代表 Active Server 应用程序和单个用户信息的对象。
   让我们先来看看 Application 对象。在同一虚拟目录及其子目录下的所有 .asp 文件构成了 ASP 应用程序。我们非但可以使用 Application 对象,在给定的应用程序的所有用户之间共享信息,并在服务器运行期间持久的保存数据。而且,Application 对象还有控制访问应用层数据的方法和可用于在应用程序启动和停止时触发过程的事件。
   下面就让我们一起来学习 Application 对象。   一、属性

   虽然 Application 对象没有内置的属性,但我们可以使用以下句法设置用户定义的属性也可称为集合。

   Application(" 属性 / 集合名称 ")= 值

   我们可以使用如下脚本声明并建立 Application 对象的属性。
< %
Application("MyVar") = "Hello"
Set Application("MyObj") = Server.CreateObject("MyComponent")
%>

 

   一旦我们分配了 Application 对象的属性,它就会持久地存在,直到关闭 WEB 服务器服务使得 Application 停止。由于存储在 Application 对象中的数值可以被应用程序的所有用户读取,所以 Application 对象的属性特别适合在应用程序的用户之间传递信息。
   二、方法

   Application 对象有两个方法,它们都是用于处理多个用户对存储在 Application 中的数据进行写入的问题

   1、Lock 方法禁止其他客户修改 Application 对象的属性。

   Lock 方法阻止其他客户修改存储在 Application 对象中的变量,以确保在同一时刻仅有一个客户可修改和存取 Application 变量。如果用户没有明确调用 Unlock 方法,则服务器将在 .asp 文件结束或超时后即解除对 Application 对象的锁定。

   让我们来看看下面这段用 Application 来记录页面访问次数的程序 :
< %
Dim NumVisitsNumVisits=0
Application.LockApplication("NumVisits") = Application("NumVisits") + 1
Application.Unlock
%>
欢迎光临本网页,你是本页的第 < %= Application("NumVisits") %> 位访客 !
   将以上脚本保存在你的 .asp 文件中,就轻而易举地给你的页面添加了一个计数器。

   2、和 Lock 方法相反,Unlock 方法允许其他客户修改 Application 对象的属性。

   在上面的例子中,上述例子中,Unlock 方法解除对象的锁定,使得下一个客户端能够增加 NumVisits 的值。

   三、事件

   1、Application_OnStart

   Application_OnStart 事件在首次创建新的会话 ( 即 Session_OnStart 事件 ) 之前发生。当 WEB 服务器启动并允许对应用程序所包含的文件进行请求时就触发 Application_OnStart 事件。Application_OnStart 事件的处理过程必须写在 Global.asa 文件之中。

   Application_OnStart 事件的语法如下 :
< SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server>
Sub Application_OnStart. . .
End Sub
< /SCRIPT>
   2、Application_OnEnd

   Application_OnEnd 事件在应用程序退出时于 Session_OnEnd 事件之后发生,Application_OnEnd 事件的处理过程也必须写在 Global.asa 文件之中。

   下面让我们来看看在使用 Application 对象时必须注意的一些事项。

   不能在 Application 对象中存储 ASP 内建对象。例如,下面的每一行都返回一个错误。
< %
Set Application("var1")=Session
Set Application("var2")=Request
Set Application("var3")=Response
Set Application("var4")=Server
Set Application("var5")=Application
Set Application("var6")=ObjectContext
%>
   若您将一个数组存储在 Application 对象中,请不要直接更改存储在数组中的元素。例如,下列的脚本无法运行。
< % Application("StoredArray")(3) = "new value" %> Read the rest of this entry

ASP内置函数

1.函数array() 
功能:创建一个数组变量 
格式:array(list) 
参数:list 为数组变量中的每个数值列,中间用逗号间隔 
例子: 
<% i = array ("1","2","3") %> 
结果: i 被赋予为数组 2.函数Cint() 
功能:将一表达式/其它类型的变量转换成整数类型(int) 
格式:Cint(expression) 
参数:expression 是任何有效的表达式/其它类型的变量 
例子: 
<% 
f = "234" 
response.write cINT(f) + 2 
%> 
结果: 236 
函数Cint()将字符"234"转换 成整数234.如果表达式为空, 或者无效时,返回值为0; 

3.函数:Creatobject() 
功能:创建及返回一个ActiveX对象. 
格式:Creatobject(obname) 
参数bname 是对象的名称 
例子: 
<% 
Set con = Server.CreateObject("ADODB.Connection") 
%> 
结果: 

4.函数Cstr() 
功能:将一表达式/其它类型的变量转换成字符类型(string) 
格式:Cstr(expression) 
参数:expression是任何有效的表达式/其它类型的变量 
例子: 
<% 
s = 3 + 2 
response.write "The result is:" & cStr(s) 
%> 
结果:函数Cstr()将整数 5 转换 成字符"5". 

5.函数Date() 
功能:返回当前系统(server端)的日期 
格式: Date() 
参数:无 
例子<% date () %> 
结果:05/10/00 

6.函数Dateadd() 
功能:计算某个指定的时间和 
格式: dateadd(timeinterval,number,date) 
参数:timeinterval是时间单位(月,日..); number是时间间隔值,date是时间始点. 
例子: 
<% 
currentDate = #8/4/99# 
newDate = DateAdd("m",3,currentDate) 
response.write newDate 
%> <% 
currentDate = #12:34:45 PM# 
newDate = DateAdd("h",3,currentDate) 
response.write newDate 
%> 
结果: 
11/4/99 
3:34:45 PM 
其中 
"m" = "month"; 
"d" = "day"; 
如果是currentDate 格式,则, 
"h" = "hour"; 
"s" = "second"; 

7.函数Datediff() 
功能:计算某量个指定的时间差 
格式: datediff(timeinterval,date1,date2[,firstdayofweek[,firstdayofyear]]) 
参数: timeinterval 是时间单位; date1,date2是有效的日期表达式,firstdayofweek,firstdayofyear 是任意选项. 
例子: 
<% 
fromDate = #8/4/99# 
toDate = #1/1/2000# 
response.write "There are " & _ 
DateDiff("d",fromDate,toDate) & _ 
" days to millenium from 8/4/99." 
%> 
结果:There are 150 days to millenium from 8/4/99. 

8.函数day() 
功能:返回一个整数值,对应于某月的某日 
格式: day(date) 
参数: date是一个有效的日期表达式; 
例子<% =date(#8/4/99#) %> 
结果:4 

9.函数formatcurrency() 
功能:转换成货币格式 
格式: formatcurrency(expression [,digit[,leadingdigit[,paren[,groupdigit]]]]) 
参数: expression 是有效的数字表达式;digit表示小数点后的位数;leadingdigit,paren,groupdigit是任意选项. 
例子<%=FormatCurrency(34.3456)%> 
结果34.35 

10.函数Formatdatetime() 
功能:格式化日期表达式/变量 
格式: formatdatetime(date[,nameformat]) 
参数: date为有效的日期表达式/变量;nameformat是指定的日期格式常量名称. 
例子<% =formatdatetime("08/04/99",vblongdate) %> 
结果:Wednesday,August 04,1999 
说明: 
--------------------------------------------------------------------------------
描述
返回表达式,此表达式已被格式化为日期或时间。 
语法
FormatDateTime(Date[, NamedFormat])
FormatDateTime 函数的语法有以下参数:

参数 描述 
Date 必选项。要被格式化的日期表达式。 
NamedFormat 可选项。指示所使用的日期/时间格式的数值,如果省略,则使用 vbGeneralDate。 

设置
NamedFormat 参数可以有以下值:
常数 值 描述 
vbGeneralDate 0 显示日期和/或时间。如果有日期部分,则将该部分显示为短日期格式。如果有时间部分,则将该部分显示为长时间格式。如果都存在,则显示所有部分。 
vbLongDate 1 使用计算机区域设置中指定的长日期格式显示日期。 
vbShortDate 2 使用计算机区域设置中指定的短日期格式显示日期。 
vbLongTime 3 使用计算机区域设置中指定的时间格式显示时间。 
vbShortTime 4 使用 24 小时格式 (hh:mm) 显示时间。 

说明
下面例子利用 FormatDateTime 函数把表达式格式化为长日期型并且把它赋给 MyDateTime: 
Function GetCurrentDate 
"FormatDateTime 把日期型格式化为长日期型。
GetCurrentDate = FormatDateTime(Date, 1) 
End Function
--------------------------------------------------------------------------------
[Ctrl+A 全部选择 提示:您可先修改部分代码,再按运行]

11.函数Isnumeric() 
功能:返回一个布尔值,判断变量是否为数字变量,或者是可以转换成数字的其它变量. 
格式:isnumeric(expression) 
参数:expression 是任意的变量. 
例子: 
<% 
i="234" 
response.write isnumeric(i) 
%> 
结果: true. 

12.函数Isobject() 
功能:返回一个布尔值,判断变量是否为对象的变量, 
格式: isobject(expression) 
参数: expression 是任意的变量. 
例子: 
<% 
set con =server.creatobject("adodb.connection") 
response.write isobject(con) 
%> 
结果: true 

13.函数:Lbound() 
功能:返回一个数组的下界. 
格式:Lbound(arrayname[,dimension]) 
参数:arrayname 是数组变量,dimension 是任意项 
例子: 
<% 
i = array("1","2","3") 
response.write lbound(i) 
%> 
结果:0

14.函数Lcase() 
功能:将一字符类型变量的字符全部变换小写字符. 
格式:Lcase(string) 
参数:string是字符串变量 
例子: 
<% 
str="THIS is Lcase!" 
response.write Lcase(str) 
%> 
结果:this is lcase! 

15.函数left() 
功能:截取一个字符串的前部分; 
格式:left(string,length) 
参数:string字符串,length截取的长度. 
例子: <% =left("this is a test!",6) %> 
结果:this i 

16.函数len() 
功能:返回字符串长度或者变量的字节长度 
格式:len(string *varname) 
参数:string字符串;varname任意的变量名称 
例子: 
<% 
strtest="this is a test!" 
response.write len(strtest) 
%> 
结果:15  Read the rest of this entry