ASP中的对象模型

IIS 应用程序是以一个.asp (Active Server Pages)文件为宿主的,并且利用 Active Server Pages 对象模型中的几个对象。Webclass 使用这些对象来访问和操作来自一个 HTML 页面的信息。一个 webclass 可以使用的 ASP 对象包括:

Request— 从浏览器的最终用户接受请求。

Response —向浏览器发送信息以便向用户显示它。

Session —维护有关当前用户会话的信息并保存和获取状态信息。

Application —多个 webclass 实例共享的管理状态。

Server —创建其他的对象并确定服务器特定的属性,这些属性可能影响 webclass 的处理。

BrowserType —确定用户浏览器的性能,并基于这些信息作出处理决定。

ASP 请求对象
您可以使用 Request 对象来从当前用户获取信息或获取有关当前用户的信息。Request 对象使您访问通过任何 HTTP请求传递的信息。HTTP 请求包含当前用户的有关信息、在请求前输入的任何数据、以及告诉 Web 服务器如何处理和响应请求的参数。

最经常的情况是您使用 Request 对象从一个 HTML 窗体中获取信息。例如,您可以获取一个由 Submit 事件传回的所有窗体的元素。下面的例子显示了您如何使用 Request 对象搜集来自浏览器的信息:

Private Sub Webitem1_Submit     ‘定义变量来保存从请求中获取的信息    Dim first as String     Dim last as String     ‘获取窗体信息并将它赋给变量,使用    ‘Request 对象和它的 Form 集合。    First = Request.Form(“Firstname”)     Last = Request.Form(“Lastname”) End Sub 您可以使用Request对象的相关集合来访问信息。这些集合包括:

QueryString — 当一个请求通过 GET 方法传递时,获取在一个 URL 中附加参数的值。GET 被 Web 服务器用来获取对象,在某些情况下用来从一个 HTML 窗体中发送信息。

Form — 当请求使用 POST 方法传递时,获取在一个 HTTP 请求中传递的窗体元素的值。POST 是 Web 浏览器用于从一个 HTML 窗体发送信息的一种方法。
注意 POST 是用来发送窗体信息的较常用方法。您可以使用 Request 对象来访问任何这种数据。在您的 HTML 模板文件中不能使用 GET 方法。

Cookie — 获取包含在与窗体请求一起发送的 cookie中的数据。 Cookie 是用来存储有关当前用户数据的小信息包。它们可以在浏览器和 Web 服务器之间传递。

ServerVariables —获取诸如表头值、登录名字或使用的服务器协议等信息。

ClientCertificate —当浏览器发送支持客户验证的请求时获取保存在验证域的信息。验证向 Web 服务器识别一个用户。
详细信息 关于请求对象和它的集合的详细信息,请参阅《Active Server Pages Scripting Guide》中的“从用户得到信息”。

ASP 响应对象
您可以使用 Response对象向浏览器返回信息。例如,您可以使用对象的 Response 事件向浏览器写HTML。有几种方法您可以和 Response 对象一起使用:

使用 Write 或 BinaryWrite 方法直接向一个浏览器发送信息。

使用 Redirect 方法指示用户到一个和用户请求不同的 URL,如一个不同的 webclass 或一个外部页面。

使用 Cookie 集合来设置返回到浏览器的 cookie 值并保存这些值以便将来使用。Cookie 是一组可以在客户和服务器之间传递的有关用户信息,向两个系统之一标识用户。

当整个页面被处理时使用 Buffer 属性来延迟一个响应。

使用 AddHeader 方法添加 http 标头到一个响应。
下面的示例显示了您如何使用 Response 对象向浏览器写几行 HTML 代码:

With Response     ‘指示HTML页面的开始    .Write “”     ‘指示 body 部分的开始    .Write “”     ‘发送一行,该行有两种标头样式并且后面有    ‘一个段落分隔符    .Write “

Feedback Form

”     ‘发送一段正文    .Write “Please enter your comments below:

”     ‘其他写语句来呈现窗体元素    ‘和关闭 HTML 文档 End With 详细信息 关于 Response 对象和它的集合的详细信息,请参阅《Active Server Pages Scripting Guide》中的“发送消息给用户”。

ASP Session 和 Application 对象
Session 和 Application 对象两者都保存有关 webclass 最终用户的状态信息。Session 对象可以保存当前会话期间的有关单用户的信息。Application 对象可以保存有关多个用户的信息。

您使用 Session 对象来维护当前用户会话的信息并保存和获取状态信息。例如,假设您有一个使用两个主页的应用程序:一个主页汇总顾客的信息,另一个主页允许用户订购产品。您想保证顾客只看到该信息页面一次,而不管它们输入多少次交易。为了达到这个目的,webclass 在处理每一个新订单时必须能够确定用户是否已经看过顾客的信息。您可以通过使用 Session 对象来保留用户已到过那里的有关信息来实现它。

您可以使用 Application 对象来保存有关多个用户的信息。例如,假设您想跟踪关于访问一个 webclass 以及联机访问那个统计值的用户数量。可以通过在 Application 对象中保存一个计数并且在每次用户访问 webclass 的一部分时增加该计数的方法来完成它。

详细信息 关于在 Session 和 Application 对象中保存状态的一个代码示例,请参阅“ IIS 应用程序的状态管理器”。

ASP 服务器对象
您使用 Server 对象来创建对象并确定可能影响 webclass 处理的服务器特有属性。例如,假设您有一个在事件处理中使用的业务对象库。为了保持内部的状态,这些对象中的一个在整个会话期间必须保持有效。您可以使用 Server 和 Session 对象来完成它。

在这个例子中,您应选择存储此对象作为一个 Session 属性,使用 Server.CreateObject 来创建它的一个实例。这样做是必需的,以便 IIS 能够发现对象的线程模型和优化其后的请求处理。

下面的代码显示了在您的事件过程中如何来完成它:

Dim BusObj as SomeBusinessObject Set BusObj = Server.CreateObject(“OurCompany.SomeBusinessObject.1”) ‘这里的代码是用来调用对象的方法的 Set Session(“BusObjInstance”) = BusObj ASP BrowserType 对象
您使用 BrowserType 对象确定用户浏览器的能力并基于该信息作出处理决定。例如,假设您有一个应用程序包含一个称为 CheckInventory 的按钮。这个按钮允许用户在发出订单之前检查可利用的存货清单。在您的 webclass 中对这个按钮提供了两个版本的事件过程— 一个使用 HTML、另一个使用 JavaScript。如果JavaScript 过程提供了一个比较好的用户经验,您可能会这样做,例如,在 HTML 过程可能产生页面转换的地方,它也许不会引起一个页面转换。

在该方案中,您可以使用 BrowserType 对象通过确定用户浏览器是否支持 JavaScript 来确定使用哪一个过程。下面的代码显示了您将如何使用 BrowserType 对象作出选择:

Private Sub OrderForm_ProcessTag(ByVal TagName As String, TagContents As String, SendTags as Boolean)      ‘如果浏览器支持 Javascript,产生 HTML 去调用    ‘一个 applet 的方法。如果它不支持,产生 HTML 去    ‘激发一个 webclass 的事件。         If TagName = “WC@FORMTAGSTART” Then        If BrowserType.javascript And BrowserType.javaapplets Then           TagContents = “

” Else          TagContents = “” End If       End If     SendTags = False End Sub