IIS 应用程序是以一个.asp (Active Server Pages)文件为宿主的,并且利用 Active Server Pages 对象模型中的几个对象。Webclass 使用这些对象来访问和操作来自一个 HTML 页面的信息。一个 webclass 可以使用的 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对象的相关集合来访问信息。这些集合包括:
注意 POST 是用来发送窗体信息的较常用方法。您可以使用 Request 对象来访问任何这种数据。在您的 HTML 模板文件中不能使用 GET 方法。
详细信息 关于请求对象和它的集合的详细信息,请参阅《Active Server Pages Scripting Guide》中的“从用户得到信息”。
您可以使用 Response对象向浏览器返回信息。例如,您可以使用对象的 Response 事件向浏览器写HTML。有几种方法您可以和 Response 对象一起使用:
下面的示例显示了您如何使用 Response 对象向浏览器写几行 HTML 代码:
With Response '
指示HTML
页面的开始.Write "<HTML>"
'
指示body
部分的开始.Write "<BODY>"
'
发送一行,该行有两种标头样式并且后面有'
一个段落分隔符.Write "<H2>Feedback Form</H2><P>"
'
发送一段正文.Write "Please enter your comments below:<P>"
'
其他写语句来呈现窗体元素'
和关闭HTML
文档End With
详细信息 关于 Response 对象和它的集合的详细信息,请参阅《Active Server Pages Scripting Guide》中的“发送消息给用户”。
Session 和 Application 对象两者都保存有关 webclass 最终用户的状态信息。Session 对象可以保存当前会话期间的有关单用户的信息。Application 对象可以保存有关多个用户的信息。
您使用 Session 对象来维护当前用户会话的信息并保存和获取状态信息。例如,假设您有一个使用两个主页的应用程序:一个主页汇总顾客的信息,另一个主页允许用户订购产品。您想保证顾客只看到该信息页面一次,而不管它们输入多少次交易。为了达到这个目的,webclass 在处理每一个新订单时必须能够确定用户是否已经看过顾客的信息。您可以通过使用 Session 对象来保留用户已到过那里的有关信息来实现它。
您可以使用 Application 对象来保存有关多个用户的信息。例如,假设您想跟踪关于访问一个 webclass 以及联机访问那个统计值的用户数量。可以通过在 Application 对象中保存一个计数并且在每次用户访问 webclass 的一部分时增加该计数的方法来完成它。
详细信息 关于在 Session 和 Application 对象中保存状态的一个代码示例,请参阅“ IIS 应用程序的状态管理器”。
您使用 Server 对象来创建对象并确定可能影响 webclass 处理的服务器特有属性。例如,假设您有一个在事件处理中使用的业务对象库。为了保持内部的状态,这些对象中的一个在整个会话期间必须保持有效。您可以使用 Server 和 Session 对象来完成它。
在这个例子中,您应选择存储此对象作为一个 Session 属性,使用 Server.CreateObject 来创建它的一个实例。这样做是必需的,以便 IIS 能够发现对象的线程模型和优化其后的请求处理。
下面的代码显示了在您的事件过程中如何来完成它:
Dim BusObj as SomeBusinessObject Set BusObj = Server.CreateObject("OurCompany.SomeBusinessObject.1") '
这里的代码是用来调用对象的方法的Set Session("BusObjInstance") = BusObj
您使用 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 = "<FORM onsubmit=""JavaScriptHandler()"">"
Else TagContents = "<FORM ACTION=" & URLFor(OrderForm _ "OrderForm_Submit") & " METHOD=POST>"
End If
End If
SendTags = False
End Sub