ASP内建对象Application 和 Session

作者&投稿:祁雪 (若有异议请与网页底部的电邮联系)
~
在上一篇中作者给大家详细介绍了 ASP 内建对象 Response 的使用方法,在这一篇中作者将继续给大家介绍另两个非常实用且重要的 ASP 的内建对象 Application 和 Session。
在 ASP 的内建对象中除了用于发送、接收和处理数据的对象外,还有一些非常实用的代表 Active Server 应用程序和单个用户信息的对象。
让我们先来看看 Application 对象。在同一虚拟目录及其子目录下的所有 .asp 文件构成了 ASP 应用程序。我们非但可以使用 Application 对象,在给定的应用程序的所有用户之间共享信息,并在服务器运行期间持久的保存数据。而且,Application 对象还有控制访问应用层数据的方法和可用于在应用程序启动和停止时触发过程的事件。
下面就让我们一起来学习 Application 对象。
一、属性
虽然 A pplication 对 象没有内置的属性,但我们可以使用以下句法设置用户定义的属性也可称为集合。
A pplication(" 属性 / 集合名称 ")= 值
我们可以使用如下脚本声明并建立 Application 对象的属性。
% Application("MyVar") = "Hello" Set Application("MyObj") = Server.CreateObject("MyComponent") %
一旦我们分配了 A pplication 对 象的属性,它就会持久地存在,直到关闭 W EB 服 务器服务使得 A pplication 停 止。由于存储在 A pplication 对 象中的数值可以被应用程序的所有用户读取,所以 A pplication 对 象的属性特别适合在应用程序的用户之间传递信息。
二、方法
Application 对象有两个方法,它们都是用于处理多个用户对存储在 Application 中的数据进行写入的问题
1 、 L ock 方 法禁止其他客户修改 A pplication 对 象的属性。
Lock 方法阻止其他客户修改存储在 Application 对象中的变量,以确保在同一时刻仅有一个客户可修改和存取 Application 变量。如果用户没有明确调用 Unlock 方法,则服务器将在 .asp 文件结束或超时后即解除对 Application 对象的锁定。
让我们来看看下面这段用 A pplication 来 记录页面访问次数的程序 :
% Dim NumVisitsNumVisits=0 Application.LockApplication("NumVisits") = Application("NumVisits") + 1 Application.Unlock % 欢迎光临本网页,你是本页的第
%= Application("NumVisits") % 位访客 !
将以上脚本保存在你的 .asp 文件中,就轻而易举地给你的页面添加了一个计数器。
2、和 Lock 方法相反,Unlock 方法允许其他客户修改 Application 对象的属性。
在上面的例子中,上述例子中,Unlock 方法解除对象的锁定,使得下一个客户端能够增加 NumVisits 的值。
三、事件
1、Application_OnStart
A pplication_OnStart 事 件在首次创建新的会话 ( 即 S ession_OnStart 事 件 ) 之 前发生。当 W EB 服 务器启动并允许对应用程序所包含的文件进行请求时就触发 A pplication_OnStart 事 件。 A pplication_OnStart 事 件的处理过程必须写在 G lobal.asa 文 件之中。
Application_OnStart 事件的语法如下 :
SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server Sub Application_OnStart. . . End Sub
/SCRIPT
2、Application_OnEnd
Application_OnEnd 事件在应用程序退出时于 Session_OnEnd 事件之后发生,Application_OnEnd 事件的处理过程也必须写在 Global.asa 文件之中。
下面让我们来看看在使用 Application 对象时必须注意的一些事项。
不能在 A pplication 对 象中存储 A SP 内 建对象。例如,下面的每一行都返回一个错误。
% Set Application("var1")=Session Set Application("var2")=Request Set Application("var3")=Response Set Application("var4")=Server Set Application("var5")=Application Set Application("var6")=ObjectContext %
若您将一个数组存储在 Application 对象中,请不要直接更改存储在数组中的元素。例如,下列的脚本无法运行。
% Application("StoredArray")(3) = "new value" %
这是因为 A pplication 对 象是作为集合被实现的。数组元素 S toredArray(3) 未 获得新的赋值。而此值将包含在 A pplication 对 象集合中,并将覆盖此位置以前存储的任何信息。建议您在将数组存储在 A pplication 对 象中时,在检索或改变数组中的对象前获取数组的一个副本。在对数组操作时,您应再将数组全部存储在 A pplication 对 象中,这样您所做的任何改动将被存储下来。下列的脚本对此进行演示。 ---asp8a.asp---
% dim MyArray() Redim MyArray(5) MyArray(0)="hello" MyArray(1)="some other string" Application.Lock Application("StoredArray")=MyArray Application.Unlock Response.Redirect "asp8b.asp" % ---asp8b.asp---
% LocalArray=Application("StoredArray") LocalArray(1)=" there" Response.Write LocalArray(0)LocalArray(1) Application.Lock Application("StoredArray")=LocalArray Application.Unlock %
与 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 事件的文件中的脚本。
为了确保用户在打开某个特定的 W eb 页 时始终启动一个会话,就可以在 S ession_OnStart 事 件中调用 R edirect 方 法。当用户进入应用程序时,服务器将为用户创建一个会话并处理 S ession_OnStart 事 件脚本。您可以将脚本包含在该事件中以便检查用户打开的页是不是启动页,如果不是,就指示用户调用 R esponse.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 标签创建带有会话作用域的对象的实例。 如果用户在指定时间内没有请求或刷新应用程序中的任何页,会话将自动结束。这段时间的默认值是 2 0 分 钟。可以通过在 I nternet 服 务管理器中设置“应用程序选项”属性页中的“会话超时”属性改变应用程序的默认超时限制设置。应依据您的 W eb 应 用程序的要求和服务器的内存空间来设置此值。例如,如果您希望浏览您的 W eb 应 用程序的用户在每一页仅停留几分钟,就应该缩短会话的默认超时值。过长的会话超时值将导致打开的会话过多而耗尽您的服务器的内存资源。对于一个特定的会话,如果您想设置一个小于默认超时值的超时值,可以设置 S ession 对 象的 T imeout 属 性。例如,下面这段脚本将超时值设置为 5 分 钟。
% Session.Timeout = 5 %
当然你也可以设置一个大于默认设置的超时值,Session.Timeout 属性决定超时值。你还可以通过 Session 对象的 Abandon 方法显式结束一个会话。例如,在表格中提供一个“退出”按钮,将按钮的 ACTION 参数设置为包含下列命令的 .asp 文件的 URL。
% Session.Abandon %
今天,我们学习了两个在 WEB 页面特别是基于 WEB 的 BBS 或 Chat 上经常使用 ASP 内建对象,由于这两个对象在实际运用中很实用,因此在下一篇中作者将运用至此我们所学过的 4 个 ASP 内建对象,给大家演示一个完整的 ASP 应用程序,相信通过这个练习,能大大加深你对 ASP 应用程序的理解和掌握。敬请关注“动态网站设计十八般武艺 --ASP 篇 (9)”。



