session的生命周期是多少
怎么设定session的生命周期呢?
怎么设定关于session的一切相关资料呢?
最好给段完整的代码。
问题点数:60、回复次数:13Top
1 楼cmsoft(韦小宝是我的老乡)(草根在路上)回复于 2002-05-31 09:01:33 得分 40
默认值为20分钟Top
2 楼cmsoft(韦小宝是我的老乡)(草根在路上)回复于 2002-05-31 09:02:34 得分 0
session.timeout=200
200的单位是分钟Top
3 楼freezwy(网络自由人)回复于 2002-05-31 09:05:42 得分 20
在IIS里面的“主目录”--》配置里面可以设置站点的SESSION生命周期,同时也可以在GLOBAL.ASA中设置。session.timeout=20Top
4 楼ssm1226(雨中人(虚心学习))回复于 2002-05-31 09:09:31 得分 0
3.3.2 ASP的Session对象成员概述
本节概述Session对象的所有成员。
1. Session对象的集合
Session对象提供了两个集合,可以用来访问存储于用户的局部会话空间中的变量和对象。这些集合及说明如表3-6所示:
表3-6 Session对象的集合及说明
集 合
说 明
Contents
存储于这个特定Session对象中的所有变量和其值的一个集合,并且这些变量和值没有使用<OBJECT>元素进行定义。包括Variant数组和Variant类型对象实例的引用
StaticObjects
通过使用<OBJECT>元素定义的、存储于这个Session对象中的所有变量的一个集合
2. Session对象的特性
Session对象提供了四个属性。这些属性及说明如表3-7所示:
表3-7 Session对象的属性及说明
属 性
说 明
CodePage
读/写。整型。定义用于在浏览器中显示页内容的代码页(Code Page)。代码页是字符集的数字值,不同的语言和场所可能使用不同的代码页。例如,ANSI代码页1252用于美国英语和大多数欧洲语言。代码页932用于日文字
LCID
读/写。整型。定义发送给浏览器的页面地区标识(LCID)。LCID是唯一地标识地区的一个国际标准缩写,例如,2057定义当前地区的货币符号是’£’。LCID也可用于FormatCurrency等语句中,只要其中有一个可选的LCID参数。LCID也可在ASP处理指令<%…%>中设置,并优先于会话的LCID属性中的设置。本章后面提供一个ASP处理指令的列表
SessionID
只读。长整型。返回这个会话的会话标识符,创建会话时,该标识符由服务器产生。只在父Application对象的生存期内是唯一的,因此当一个新的应用程序启动时可重新使用
Timeout
读/写。整型。为这个会话定义以分钟为单位的超时周期。如果用户在超时周期内没有进行刷新或请求一个网页,该会话结束。在各网页中根据需要可以修改。缺省值是10min。在使用率高的站点上该时间应更短
3. Session对象的方法
Session对象允许从用户级的会话空间删除指定值,并根据需要终止会话。Seesion对象的方法及说明如表3-8所示:
表3-8 Session对象的方法及说明
方 法
说 明
Contents.Remove(“variable_name”)
从Session.Content集合中删除一个名为variable_name的变量
Contents.RemoveAll()
从Session.Content集合中删除所有变量
Abandon()
当网页的执行完成时,结束当前用户会话并撤消当前Session对象。但即使在调用该方法以后,仍可访问该页中的当前会话的变量。当用户请求下一个页面时将启动一个新的会话,并建立一个新的Session对象(如果存在的话)
注意,在运行期间不能从Session.StaticObjects集合中删除变量。
4. Session对象的事件
Session对象提供了在启动和结束时触发的两个事件,如表3-9所示:
表3-9 Session对象的事件及说明
事 件
说 明
OnStart
当ASP用户会话启动时触发,在用户请求的网页执行之前。用于初始化变量、创建对象或运行其他代码。
OnEnd
当ASP用户会话结束时触发。从用户对应用程序的最后一个页面请求开始,如果已经超出预定的会话超时周期则触发该事件。当会话结束时,取消该会话中的所有变量。在代码中使用Abandon方法结束ASP用户会话时,也触发该事件
Top
5 楼good02xaut(good)回复于 2002-05-31 09:24:59 得分 0
在global.asa中,sub session_OnStart session.timeout=10 end sub 就可以把 sesion的生命周期该为10分钟了Top
6 楼beyond_xiruo(CorruptionException)回复于 2002-05-31 09:27:55 得分 0
default 20minTop
7 楼fatality1977(等老鼠的懒猫)回复于 2002-05-31 09:45:40 得分 0
如果在global.asa中直接使用
session.timeout=10
效果和
sub session_OnStart session.timeout=10 end sub
一样吗?
Top
8 楼yzx_zyj(gg)回复于 2002-05-31 09:50:57 得分 0
20分钟
可以改变Top
9 楼xxjmz_78(阿甘)回复于 2002-05-31 10:05:11 得分 0
如果用户在指定时间内没有请求或刷新应用程序中的任何页,会话将自动结束。这段时间的默认值是 20 分钟。可以通过在 Internet 服务管理器中设置“应用程序选项”属性页中的“会话超时”属性改变应用程序的默认超时限制设置。应依据您的 Web 应用程序的要求和服务器的内存空间来设置此值。例如,如果您希望浏览您的 Web 应用程序的用户在每一页仅停留几分钟,就应该缩短会话的默认超时值。过长的会话超时值将导致打开的会话过多而耗尽您的服务器的内存资源。对于一个特定的会话,如果您想设置一个小于默认超时值的超时值,可以设置 Session 对象的 Timeout 属性。例如,下面这段脚本将超时值设置为 5 分钟。
< % Session.Timeout = 5 %>
当然你也可以设置一个大于默认设置的超时值,Session.Timeout 属性决定超时值。你还可以通过 Session 对象的 Abandon 方法显式结束一个会话。例如,在表格中提供一个“退出”按钮,将按钮的 ACTION 参数设置为包含下列命令的 .asp 文件的 URL。
< % Session.Abandon %>
Top
10 楼xxjmz_78(阿甘)回复于 2002-05-31 10:07:02 得分 0
与 Application 对象具有相近作用的另一个非常实用的 ASP 内建对象就是 Session。我们可以使用 Session 对象存储特定的用户会话所需的信息。当用户在应用程序的页之间跳转时,存储在 Session 对象中的变量不会清除,而用户在应用程序中访问页面时,这些变量始终存在。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。
通过向客户程序发送唯一的 Cookie 可以管理服务器上的 Session 对象。当用户第一次请求 ASP 应用程序中的某个页面时,ASP 要检查 HTTP 头信息,查看是否有在报文中有名为 ASPSESSIONID 的 Cookie 发送过来,如果有,则服务器会启动新的会话,并为该会话生成一个全局唯一的值,在把这个值作为新 ASPSESSIONID Cookie 的值发送给客户端,正是使用这种 Cookie,可以访问存储在服务器上的属于客户程序的信息。Session 对象最常见的作用就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在 Session 对象中。另外其还经常被用在鉴别客户身份的程序中。要注意的是,会话状态仅在支持 cookie 的浏览器中保留,如果客户关闭了 Cookie 选项,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 方法启动网页。程序如下 :
< SCRIPT RUNAT=Server Language=VBScript>
Sub Session_OnStart
startPage = "/MyApp/StartHere.asp"
currentPage = Request.ServerVariables("SCRIPT_NAME")
if strcomp(currentPage,startPage,1) then
Response.Redirect(startPage)
end if
End Sub
< /SCRIPT>
上述程序只能在支持 cookie 的浏览器中运行。因为不支持 cookie 的浏览器不能返回 SessionID cookie,所以,每当用户请求 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 %>
Top
11 楼richard_ouyang(爱象刀上的苹果)回复于 2002-05-31 10:10:02 得分 0
可以自己随时更改
一句话:
< % Session.Timeout = 30 %>
那么就有30分钟时间,对于联众之类的站点,Session都是很高的。
因为如果客户不向服务器提出刷新请求,Sission的时间是不会更新的Top
12 楼julyclyde(Java初学(大学不教只好自己学))回复于 2002-05-31 13:59:39 得分 0
联众的是ASP吗?Top
13 楼lbqlbq(流星)回复于 2002-05-31 15:39:34 得分 0
默认20分钟,可以自己设置session的过期时间,例如:设置100分钟过期
<%session.timeout=100%>
Top




