Asp中的Global.asa文件是一个全局的文件,主要作用是定义了应用程序在启动时运行的一些事件,它可以用来设置某些资源、对象和应用程序级别变量。里面主要有4个事件可用:
-
Application_OnStart : 当应用程序启动时,该事件会在Global.asa文件中执行一次,也只会执行一次。我们可以在该事件中定义应用程序级别变量、连接数据库、创建Session、日志记录等。
-
Application_OnEnd : 当应用程序关闭时,该事件会在Global.asa文件中执行一次,也只会执行一次。我们可以在该事件中关闭打开的文件、销毁应用程序级别的对象、断开数据库链接等。
-
Session_OnStart : 每当一个用户会话(Session)启动时,该事件会在Global.asa文件中执行一次。我们可以在该事件中定义会话级别变量、连接数据库、记录日志等。
-
Session_OnEnd : 每当一个用户会话(Session)结束时,该事件会在Global.asa文件中执行一次。我们可以在该事件中释放服务器资源、断开数据库链接等。
下面以两个简单示例说明Global.asa文件的用法:
- 跨页面之间的数据传递
Global.asa文件中,可以用Application对象存储数据,然后在不同的页面中获取数据,实现跨页面之间的数据传递。例如:
<%
' Global.asa文件中的Application_OnStart事件
Sub Application_OnStart
Application("myData") = "Hello World"
End Sub
%>
<!-- index.asp页面 -->
<%
' 获取全局数据
Response.Write Application("myData")
%>
<!-- about.asp页面 -->
<%
' 获取全局数据
Response.Write Application("myData")
%>
- 用户登录之后,记录登录日志
Global.asa文件中的Session_OnStart事件可以用来记录用户登录信息,例如:
<%
' Global.asa文件中的Session_OnStart事件
Sub Session_OnStart
' 记录登录信息
Application.Lock
Application("onlineUsers") = Application("onlineUsers") + 1
Application.UnLock
WriteLog "用户 " & Request.ServerVariables("REMOTE_ADDR") & " 登录了"
End Sub
' 记录登录信息
Sub WriteLog(logContent)
Dim logFile, fileContent
logFile = Server.MapPath("login.log")
fileContent = logContent & ",登录时间:" & Now & vbCrLf
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set stream = fso.OpenTextFile(logFile, 8, True)
stream.Write fileContent
stream.Close
Set fso = Nothing
End Sub
%>
以上是两个简单的Global.asa示例,通过Global.asa文件中的事件和Application、Session对象可以实现很多功能。需要注意的是,Global.asa文件必须存放在应用程序的根目录中,文件名必须为Global.asa。同时,修改Global.asa文件后,需要重启IIS才能生效。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ASP的Global.asa文件技巧用法 - Python技术站