ASP内建对象Application 和 Session
与Application 对象具有相近作用的另一个非常实用的 ASP 内建对象就是 Session。我们可以使用 Session 对象存储特定的用户会话所需的信息。当用户在应用程序的页之间跳转时,存储在 Session 对象中的变量不会清除,而用户在应用程序中访问页面时,这些变量始终存在。当用户请求来自应用程序的 Web 页时,如果该用户还没有...

ASP内建对象Server
% Set Response = Server.CreateObject("Response") %至今为止,我们已经学习完了 A SP 所有的内建对象,不知大家是不是很兴奋?其实 A SP 是很简单的,只要大家不断的实践,相信一段时间后都不难成为 A SP 的高手。从下一篇起作者将开始介绍 A SP 内建 A ctiveX 组件,这也是 ASP 运 用中非常重要和实用...

SP是什么?CP是什么?SP与CP有什么区别?
SP 是指移动互联网服务内容应用服务的直接提供者。SP与CP区别为:服务内容不同、服务途径不同、面向对象不同。一、服务内容不同 1、SP:提供的产品就是网络内容服务,包括文字、图像、音频和视频等各种媒体内容。2、CP:提供的产品包括纯文本短信( SMS )和各种个性化多媒体内容的彩信。二、服务途径不...

unity如何使用sp的贴图
unity这样使用sp的贴图:1、用SP自带默认unity模板导出。2、模型导入unity右上角对象属性点击生成材质选择文件夹更改默认shder贴上对应贴图即可。Unity是全球应用非常广泛的实时内容开发平台,为游戏、汽车、建筑工程、影视动画等广泛领域的开发者提供强大且易于上手的工具来创作、运营和变现3D、2DVR和AR可视化...

我想学习SP增值服务
SP是电信增值服务提供商的英文缩写,指的是为用户提供移动互联网内容应用服务的直接服务商。也许很多手机用户不了解SP为何物,但几乎所有的用户都与SP运营商打过交道,其中为数众多的用户还曾经成为SP“搜刮”的对象。SP行业诞生于2001年,被形象地称为“抢钱行业”,在经历了三四年的风光之后,如今已呈...

如何用ps做圆环型图片如何用ps做圆环型图片
检查图形中文字的拼写SP 创建二次或三次样条曲线SPL 编辑样条曲线对象SPE 移动或拉伸对象S 创建命名样式ST 用差集创建组合面域或实体SU 校准、配置、打开和关闭已安装的数字化仪TA 设置当前三维实体的厚度TH 控制对图纸空间的访问以及控制视口的行为TI 创建形位公差标注TOL 显示、隐藏和自定义工具栏TO 创建圆环形实...

