ASP 3.0高级编程(六)

2016-01-29 19:13 1 1 收藏

ASP 3.0高级编程(六),ASP 3.0高级编程(六)

【 tulaoshi.com - ASP 】

  第3章 ASP应用程序与会话

在前面的章节中介绍了ASP提供的访问一个客户请求和产生响应的方法,本章将讨论ASP的另两个对象。就是Application和 Session对象。这两个对象不是直接地与请求和响应的管理有关,而是更多地与ASP网页运行环境的管理相关。
与建立Web站点或Web应用程序有关的共同问题之一,是使用HTTP协议时没有状态。状态提供了与一个指定用户有关的变量值、对象和其他资源,并且应用程序中的任意例程都能使用它;以一种像VB或C++这样的程序设计语言编写一般的基于客户的应用程序时,使用状态可以完成一些相应的工作。然而,Web并不提供这种能力。在本章中,读者将看到为什么和如何避免这个问题。
本章还涉及到一些术语和技术问题。它迄今为止,本书中已经简单地讨论了“Web应用程序”,但没有真正确切地理解或准确定义它们到底是什么。本书也涉及到了“用户会话”,也没有相应的比较完全的描述。前面有意地省略这方面的内容,因为它们与ASP的应用程序和会话密切相关。下面将介绍ASP的Application和Session对象。
本章研究的主要内容:
· Web应用程序是什么,以及它们如何与ASP Application对象相联系。
· ASP如何自动地创建和管理应用程序和会话。
· Application和Session对象提供的功能。
· 如何把Application和Seesion对象放入ASP网页中。
首先研究整个内容的核心问题:状态。

3.1 Web上的状态管理
    许多开发人员把应用程序传送到Web之前从来没考虑状态的概念。正如前面说过的,Web是一个无状态的环境。因此应该探讨一下状态是什么,了解能够避免产生问题的方法。

3.1.1状态的准确定义
    在单用户程序中,创建一个可执行的应用程序时,例如使用VB建立一个.exe文件,可以声明一个全局(或Public)变量,然后在代码中任何地方可对其进行访问。在应用程序运行的所有时刻,时刻值一直是有效,并且是可访问的。
    对于一个传统的客户机/服务器解决方案,例如一个基于客户机的应用程序对一个基于服务器的数据库引擎进行访问的系统,每个客户端建立了一个与服务器和数据库应用程序的连接。这种连接通常是通过验证用户的方法来建立的。
    验证过程是典型的识别用户身份的过程,通过一个用户名和口令组合来证明是否为合法的用户。
    一旦通过验证,在客户端和基于服务器的应用程序之间就建立了连接,该连接在用户使用该应用程序的所有时间内一直保持有效。当用户注册到酵Windows 2000服务器上时,这一切便会发生。无论何时,管理员使用 “Active Directory Users and Computers”实用程序(单击“Start”菜单的“Administrative Tools”选项中的 “Directory Management”项)都可以观察到活动的用户连接。这个过程在许多系统中都相同,例如Microsoft SQL Server。
    这种永久的连接意味着:当用户发送指令或请求到服务器上时,服务器会很容易地识别每个用户。同样服务器的响应或任何其他用户的信息也能直接返回用户。要进一步指出的是服务器可以比较容易地存储与每个客户相关的值和信息,并在需要的时候提供给相应的客户。当然,服务器应用程序能够拥有主全局变量,以便于用户在需要的时候进行访问。
    这种识别每个客户端的请求并在内存中保存相关用户的值的能力构成状态。可以认为状态代表应用程序的值、环境以及用户的内部变量,并贯穿于应用程序和用户连接的整个过程。

3.1.2 状态的重要性
    如果打算创建与用户进行交互的基于Web站点的应用程序,而不是仅显示独立页面的Web网站,必须能够为每个用户提供独立的状态。这可能只是记住他们的名字,也可能要为每个用户存储对象引用或不同的记录集。如果不能这样做,ASP网页就不能做更多的事情,因为该页面执行完成时,页面中的变量和其他相关资料都破坏了。录用户请求下一个页面时,这个页面提供的所有信息将全部失去。
    因此,需要找到一种方法,保存每个访问者的状态。能够存储对所有用户而言的全局值是非常重要。例如,一个Web风格的访问或页面点击计数器,它不为每个用户提供自己的计数器,用户们通常想要看到访问者的总数,而不仅仅是他们自己访问的次数。访问者的数目需要与应用程序级状态一起存储,而不是与用户级状态一起存储。 
    这不是一个刚出现的问题,自从商用站点占据了Web,就已经存在,甚至更早些。所以已有许多在Web上存储状态的传统的解决方案。Web站点管理员想要了解访问者以前是否曾访问过他们的网站,如果访问过,访问过多少次?还定期访问其他什么网站等。这样可以更好地制定其广告目标。所有这些都要求一种方法来存储有关用户在访问时所产生的网页请求或每次访问间的信息。<

来源:https://www.tulaoshi.com/n/20160129/1508781.html

延伸阅读
标签: ASP
  4.3.5 获取Server对象的路径信息        在对存储在Web网站上的文件进行操作时,需要获得文件的实际的物理路径,而不是使用虚拟路径或URL,尽管在其他网页中能用它们正常地定位文件。下一章中有一个例子,它使用FileSystemObject对Web站点的InetPub\WWWRoot文件夹中的文件进行读写。当创建自己的定...
标签: ASP
  第5章 脚本运行期库对象        前面章节已经介绍了ASP如何使用在服务器上定义的对象的实例,充分利用所提供的方法和属性扩展ASP的性能。有一系列的对象可供使用,包括脚本对象和标准IIS/ASP安装的组件,以及自己创建的或者从其他供应商处购买的对象。也可以在互联网上各种网站免费下载对象,并在自...
标签: ASP
  (4)  删除虚拟应用程序 单击“Remove”按钮不会真正地删除Internet Services Manager中的该条目。而是把现有的虚拟应用程序转换为一个虚拟目录。这个目录有一个带有蓝色球的“文件夹”图标,该图标表示这并不是Web网站中一个真正的目录,而是对磁盘上另一个文件夹的一个重定向。对它进行的访问方式与创建它的虚拟应...
标签: ASP
  第四章      服务器进程和ASP Server对象 前面的章节已经研究了ASP的一些内置对象。重点介绍的对象有Request、Response、Session和Application对象。ASP中另一个比较主要的对象为Server对象。本章重点介绍这个对象的背景知识和使用方法。 Server对象在服务器端脚本中通过实例和使用其他外部对象和组件,...
标签: ASP
  ASP 3.0请求和响应的处理        这两个对象是ASP所提供的内置对象中最常用的两个。在浏览器(或其他用户代理)和Web服务器之间,请求与响应中发生的信息交流可以通过ASP中的两个内置对象来进行访问和管理,这两个对象称为Request和Response对象。        在AS...

经验教程

712

收藏

94
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部