asp基础实用教程(DOC格式)-第4部分
按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
组件的线程模型可能会影响Web站点的性能,一般来说,带有Both标记的对象是推荐在所有的ASP脚本中使用的对象,尤其是在Session和Application对象中。不推荐使用单线程对象,因为您可能不会始终控制所用对象的线程模型,所以,以下的指导可帮助您获得最佳性能:
* 页作用域对象。带有Both或Apartment标记的对象将给予您最佳的性能。
* 应用程序作用域对象。一般来说,应避免在Application对象中放置对象。如果确需使用应用程序作用域对象,您会从结合了FreeThreadedMarshaler的带有Both标记的对象中获得最佳性能。您既可以用标记也可以用Server。CreateObject方法在Application 对象中存储带有Single、Free或Both标记的对象。您必须用单元线程对象来使用标记。
* 会话作用域对象。带有Both标记的对象将为您提供最佳性能。用单线程或单元线程对象会导致Web服务器将会话锁定在一个线程上。自由线程对象不会锁定会话,但运行速度不高。在Session对象中,您可以用 标记或Server。CreateObject方法存储对象。
如果您已安装了SDK文档,请参阅〃创建ASP组件〃,您将会获得有关线程模型及其隐含的组件性能的详细信息。(在Windows 95及其后续版本中SDK文档不可用。)
七、ASP内建对象
Active Server Pages提供内建对象,这些对象使用户更容易收集通过浏览器请求发送的信息、响应浏览器以及存储用户信息(如用户首选项)。本文简要说明每一个对象。有关每个对象的详细信息,请参阅内建对象参考。
* Application对象
可以使用Application对象使给定应用程序的所有用户共享信息。
* Request对象
可以使用Request对象访问任何用HTTP请求传递的信息,包括从HTML表格用POST方法或GET方法传递的参数、cookie和用户认证。Request对象使您能够访问发送给服务器的二进制数据,如上载的文件。
* Response对象
可以使用Response对象控制发送给用户的信息。包括直接发送信息给浏览器、重定向浏览器到另一个URL或设置cookie的值。
* Server对象
Server对象提供对服务器上的方法和属性进行的访问。最常用的方法是创建ActiveX 组件的实例(Server。CreateObject)。其他方法用于将URL或HTML编码成字符串,将虚拟路径映射到物理路径以及设置脚本的超时期限。
* Session对象
可以使用Session对象存储特定的用户会话所需的信息。当用户在应用程序的页之间跳转时,存储在Session对象中的变量不会清除;而用户在应用程序中访问页时,这些变量始终存在。也可以使用Session方法显式地结束一个会话
和设置空闲会话的超时期限。
* ObjectContext对象
可以使用ObjectContext对象提交或撤消由ASP脚本初始化的事务。
====================================
* Application对象
集合:
Contents
StaticObjects
方法:
Lock
Unlock
事件:
Application_OnEnd
Application_OnStart
* ObjectContext对象
方法:
SetAbort
Setplete
事件:
OnTransactionAbort
OnTransactionmit
* Request对象
集合:
ClientCertificate
Cookies
Form
QueryString
ServerVariables
属性:
TotalBytes
方法:
BinaryRead
* Response对象
集合:
Cookies
属性:
Buffer
CacheControl
Charset
ContentType
Expires
ExpiresAsolute
IsClientConnected
PICS
Status
方法:
AddHeader
AppendToLog
BinaryWrite
Clear
End
Flush
Redirect
Write
* Server对象
属性:
ScriptTimeout
方法:
CreateObject
HTMLEncode
MapPath
URLEncode
* Session对象
集合:
Contents
StaticObjects
属性:
CodePage
LCID
SessionID
Timeout
方法:
Abandon
事件:
Session_OnEnd
Session_OnStart
ActiveX 组件
本部分概述了Active Server Pages(ASP)中的 ActiveX组件。有关这些组件的完整介绍及其对象、属性和方法的列表,请参阅可安装的ASP组件。
ActiveX组件作为基于Web的应用程序部分在Web服务器上运行。组件提供了应用程序的主要功能(如访问数据库),这样就不必创建或重新创建执行这些任务的代码。
数据库访问
可以使用Database Access组件在应用程序中访问数据库。然后可以显示表的整个内容、允许用户构造查询以及在Web页执行其他一些数据库查询。
Ad Rotator
可以使用Ad Rotator组件来交替显示图像,并提供从显示的图形到另一个URL的链接。在文本文件中保存广告列表;Ad Rotator 组件依照在数据文件中的指令来显示它们。
Content Rotator
Content Rotator组件在Web页上自动循环HTML内容字符串。每次用户请求Web页时,Content Rotator组件基于 Content Schedule文件中指定的信息显示新的HTML内容字符串。
由于内容字符串可以包含HTML标记,就可以显示HTML能够表示的任何内容类型:文本、图形或超文本链接。例如,可以使用该组件在每日牌价或超文本链接中循环,或者在每次打开Web页时,改变文本和背景的颜色。
Browser Capabilities
通过使用Browser Capabilities组件,可以基于浏览器的功能剪裁发送到该浏览器的内容。
File Access
File Access组件提供可用于在计算机文件系统中检索和修改文件的对象。
Content Linking
Content Linking组件使在应用程序中提供。asp文件的逻辑导航变得简单易行。不用在许多。asp文件中维护URL引用,而只需在易于编辑的文本文件中指定。asp文件的次序组织。
Collaboration Data Objects for Windows NT Server
Collaboration Data Objects for NTS组件提供Web应用程序所使用的邮件对象。这个库使您能够简单快捷地在应用程序上添加收发邮件的功能。您可以创建可编程邮件对象,然后利用它们的属性和方法来满足应用程序的需要。
MyInfo、Status、System 和 Tools
MyInfo、Status、System和Tools组件为在Macintosh上和在运行Microsoft Windows的计算机上开发的应用程序提供兼容性。
MyInfo组件跟踪Web站点所有者的个人信息,如经营Web站点的组织名称和地址及Web站点的设置,还有Web站点是否有guest book。
Status组件跟踪Web站点的信息,如访问者的数量以及HTTP连接的个数。
System组件创建包含服务器状态信息的status对象。当前该服务器状态只在Personal Web Server for Macintosh上可用。
Tools组件提供了生成随机数、检查文件是否存在或处理 HTML 表格的方法。
Page Counter
Page Counter组件统计并显示Web页被请求的次数。以一定的时间间隔,将捕获的数字写入到文本文件中,这样服务器关闭后,数据也不会丢失。
Permission Checker
Permission Checker组件测试Web用户对某文件或某页的访问权。可以使用Permission Checker组件为不同类型的用户定制基于ASP的页。例如,如果Web页包含超文本链接,就可以使用Permission Checker组件测试用户对相应Web页的访问权限并忽略用户无权访问的页或使这些链接失效。
八、向浏览器发送内容
在处理ASP脚本时,任何没有包含在ASP定界符或 标记中的文本或图形都将被简单地返回给浏览器。可以通过使用Response对象显示地把内容发送给浏览器。
发送内容
要将内容从ASP定界符内部或过程发送给浏览器,可以使用Response对象的Write方。例如,下面的语句可以根据用户是否访问过此页而发送不同的问候语:
在过程外部,不必使用Response。Write将内容送回用户。不在脚本定界符内部的内容被直接发送给浏览器,浏览器将其格式化和显示。例如,下面的脚本过程与上面的脚本输出相同:
Wele to the Overview Page。
Wele Back to the Overview Page。
当您只需要将输出返回一次或很方便地向现有HTML文本中加入语句时,可使用混合脚本命令和HTML。当您不想用定界符分隔一条语句或当您想创建返回给浏览器的字符串时,可使用 Response。Write。例如,可构建一个文本的字符串,用从一个HTML表送回的值创建表格的一行:
Response。Write”” & Request。Form(”FirstName”) _
& ”” & Request。Form(”LastName”) & ””
Request。Form返回从HTML表格(参阅 使用HTML表格)发送的值。(&)字符是VBScript字符串连接字符。
设置内容的类型
当Web服务器将文件返回给浏览器时,会同时告诉浏览器文件中包含的内容的类型。这使浏览器能够决定是否它能自己显示文件或必须调用另一个应用程序。例如,如果网络服务器返回Microsoft Excel表格,则浏览器必须调用Microsoft Excel的副本显示此页。Web服务器通过将文件的扩展名映射到 MIME 类型表来识别文件类型。
可以使用Response对象的ContentType属性为发送给用户的内容设置HTTP内容类型字符串。例如,下面的命令为通道定义设置内容类型:
有关通道的详细信息,请参阅本主题中的〃创建动态通道〃。
其他的通用内容类型是text/plain(用于作为文本内容返回而不是已解释的HTML语句)、text/gif(用于GIF图像)和 video/quicktime(用于Apple QuickTime格式的电影)。一套标准的MIME类型已经定义,另外,Web服务器或 Web浏览器都支持 MIME 类型。要想查看您的 MicrosoftWeb服务器支持哪些内容类型,可使用 Internet 服务管理器打开您的Web站点的属性页,单击〃HTTP标题〃选项卡,然后单击〃文件类型〃选项卡。
重定向浏览器
用Redirect方法可将浏览器重定向到另一个URL,而不是将内容发送给用户。例如,如果您想确认用户是否已从主页进入了您的应用程序,以便能收到一个客户ID,则可以检验他们是否有客户ID号;如果没有,就可以将其重定向到主页。
除非缓冲区已经打开,否则,在任何内容或标题返回给浏览器之前,您必须重定向浏览器。将Response。Redirect语句放在页的顶部和标记之前可确保没有任何内容返回给浏览器。如果在返回给浏览器的内容或标题后使用Response。Redirect,将看到一个错误信息。
如果在页的中间使用Response。Redirect,请将其与Response。Buffer属性一起使用,下面的部分将进行解释。
缓冲内容
默认情况下,Web服务器返回HTML和在处理ASP页时的脚本处理结果。但是,您可以设置Response对象的Buffer属性以便在向用户发送任何内容之前,先处理页上的所有的服务器脚本命令。
可以使用缓冲技术来确定在页处理过程中的某个点,而您并不想将该点之前的内容发送给用户。也可以用Response对象的Redirect方法将用户重定向到另一页,或者用Response对象的Clear方法清除缓冲区并将不同的内容发送给用户。下面的例子使用了以上两种方法。