(转载:www.idcew.com) ASP教程7,怎么学ASP
什么是ASP?asp基础教程 在自己电脑上运行ASP ASP基础教程二 ASP教程三 ASP页面输出到浏览器 ASP源代码可以包含程序和功能 ASP教程4 什么是Application应用程序对象 ASP教程五 ASP教程六
在Global.asa文件 在Global.asa文件是一个可选文件,可以包含对象,变量,而且可以通过ASP应用程序中的每个页面访问的方法声明。
所有有效的浏览器脚本(JavaScript中,VBScript中,JScript中,PerlScript等)可以用在Global.asa中。
在Global.asa文件只能包含以下内容:
应用程序事件 会话事件 <OBJECT>声明 TypeLibrary声明 #include指令 注:在Global.asa文件必须存放在ASP应用程序的根目录,每个应用程序只能有一个Global.asa文件。
活动在Global.asa 在Global.asa中你可以告诉应用程序和会话对象做什么时,应用/会话开始和该怎么做时,应用/会话结束。此代码被放置在事件处理程序。在Global.asa文件可以包含四种类型的事件:
的Application_OnStart - 发生时,第一个用户调用在ASP应用程序的第一页。此事件发生后,Web服务器重新启动后或Global.asa文件编辑。而“的Session_OnStart”事件发生后立即此事件。 的Session_OnStart - 此事件发生每当一个新的用户请求他或她在ASP应用程序的第一页。
一个Session_OnEnd - 此事件发生在用户每次结束一个会话。一个用户会话结束后,页面还没有被指定的时间(默认为20分钟)的用户要求。
Application_OnEnd - 此事件发生后,最后一个用户已经结束了会议。通常情况下,此事件发生在一个Web服务器停止。这个过程用于清理设置的应用程序停止后,如删除记录或信息写入文本文件。
Global.asa文件可能看起来像这样:
<script language="vbscript" runat="server">
sub Application_OnStart 'some code end sub
sub Application_OnEnd 'some code end sub
sub Session_OnStart 'some code end sub
sub Session_OnEnd 'some code end sub
</script>
注:因为我们不能使用ASP脚本分隔符(<%和%>)插入在Global.asa文件中的脚本,我们把里面的HTML <script>元素子程序。
<OBJECT>声明 它可以通过使用<OBJECT>标签与会话或Global.asa中的应用范围对象。
注:<OBJECT>标签应外<script>标签!
语法
<object runat="server" scope="scope" id="id" {progid="progID"|classid="classID"}> .... </object>
参数说明 范围设置的对象范围(会话或应用程序) id指定为对象的唯一ID 的ProgID与类标识相关联的ID。对于ProgID的格式为[供应商]组件[版本] 无论ProgID还是ClassID必须指定。 的ClassID指定为一个COM类对象的唯一标识。 无论ProgID还是ClassID必须指定。 举例 第一个示例创建使用ProgID参数的一个名为“MyAd”会话范围的对象
<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator"> </object>
第二个例子创建了一个名为使用的ClassID参数“MyConnection的”适用范围对象:
<object runat="server" scope="application" id="MyConnection" classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21"> </object>
在Global.asa文件中声明的对象可以被任何应用程序中的脚本:
GLOBAL.ASA:
<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator"> </object>
You could reference the object "MyAd" from any page in the ASP application:
SOME .ASP FILE:
<%=MyAd.GetAdvertisement("/banners/adrot.txt")%>
TypeLibrary声明 阿TypeLibrary是一个DLL文件对应的COM对象的内容的容器。通过包括调用TypeLibrary在Global.asa文件中,对COM对象的常量可以被访问,和错误的,可以更好的ASP代码报道。如果您的Web应用程序的COM类型库中已宣布的数据类型的对象依赖,你可以声明Global.asa中的类型库。
语法
<!--METADATA TYPE="TypeLib" file="filename" uuid="id" version="number" lcid="localeid" -->
参数说明 文件中指定的类型库的绝对路径。 无论是文件的参数或参数是必需的UUID UUID指定的类型库的唯一标识符。 无论是文件的参数或参数是必需的UUID 版本可选。用于选择版本。如果请求的版本没有找到,则使用最新版本 LCID可选。该区域设置标识符必须为类型库使用
错误值 服务器可以返回以下错误信息之一:
错误代码说明 ASP 0222无效的类型库规范 ASP 0223类型库未找到 ASP 0224类型库不能加载 ASP 0225类型库不能被包装
注:元数据标签可以出现在Global.asa文件中的任何地方(包括内部和外部<SCRIPT>标签)。不过,建议METADATA标记附近的Global.asa文件的顶部出现。
限制 限制什么可以包括在Global.asa文件:
你可以不显示在Global.asa文件中写入文本。此文件无法显示的信息 您只能使用在Application_OnStart和Application_OnEnd子程序服务器和应用程序对象。在Session_OnEnd副程式,您可以使用服务器,应用程序和会话对象。在Session_OnStart子程序可以使用任何内置对象 如何使用子程序 Global.asa中常用来初始化变量。
下面的例子显示了如何检测的准确时间访问者在网站上首次到达。时间存储在一个名为“开始”,以及“开始”变量的值可以从任何应用程序中的ASP页面访问会话变量:
<script language="vbscript" runat="server"> sub Session_OnStart Session("started")=now() end sub </script>
Global.asa中也可以用来控制页面访问。
下面的例子显示了如何每一个新的访问者重定向到另一页在这种情况下,所谓的“newpage.asp”页面:
<script language="vbscript" runat="server"> sub Session_OnStart Response.Redirect("newpage.asp") end sub </script>
你还可以在Global.asa文件中包含的功能。
在下面的例子发生子程序的Application_OnStart当Web服务器启动。这时的Application_OnStart子例程调用名为“的GetCustomers”另一个子程序。而“的GetCustomers”子程序打开一个数据库和检索的“客户”表中一个记录集。该记录集被分配到一个数组,它可以从任何ASP页面访问没有查询数据库: <script language="vbscript" runat="server">
sub Application_OnStart getcustomers end sub
sub getcustomers set conn=Server.CreateObject("ADODB.Connection") conn.Provider="Microsoft.Jet.OLEDB.4.0" conn.Open "c:/webdata/northwind.mdb" set rs=conn.execute("select name from customers") Application("customers")=rs.GetRows rs.Close conn.Close end sub
</script> Global.asa中示例 在这个例子中,我们将创建一个Global.asa文件算数当前访客人数。
该应用程序的Application_OnStart设置变量“游客”为0时,服务器启动 的Session_OnStart子程序的变量加一“游客”每当一个新的访问者到达 子程序的Session_OnEnd减去从“游客”每本子程序触发一次 在Global.asa文件: <script language="vbscript" runat="server">
Sub Application_OnStart Application("visitors")=0 End Sub
Sub Session_OnStart Application.Lock Application("visitors")=Application("visitors")+1 Application.UnLock End Sub
Sub Session_OnEnd Application.Lock Application("visitors")=Application("visitors")-1 Application.UnLock End Sub
</script>
要显示当前游客在ASP文件编号:
<html> <head> </head> <body> <p>There are <%response.write(Application("visitors"))%> online now!</p> </body> </html> (转载:www.idcew.com) |