推荐:解读如何正确使用ASP中的Session对象变量使用ASP的人都知道,Session对象存储特定的用户会话所需的信息,当用户在应用程序的页之间跳转时,存储在Session对象中的变量不会清除,而用户在应用程序中访问页面时,这些变量始终存在。它可以减少程序的复杂性提高编程效率,但它同样存在许多缺陷,本文对
一、属性1、SessionID
SessionID属性返回用户的会话标识。在创建会话时,服务器会为每一个会话生成一个单独的标识。会话标识以长整形数据类型返回。在很多情况下SessionID可以用于WEB页面注册统计。
2、TimeOut
Timeout属性以分钟为单位为该应用程序的Session对象指定超时时限。如果用户在该超时时限之内不刷新或请求网页,则该会话将终止。
二、方法
Session对象仅有一个方法,就是Abandon,Abandon方法删除所有存储在Session对象中的对象并释放这些对象的源。如果您未明确地调用Abandon方法,一旦会话超时,服务器将删除这些对象。当服务器处理完当前页时,下面示例将释放会话状态。
<%Session.Abandon%>
三、事件
Session对象有两个事件可用于在Session对象启动和释放是运行过程。
1、Session_OnStart事件在服务器创建新会话时发生。服务器在执行请求的页之前先处理该脚本。Session_OnStart事件是设置会话期变量的最佳时机,因为在访问任何页之前都会先设置它们。
尽管在Session_OnStart事件包含Redirect或End方法调用的情况下Session对象仍会保持,然而服务器将停止处理Global.asa文件并触发Session_OnStart事件的文件中的脚本。
为了确保用户在打开某个特定的Web页时始终启动一个会话,就可以在Session_OnStart事件中调用Redirect方法。当用户进入应用程序时,服务器将为用户创建一个会话并处理Session_OnStart事件脚本。您可以将脚本包含在该事件中以便检查用户打开的页是不是启动页,如果不是,就指示用户调用Response.Redirect方法启动网页。程序如下:
<SCRIPTRUNAT=ServerLanguage=VBScript>
SubSession_OnStart
startPage=/MyApp/StartHere.asp
currentPage=Request.ServerVariables(SCRIPT_NAME)
ifstrcomp(currentPage,startPage,1)then
Response.Redirect(startPage)
endif
EndSub
</SCRIPT>
上述程序只能在支持cookie的浏览器中运行。因为不支持cookie的浏览器不能返回SessionIDcookie,所以,每当用户请求Web页时,服务器都会创建一个新会话。这样,对于每个请求服务器都将处理Session_OnStart脚本并将用户重定向到启动页中。
2、Session_OnEnd事件在会话被放弃或超时发生。
关于使用Session对象需要注意的事项Application对象相近,请参照前文。
会话可以通过以下三种方式启动:
1、一个新用户请求访问一个URL,该URL标识了某个应用程序中的.asp文件,并且该应用程序的Global.asa文件包含Session_OnStart过程。
2、用户在Session对象中存储了一个值。
3、用户请求了一个应用程序的.asp文件,并且该应用程序的Global.asa文件使用<OBJECT>标签创建带有会话作用域的对象的实例。
如果用户在指定时间内没有请求或刷新应用程序中的任何页,会话将自动结束。这段时间的默认值是20分钟。可以通过在Internet服务管理器中设置应用程序选项属性页中的会话超时属性改变应用程序的默认超时限制设置。应依据您的Web应用程序的要求和服务器的内存空间来设置此值。例如,如果您希望浏览您的Web应用程序的用户在每一页仅停留几分钟,就应该缩短会话的默认超时值。过长的会话超时值将导致打开的会话过多而耗尽您的服务器的内存资源。对于一个特定的会话,如果您想设置一个小于默认超时值的超时值,可以设置Session对象的Timeout属性。例如,下面这段脚本将超时值设置为5分钟。
<%Session.Timeout=5%>
当然你也可以设置一个大于默认设置的超时值,Session.Timeout属性决定超时值。你还可以通过Session对象的Abandon方法显式结束一个会话。例如,在表格中提供一个退出按钮,将按钮的ACTION参数设置为包含下列命令的.asp文件的URL。
<%Session.Abandon%>
分享:ASP如何防止表单重复提交用户提交表单时经常会遇到一些意外情况,比如多次刷新页面、按了后退键等,如果不采取控制措施就会引起 表单重复提交的问题。 本文介绍的这种 防止方法, 主要由四个子程序组成,在较为简单的应用场合,你只要将这些代码放在包含文件中直接引用即可;对于那些