下载附录 A ASP 3.0 的对象模型
A S P的对象模型由 6个对象组成,图 A - 1从概念上显示了这些对象如何与客户及服务器、
客户的请求以及服务器的响应相关联。
图 A-1 ASP 对象之间的关系
A.1 Application对象当 ASP DLL为响应一个 A S P页面的第一个请求而被载入时,就创建了 A p p l i c a t i o n对象。
它为访问者打开的页面所能引用的变量和对象提供了存储的地点。其集合、方法和事件分别如表 A - 1、表 A - 2和表 A - 3所示。
表 A-1 Application对象的集合集 合 说 明
C o n t e n t s 存储未用 < o b j e c t >元素定义的变量及值的集合。包括 Va r i a n t数组和
Va r i a n t类型对象实例的引用
S t a t i c O b j e c t s 用 < O B J E C T >元素定义且存储于 A p p l i c a t i o n对象中的所有变量的一个集合表 A-2 Application对象的方法方 法 说 明
Contents.Remove (,v a r i a b l e _ n a m e” ) 从 A p p l i c a t i o n,C o n t e n t s集合中删除一个命名 为 v a r i a b l e _ n a m e
的变量
Contents.Remove All() 从 A p p l i c a t i o n,Co n t e n t s集合中删除所有变量
L o c k ( ) 锁定 A p p l i c a t i o n对象以便只有当前 A S P页面可访问其内容,
通常用于确保允许两个用户同时读取和更新值而不影响内容
u n l o c k ( ) 释放 A S P页面对 A p p l i c a t i o n对象的锁定注:在运行时不能从 A p p l i c a t i o n,S t a t i c O b j e c t s集合中删除变量。
表 A-3 Application对象的事件事 件 说 明
O n S t a r t 当用户在应用程序中请求一个 We b页面的首个实例时触发。用于初始化变量、创建对象或运行其他代码
O n E n d 于 A S P应用程序结束时,即 We b服务器关闭时触发。在最后一个用户的会话结束后且在此会话的 O n E n d事件中的代码已执行之后进行,应用程序中所有的变量在此事件结束后都将取消
A.2 ASPError对象
A S P E r r o r对象在 ASP 3.0中是新对象,可以通过 S e r v e r对象中的 G e t L a s t E r r o r方法来得到。
它为 A S P中出现的最近一个错误提出了一系列详细信息。其属性如表 A - 4所示。
表 A-4 ASPError对象的属性属 性 说 明
A S P C o d e 整型,由 I I S产生的错误号
A S P D e s c r i p t i o n 整型,若错误与 A S P相关,给出错误的详细描述
C a t e g o r y 字符串,表明错误的来源,如 A S P本身、脚本语言或一个对象
C o l u m n 整型,在文件中产生错误的字符位置
D e s c r i p t i o n 字符串,对错误的简短描述
F i l e 字符串,产生错误时正在运行的文件的名字
L i n e 整型,在文件中产生错误的行号
N u m b e r 整型,标准的 C O M错误码
S o u r c e 字符串,产生错误所在行的实际代码 (可能得到的话 )
A.3 Request对象当页面请求或提交一个窗体时,R e q u e s t对象包含客户端提供的所有脚本信息。这包括确定浏览者和使用者的 H T T P服务器变量、存储在浏览器上对应于此域的 c o o k i e以及附加于 U R L
的查询字符串的值,这些值是一个查询字符串或在网页的 < F O R M >部分的 H T M L控件中。还提供对证书的访问,以便用户能够使用安全套接字层 ( S S L )或其他的加密通信协议。其属性能帮助管理连接。其集合、属性和方法分别如表 A - 5、表 A - 6和表 A - 7所示。
表 A-5 Request对象的集合集 合 说 明
C l i e n t C e r t i f i c a t e 当客户访问一个页面或资源时,客户呈现给服务器的客户证书的相关条目或所有字段值的集合。每个成员都是只读的
C o o k i e s 随着用户系统的请求一同发送来的所有 c o o k i e值的集合,只对包括资源的域有效的 c o o k i e才发送到服务器
F o r m 作为请求被提交的在 < F o r m >段中的所有 H T M L控件值的集合,其 M E T H O D属性的值为 P O S T。每个成员都是只读的
Q u e r y S t r i n g 所有在用户请求中附加于 U R L的名称/值的集合,或所有在 < F o r m >中作为请求被提交的 H T M L控件的值,其 M E T H O D属性的值为 G E T,或是省略的。每个成员都是只读的
S e r v e r N a r i a b l e s 所有随客户的请求发送的 H T T P报头值和用于 We b服务器的环境变量值的集合。每个成员都是只读的
866计计 ASP 3 高级编程 下载表 A-6 Request对象的属性属 性 说 明
To t a l B y t e s 整型,只读。由客户发送的请求的主题部分的总字节数表 A-7 Request对象的方法方 法 说 明
B i n a r y R e a d (c o u n t) 当数据作为一个 P O S T请求的一部分被发送到服务器时,从用户请求中检索 c o u n t
字节数据,作为 Va r i a n t数组 (或 S a f e A r r a y )返回。若 A S P代码已引用了 R e q u e s t,F o r m
集合,则不能使用这种方法。同样,若使用了 B i n a r y R e a d方法,也不能够成功访问
R e q n e s t,F o r m集合
A.4 Response对象
R e s p o n s e对象用来访问将创建和发送回客户端的响应。它可使相应的 H T T P变量可用,如识别服务器及其容量、将发送至浏览器的内容信息以及将存储在浏览器中对应于域的任何新的 c o o k i e。还提供了一系列用来创建返回页面的方法。其集合、属性和方法分别如表 A - 8、表
A - 9和表 A - 1 0所示。
表 A-8 Response对象的集合集 合 说 明
C o o k i e s 包含将在当前响应中发回客户端的全部 c o o k i e值的集合。每个成员都是只可写的表 A-9 Response对象的属性属 性 说 明
B u ff e r = Tu r e | F a l s e 布尔型,读/写,在处理完当前页面的服务器脚本或访问 F l u s h或 E n d方法之前,
当前 A S P页产生的输出将一直保存在 I I S缓冲区中。必须在输出发送到 I I S之前设置,这些输出包括 H T T P报头信息。因此应该是,a s p文件中< %@language =,,%>
语句后的首行。在 ASP 3.0中缓冲缺省为 True,其早期版本缺省设置为 False
CacheControl "s e t t i n g" 字符串型,读/写。设置此属性为 "Pu b l i c ",则允许代理服务器缓存页面,
或设置 " P r i v a t e "来防止代理缓存页面
C h a r s e t = "v a l u e" 字符串型,读/写,在服务器对每个响应产生的 HTTP 的内容类型报头中添加字符集的名称。 (如 I S O - L AT I N - 7 )
C o n t e n t Type,M I M E - t y p e” 字符串型,读/写,指定作为响应的 H T T P内容类型,如标准的 M I M E类型
( " t e x t / x m l "或 " i m a g e / g i f " ),若省略,则将使用 M M E类型 " t e x t / h t m l "。内容类型告诉浏览器预期的内容类型。
Expires m i n u t e s 数字型,读/写,按分钟来指定该页面的有效时间,若用户在该页有效期内返回,显示其缓存的版本。超过这一时间,页面将终止,并不再保存在 p r i v a t e
(用户 )或 p u b l i c (代理 )中
Expires Absolute # d a t e[ t i m e ] # 日期/时间型,读/写,指定网页无效并销毁的确切日期和时间,若用户在该页有效期内返回,显示其缓存的版本。超过这一时间,页面将终止,并不再保存在 p r i v a t e(用户)或 p u b l i c (代理 )缓存中
I s C l i e n t C o n n e c t e d 布尔型,只读。指示客户是否仍然与服务器连接并下载网页。如果客户在当前页尚未完成前转向另一页,可用 R e s p o n s e,E n d方法来结束处理附录 A ASP3.0的对象模型 计计 867下载
(续 )
属 性 说 明
PICS(,P I C S - l a b e l - s t r i n g” ) 字符串型,只写,产生一个 P I C S报头,并且在响应中将其加入到 H T T P报头中。 P I C S报头指明有关暴力、性和不良语言等网页内容
Status=,code message” 字符串型,读/写,指定将发送到客户端的指示页面处理是否成功的响应的
H T T P报头中的消息和状态,例如,200 OK”和,404 Not Found”
表 A-10 Response对象的方法方 法 说 明
A d d H e a d e r (,n a m e”,,c o n t e n t” ) 使用 n a m e和 c o n t e n t值创建一个定制的 H T T P报头,并将其加入到响应中。不取代已存在的同名报头,一旦添加上报头就不能删除,必须在任何网页的内容 (即文本和 H T M L )发送到客户前使用
A p p e n d To L o g (,s t r i n g” ) 当使用 W3C Extended Log File Format时,在 We b日志尾部附加字符串 s t r i n g。至少需要在包含此页面的站点的 Extended Properties页中选择 URL Stem
B i n a r y Wr i t e (s a f e A rr a y) 将 Va r i a n t类型 S a f e A r r a y的内容不进行任何字符转换写到当前的 H T T P输出流中。对于定制应用程序请求的二进制数据或构成图像文件的字节等非字符性信息的写入十分有用
C l e a r ( ) 当 R e s p o n s e,B u ff e r是 Tr u e时,从 I I S响应缓冲区中删除所有缓冲页内容,不删除 H T T P的响应报头,可用来终止尚未完成的网页
E n d ( ) 停止 A S P的脚本处理,并且返回当前生成的内容,然后终止本页的所有处理
F l u s h ( ) 当 R e s p o n s e,B u ff e r是 Tr u e时,从 I I S缓冲区中送出所有当前的缓冲页到客户,
可用来单独送出长页面的一部分
R e d i r e c t (,u r l” ) 通过响应发出,302 Object Moved” H T T P报头,指示浏览器下载在字符串
u r l参数中指定的网页
Wr i t e (,s t r i n g” ) 将指定的字符串 s t r i n g写入到 H T T P响应流和 I I S缓冲区中,使其变成返为回页的一部分
A.5 Server对象
S e r v e r对象提供一系列对 A S P脚本有用的方法和属性,最显著的是 S e r v e r,C r e a t e O b j e c t方法,它能在当前页面或会话的环境下正确地实例化其他 C O M对象。也存在一些方法通过将非法字符转换为其等价的合法字符,以形成 U R L和 H T M L格式。其方法和属性分别如表 A - 11和表 A - 1 2所示。
表 A - 11 Server对象的属性属 性 说 明
S c r i p t Ti m e o u t 整型。有缺省值 9 0。设置或返回在服务器终止网页执行并报告错误前页面脚本执行的时间 (秒数 )。这样自动停止并从内存中删除可能锁住进程或等待资源可用的错误页面,防止服务器因错误页面超载。若网页打开需要较长时间则须增加其值表 A-12 Server对象的方法方 法 说 明
CreateObject (,i d e n t i f i e r” ) 创建一个由 i d e n t i f i e r标识的对象 (组件、应用程序或脚本对象 )实例,并返回一个可供代码使用的引用,可在虚拟应用程序的 g l o b a l,a s a页中创建会话级或应用程序级范围的对象。对象可以由其自身的 C l a s s I D (如,{ C L S I D,F D C 8 -,,,-
3 7 A 9 }” )或 P i o g I D (如,A D O D B,C o n n e c t i o n” )来标识
868计计 ASP 3 高级编程 下载
(续 )
方 法 说 明
E x e c u t e (,u r l” ) 停止当前页执行并将控制转移到,u r l”指定的页中。用户当前的环境 (如会话状态和当前的事务状态 )被送到新页中,新页完成以后,控制返回到原来的页面,执行 E x e c u t e方法调用后的语句
G e t L a s t E r r o r ( ) 返回一个 A S P E r r o r对象的引用,A S P E r r o r对象包含了在 A S P处理中出现的最近一个错误的详细情况,如在 a s p,d l l中。 A S P E r r o r揭示的信息包括文件名、行号和错误代码等
H T M L E n c o d e (,s t r i n g” ) 返回 s t r i n g的一个拷贝,但将所有非法的 H T M L字符,如‘ <’,’ >’,‘ &’
转化成等价的 H T M L实体,如 & l t ;,& g t ;,& a m p ;和 & q u o t ;等
M a pPa t h (,u r l” ) 返回在 u r l中指定的文件或资源的完整物理路径和文件名
Tr a n s f e r (,u r l” ) 停止执行当前页面,将控制转移到 u r l指定的页面。用户当前的环境 (如会话状态和当前的事务状态 )被送到新页中,与执行 E x e c u t e方法不同,新页完成以后,控制不返回到原来的页面,而是直接结束
U R L E n c o d e (,s t r i n g” ) 返回输入 s t r i n g的拷贝,但将在 U R L中的所有非法字符 (如’?’,’ &’和空格 )转化成等价的 U R L实体 (‘ % 3 F’,‘ % 2 6’和‘ +’ )
A.6 Session对象
S e s s i o n对象是在每个访问者第一次从网站请求 A S P页面时产生的,并且在其有效期内一直保持有效 (有效期由脚本决定 )。提供存储变量和对象引用的场所,这些引用指向会话存活期内访问者打开的网页。其集合、属性、方法和事件分别如表 A - 1 3、表 A - 1 4、表 A - 1 5和表 A - 1 6
所示。
表 A-13 Session对象的集合集 合 说 明
C o n t e n t s 存储于 S e s s i o n对象中的所有变量和值的一个集合,并且未用 <O B J E C T>元素定义。包括 Va r i a n t数组和 Va r i a n t类型对象实例的引用
S t a t i c O b j e c t s 用< O B J E C T >定义且存储于 S e s s i o n对象中的所有变量的一个集合表 A-14 Session对象的属性属 性 说 明
C o d e P a g e 整型,读/写,定义在浏览器中显示网页内容的代码页,代码页是字符集的数字值,不同区域和不同语言可能使用不同的代码页。例如,A N S I代码页
1 2 5 2用于美国英语和大多数欧洲语言,代码页 9 3 2用于日语汉字
L C I D 整型,读/写,定义发送到浏览器的网页的地域标识符。 LCID是唯一位置标识符的国际通用缩写。例如 2 0 5 7定义了当前位置使用的货币符号为“£”,L C I D
也可用在语句中,例如在 F o r m a t C u r r e n c y语句中,其中 L C I D是一个可选的变量,
网页的 LCID也可在 <%@...%>ASP处理指令中设置,并履盖会话的 LCID属性
S e s s i o n I D 长整型,只读,返回该会话的会话标识符,是在会话创建过程中由服务器产生的,在其父对象 A p p l i c a t i o n对象存活期内是唯一的。这样在一个新的应用程序开始可以重新利用他
Ti m e o u t 整型,读/写,定义 S e s s i o n对象的超时时间 (分钟 ),若用户在超时时间内未刷新或请求网页,则会话结束。其值可以根据需要在单独的页面中修改,缺省的时间是 2 0分钟,在高访问率的网站中可能要设置更短的时间附录 A ASP3.0的对象模型 计计 869下载表 A-15 Session对象的方法方 法 说 明
Contents.Remove ("v a r i a b l e _ n a m e" ) 从 S e s s i o n,C o n t e n t s集合中删除一个变量 v a r i a b l e _ n a m e
C o n t e n t s,R e m o v e A l l ( ) 从 Session Contents中删除所有变量
A b a n d o n ( ) 一旦页面完全执行,就结束当前的用户会话,并且取消当前的
S e s s i o n对象。即使在使用 A b a n d o n方法后,仍可以在本页访问当前会话的变量。但是用户若请求下一 A S P页,将会开始新的会话,并且对象使用定义在 g l o b a l,a s a文件中 (若存在 )的缺省值创建一个新的
S e s s i o n对象注:不能在运行期从 S e s s i o n,S t a t i c O b j e c t s中删除变量。
表 A-16 Session对象的事件事 件 说 明
O n S t a r t 在执行用户请求的第一个页面之前,当一个 A S P用户会话开始时触发。用于初始化变量、创建对象或运行其他代码
O n E n d 在 A S P会话结束时触发,这在用户的最后一个页面请求已超过预定的超时时间时产生。会话中所有的变量此事件结束后都将取消。同样可以在代码中显式结束 A S P用户的会话,这也将触发该事件
870计计 ASP 3 高级编程 下载