下载
第3章 ASP应用程序与会话
在前面的章节中介绍了 A S P提供的访问一个客户请求和产生响应的方法,本章将讨论 A S P
的另两个对象。就是 A p p l i c a t i o n和S e s s i o n对象。这两个对象不是直接地与请求和响应的管理
有关,而是更多地与A S P网页运行环境的管理相关。
与建立We b站点或We b应用程序有关的共同问题之一,是使用 H T T P协议时没有状态。状
态提供了与一个指定用户有关的变量值、对象和其他资源,并且应用程序中的任意例程都能
使用它;以一种像 V B或C + +这样的程序设计语言编写一般的基于客户的应用程序时,使用状
态可以完成一些相应的工作。然而, We b并不提供这种能力。在本章中,读者将看到为什么
和如何避免这个问题。
本章还涉及到一些术语和技术问题。它迄今为止,本书中已经简单地讨论了“ We b应用
程序”,但没有真正确切地理解或准确定义它们到底是什么。本书也涉及到了“用户会话”,
也没有相应的比较完全的描述。前面有意地省略这方面的内容,因为它们与 A S P的应用程序
和会话密切相关。下面将介绍 A S P的A p p l i c a t i o n和S e s s i o n对象。
本章研究的主要内容:
• We b应用程序是什么,以及它们如何与 ASP Application对象相联系。
•用户会话是什么,以及它们如何与 ASP Session对象相联系。
• ASP如何自动地创建和管理应用程序和会话。
• Application和S e s s i o n对象提供的功能。
•如何把A p p l i c a t i o n和S e s s i o n对象放入A S P网页中。
首先研究整个内容的核心问题:状态。
We b上的状态管理
许多开发人员把应用程序传送到 We b之前从来没有考虑状态的概念。正如前面说过的,
We b是一个无状态的环境。因此应该探讨一下状态是什么,了解能够避免产生问题的方法。
状态的准确定义
在单用户程序中,创建一个可执行的应用程序时,例如使用 V B建立的一个. e x e文件,可
以声明一个全局(或P u b l i c )变量,然后在代码中任何地方可对其进行访问。在应用程序运行的
所有时刻,该变量的值一直是有效,并且是可访问的。
对于一个传统的客户机/服务器解决方案,例如一个基于客户机的应用程序对一个基于服
务器的数据库引擎进行访问的系统,每个客户端建立了一个与服务器和数据库应用程序的连
接。这种连接通常是通过验证用户的方法来建立的。
验证过程是典型的识别用户身份的过程,通过一个用户名和口令组合来证明是
否为合法的用户。
第 3章 A S P应用程序与会话计计71
下载
一旦通过验证,在客户端和基于服务器的应用程序之间就建立了连接,该连接在用户使
用该应用程序的所有时间内一直保持有效。当用户注册到本地 Windows 2000服务器上时,这
一切便会发生。无论何时,管理员使用“ Active Directory Users puters”实用程序(单
击“S t a r t”菜单的“Administrative To o l s”选项中的“Directory Management”项)都可以观察
到活动的用户连接。这个过程在许多系统中都相同,例如 Microsoft SQL Server。
这种永久的连接意味着:当用户发送指令或请求到服务器上时,服务器会很容易地识别
每个用户。同样服务器的响应或任何其他用户的信息也能直接返回用户。要进一步指出的是
服务器可以比较容易地存储与每个客户相关的值和信息,并在需要的时候提供给相应的客户。
当然,服务器应用程序能够拥有主全局变量,以便于用户在需要的时候进行访问。
这种识别每个客户端的请求并在内存中保存相关用户的值的能力构成状态。可以认为状
态代表应用程序的值、环境以及用户的内部变量,并贯穿于应用程序和用户连接的整个过程。
状态的重要性
如果打算创建与用户进行交互的基于 We b站点的应用程序,而不是仅显示独立页面的 We b
网站,必须能够为每个用户提供独立的状态。这可能只是记住他们的名字,也可能要为每个
用户存储对象引用或不同的记录集。如果不能这样做, A S P网页就不能做更多的事情,因为
该页面执行完成时,页面中的变量和其他相关资料都破坏了。当用户请求下一个页面时,这
个页面提供的所有信息将全部失去。
因此,需要找到一种方法,保存每个访问者的状态。能够存储对所有用户而言的全局值
是非常重
ASP高级编程-第3章-ASP应用程序与会话 来自淘豆网m.daumloan.com转载请标明出处.