思源物业软件问题?
1、收费对象要选中。如果没有请打开客户管理模块,在收费对象页面查看客户名称字段旁边的“是否收费对象”处确认打勾。 2、检查客户管理中收费对象页面是否收费对象字段旁边的“开始收费日期”设置是否正确。 3、收费标准要选上。选收费标准操作方法为:打开收费系统,进入收费标准选用中,指定某一户没有正常产生费用的房间...

量房的基本操作和CAD的快捷键是什么 ?
SPELL:检查图形中文字的拼写 SP SPLINE:创建二次或三次 (NURBS) 样条曲线 SPL SPLINEDIT:编辑样条曲线对象 SPE STRETCH:移动或拉伸对象 S STYLE:创建或修改已命名的文字样式以及设置图形中文字的当前样式 ST SUBTRACT:用差集创建组合面域或实体 SU TABLET:校准、配置、打开和关闭已安装的数字化仪 TA THICKNESS:设置...

SP调查的主要过程是
由于SP调查是在“假定条件下”,SP调查具有可以根据未来的状况,任意设定选择条件的优点,这一点对于在分析对象区域内建立过去没有的选择方案的分析十分有利。另外,由于可以调查相同条件下的许多人的反应,因而可以研究由于个人属性的不同而产生的选择结果的差异,计算在每个选择条件下特定的选择方案的选择...

autocad2002的快捷键
[CTRL]+[F] 对象捕捉(开或关),功能同F3[CTRL]+[G] 栅格显示(开或关),功能同F7[CTRL]+[J] Copyclip复制内容到剪贴板内[CTRL]+[K] 超级链接[CTRL]+[L] 正交(垂直水平)模式,功能同F8[CTRL]+[M] 同[Enter]功能键[CTRL]+[N] New新图[CTRL]+[O] Open开启旧文件或同F8[CTRL]+[P] Plot绘图输出...

点军区13637518465: 简述ASP中内部对象Application的主要功能和特点 -
辟趴开塞: application对象它有一个兄弟session,两者是要区别一下:APPLICATION对象与SESSION对象都提供一个全局变量机制;说白了,它们都能实现类似"全局变量"的功能,设置一个APPLICATION或SESSION后,在当前站点的其它页面都有访问这个“全局变量”,APPLICATION对象的全局变量机制可供所有用户(在站点的其它页面)来访问,而SESSION全局变量机制只能由当前用户(在站点的其它页面)来访问,其它用户是不能访问的.

点军区13637518465: 什么是applicatio?什么是application
辟趴开塞: application1.什么是application:服务器启动后就产生了这个application对象,当客户在所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭

点军区13637518465: 在ASP中,APPLICATION和Session的功能与区别是什么? -
辟趴开塞: 用ASP编写虚拟社区、网上购物等程序时,Application和Session对象具有举足轻重的作用,能够灵活合理地运用这两个对象是提高程序质量的关键.下面让笔者根据自己在这方面的经验,向大家深入介绍一下ASP的这两个内建对象. 一、...

点军区13637518465: asp中session对象和application对象 -
辟趴开塞: 验证身份基本都用session对象 和 cookies对象 application对象你可以把它想像成一个全局变量,但任何页面都可以读、改、删它.

点军区13637518465: 在ASP中application与session有什么区别
辟趴开塞: 我的理解,不是网上随便搜索的: 1、application是全局对象,在程序运行时建立,只被创建一次.也就是说虽然你的程序发布了,但是这个时候你的程序并没有被运行,...

点军区13637518465: .简述ASP引擎提供的5个内置对象 -
辟趴开塞: ASP内置对象 Active Server Pages 提供内建对象,这些对象使用户更容易收集通过浏览器请 求发送的信息、响应浏览器以及存储用户信息(如用户首选项).Application 对象 可以使用 Application 对象使给定应用程序的所有用户共享信息. ...

点军区13637518465: asp怎样创建application变量
辟趴开塞: <% application("name")="name" %> 这就是定义了一个名为name的application.

点军区13637518465: ASP 提供的六个内建对象是什么? -
辟趴开塞: Active Server Pages 提供内建对象,这些对象使用户更容易收集通过浏览器请 求发送的信息、响应浏览器以及存储用户信息(如用户首选项).本文简要说明 每一个对象.有关每个对象的详...

点军区13637518465: 关于SESSION和APPLICATION??? -
辟趴开塞: GLOBAL.ASA只能在根目录下,只有一个文件,当然可以放这两个对象喽.在上一篇中作者给大家详细介绍了 ASP 内建对象 Response 的使用方法,在这一篇中作者将继续给大家介绍另两个非常实用...

点军区13637518465: asp除了response和request两个参数外还有其他的吗? -
辟趴开塞: response和request不是参数而是asp的内置对象 ASP的内建对象 ASP提供了六个内建对象,供用户直接调用: 1) Application对象:负责管理所有会话信息,可用来在指定的应用程序的所有用户之间共享信息. 2) Session对象:存贮特定用户的...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网