ASP问题:是否可以将会话变量作为参数传递给Global.asa文件中的函数?

时间:2012-04-20 17:44:58

标签: session variables asp-classic global.asa

我打算用JavaScript编写Global.asa文件。当会话或应用程序结束时,我需要在数据库中进行更改。具体来说,我需要分解一个字符串并在Global.asa函数的查询中使用它。那部分根本不会让我感到困惑。关于将会话变量作为参数传递的部分。我想我的Global.asa看起来像这样:

(假设两个变量“variable1”和“variable2”是会话变量)

<script language="JScript" runat="Server">
function Application_OnStart() {
}

function Application_OnEnd(variable1) {
}

function Session_OnStart() {
}

function Session_OnEnd(variable2) {
}
</script>

所以,我不确定我问的是否可行。如果是这样,任何提示?请记住,我在ASP中工作,而不是ASP.NET。另外,我对使用服务器端代码有点新意,所以请原谅我的无知。

2 个答案:

答案 0 :(得分:0)

不,你的建议是不可行的。

global.asa文件中的函数是事件的回调。调用 get 函数,所有函数都没有参数。

您可以使用Session对象来执行您想要的操作。

在您的代码中,您可以设置如下的会话变量:

session("userid") = 856

在您的global.asa中,您可以使用:

variable1 = session("userid")

答案 1 :(得分:-1)

您是否考虑过为您的Global.asa使用VBScript?我从来没有在javascript中编写Global.asa,但你可以在VB中编码并使用Session或Application级别变量:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

Sub Application_OnStart()
    'initialize application level variables
    Application("ConnectionString") = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.mappath("access_db/mydb.mdb")
End Sub

Sub Application_OnEnd()
    Application("ConnectionString") = ""
End Sub

Sub Session_OnStart()
    'initialize session level variables
    Session("UserIP") = Request.ServerVariables("REMOTE_ADDR")
End Sub

Sub Session_OnEnd()
    Session("UserIP") = ""
End Sub

不确定是否可以将变量传递到预定义函数中,但您可以在网站的任何位置使用Session或Application变量,包括在这些函数中。