《ASP的内置对象及其.ppt》由会员分享,可在线阅读,更多相关《ASP的内置对象及其.ppt(64页珍藏版)》请在三一办公上搜索。
1、第5章 ASP的内置对象及其应用,ASP的内置对象,ASP的内置对象及简要说明,5.1 Response对象,Response对象的主要功能是将数据信息从服务器端传送数据至客户端浏览器。Response对象的方法包括Write、Redirect、Clear、End、Flush、BinaryWrite、AddHeader和AppendToLog等共8种。Response对象的属性包括Buffer、Content Type、AddHeader、Expires、ExpiresAbsolute、Status、CacheControl、和IsClientConnected等。Response对象的数据集
2、合为Cookie。,5.1.1 Response对象的方法,Response对象的常见方法,1.Write方法,Write 方法是Response对象最常用的方法,它可以把数据信息从服务器端发送到客户端,在客户端动态地显示信息。Write方法的基本语法为:Response.Write string参数string 可以是字符串或变量,其中数据或变量可以是任意数据类型。如果string参数是一个字符串时,一定要把它放在“”中。Write方法还有一种简化方式,语法如下:,例5-1 Response.Write 使用方法示例,Response.Write 使用方法示例,2.Redirect方法,Re
3、sponse对象的Redirect 方法可以使浏览器重新定位到另一个页面上。语法:Response.Redirect string 参数string为URL字符串,用于定位Web站点的位置,例如可以使用如下语句将浏览器定位到搜狐主页。,Redirect方法的应用,使用Redirect方法的优点在于,可以把比较复杂的网页分成多个子网页,甚至可以把这些子网页放在不同的目录中,然后由Redirect来判断需要跳到哪一个子网页。Response对象的Redirect 方法有些类似于HTML的超链接,但有不同于超链接。超链接需要用户用鼠标单击后才能跳转,而Redirect方法不需要用户操作而直接跳转。R
4、edirect方法在很多地方都有应用,如在线考试系统,当考试时间到后,不管考生是否做完都将系统直接引导到结束页面。,3.End方法,Response对象的End 方法主要作用是告诉浏览器数据已经全部下载完毕,停止处理ASP文件。语法:Response.End 例5-4 程序End.asp源代码,End 方法在进行程序调试时也是非常有用的,例如可以先对Response.End之前的语句进行调试,调试正确后在将Response.End往后放,再调试一部分,依次类推,直至调试完毕。,4.Clear方法,格式:Response.Clear说明:Clear方法的主要作用是清除缓冲区中的所有html输出,
5、但该方法只清除响应正文而不清除响应标题。可以用Clear方法处理错误情况。但是如果没有将Response.Buffer设置为True,则该方法将导致运行时错误。,其结果如图6-4所示。执行response.write now()时显示当前的日期和时间,但执行response.clear时日期和时间被清除,所以在页面上显示的是一随机数。,5.1.2 Response对象的属性,Response对象的常见属性,属性(1)Buffer。格式:Response.Buffer=True/False说明:Buffer 属性指示是否有缓冲页输出,值为True或False,默认值为False。当为True时,
6、页面输出到缓冲区;值为False时,页面直接输出到客户端浏览器。当缓冲页输出时,只有当前页的所有服务器脚本处理完毕或者调用了Flush 或End方法后,服务器才将响应发送给客户端浏览器,服务器将输出发送给客户端浏览器后就不能再设置Buffer属性。因此应该在.asp文件的第一行调用Response.Buffer。,(2)Charset。格式:Response.Charset(CharsetName)说明:Charset 属性将字符集名称附加到 Response 对象中 content-type 标题的后面,用来设置服务器响应给客户端的文件字符编码。对于不包含Response.Charset 属
7、性的ASP页,content-type 标题将为:content-type:text/html。我们可以在.asp文件中指定content-type标题,如:将产生以下结果:content-type:text/html;charset=gb2312,注意:无论字符串表示的字符集是否有效,该功能都会将其插入content-type 标题中。且如果某个页包含多个含有Response.Charset的标记,则每个Response.Charset 都将替代前一个CharsetName。这样,字符集将被设置为该页中Response.Charset的最后一个实例所指定的值。,(3)Expires。格式:R
8、esponse.Expires=number说明:Expires 属性指定了在浏览器上缓冲存储的页距过期还有多长时间。如果用户在某个页过期之前又回到此页,就会显示缓冲区中的页面。如果设置 response.expires=0,则可使缓存的页面立即过期。这是一个较实用的属性,当客户通过ASP的登录页面进入Web站点后,应该利用该属性使登录页面立即过期,以确保安全。,(4)ExpiresAbsolute。格式:Response.ExpiresAbsolute=date time说明:与 Expires 属性不同,ExpiresAbsolute 属性指定缓存于浏览器中的页面的确切到期日期和时间。在未
9、到期之前,若用户返回到该页,该缓存中的页面就会被显示。如果未指定时间,该主页在当天午夜到期;如果未指定日期,则该主页在脚本运行当天的指定时间到期。如指定了页面在2008 年 12 月 30日下午4点 30分15秒到期。,(5)status。格式:Response.Status=StatusDescription说明:服务器要响应的状态行的值。Response.Status=状态描述字符串,字符串可以为一个三位整数或一串说明文字组成,但必须放在之前。,【例6.5】,Response对象,5.2 Request 对象,Request对象的主要作用是接收客户端浏览器提交的数据,与Response对象
10、结合在一起使用实现客户端与服务器端的数据交换。,Request对象的数据集合,集合,1.Form 集合 Form 集合是Request对象最常用的数据集合。它用于获取用户填写在HTML表单里的信息,通常包括文本框、单选钮、复选框、多行文本、下拉列表、按钮等表单元素。其使用语法为:Request.Form(String)索引.计数参数String 是用来指定表单元素名称。在Form集合中的每个表单元素名称都对应于HTML中Form的输入内容。,语法进一步说明Request.Form(element)(index)|.Count 参数element 指定集合要检索的表格元素的名称。index 可选
11、参数,使用该参数可以访问某参数中多个值中的一个。它可以是 1 到 Request.Form(parameter).Count 之间的任意整数。Count 集合中元素的个数Form 集合按请求正文中参数的名称来索引。Request.Form(element)的值是请求正文中所有 element 值的数组。通过调用 Request.Form(element).Count 来确定参数中值的个数。如果参数未关联多个值,则计数为 1。如果找不到参数,计数为 0。要引用有多个值的表格元素中的单个值,必须指定 index 值。index 参数可以是从 1 到 Request.Form(element).Co
12、unt 中的任意数字。如果引用多个表格参数中的一个,而未指定 index 值,返回的数据将是以逗号分隔的字符串。,请填写你的爱好 足球 乒乓球 Next%,例5-7 Request实例1*您的名字是:Input Name=Name Size=28*您是一位:先生女士*您工作的是:*您的意见是:/HTML,Request实例:一个表单输入程序,被激活的程序,当用户填写完表单按提交按钮后,就激活了服务器端的一个表单处理程序,这个处理程序将利用Request对象Form 数据集合来获取用户填写在表单中的内容。这个被激活的程序的名字就填写在FORM中的ACTION属性中。,例 5-8Request实例
13、2谢谢的留言 您的工作是并且我们记下了您的意见是,2.QueryString 集合,QueryString 集合的功能就是从查询字符串(QueryString)中读取用户提交的数据。语法:Request.QueryString(变量名称)(索引.记数),例5-10密码验证密码验证 请输入姓名:请输入密码:,例5-10 QueryString 应用实例,密码响应代码&密码验证通过!&Response.Write d1Response.Write:欢迎您来到这里。Else Response.Write d1Response.Write:对不起,您的密码不正确End If%,例 5-11 文件log
14、in.asp的源代码,5.3Cookies集合,Cookies是一种送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在客户机与某个Web站点会话之间持久地保存数据。1写入Cookies 当用户访问网站(服务器)时,服务器会先到客户机中去获取Cookies信息,如果Cookies信息不存在,就在客户机上创建一个,如果有,就将其读取出来,修改后再写回客户机,覆盖原有的Cookies。语法:Response.Cookies(Cookies名称)(键名值).属性内容(数据)2读取Cookies 如果用户要读取Cookies的时候,必须使用Request对象的Cookies集合。语法:,语法R
15、esponse.Cookies(cookie)(key)|.attribute 参数cookie 指定要检索其值的 cookie。key 可选参数,用于从 cookie 字典中检索子关键字的值。attribe 指定 cookie 自身的有关信息。如:HasKeys 只读,指定 cookie 是否包含关键字。Expires:指定cookie的过期日期。若此项属性的设置未超过当前日期,则在任务结束后cookie 将到期。例如:Response.Cookies(CookieName).Expires=#January 01,2015#语句设置了cookie的使用到期时间为“2015年1月1日”;而
16、Response.Cookies(CookieName).Expires=Date+365 设定cookie的过期时间为“cookie的创建时间+365天”。可以通过包含一个 key 值来访问 cookie 字典的子关键字。如果访问 cookie 字典时未指定 key,则所有关键字都会作为单个查询字符串返回。例如,如果 MyCookie 有两个关键字,First 和 Second,而在调用 Request.Cookies 时并未指定其中任何一个关键字,那么将返回下列字符串。First=firstkeyvalue&Second=secondkeyvalue,例5-13data1=data1+10
17、0Response.Write 网页结束时,data1=&data1&Response.Cookies(data1)=data1%,Cookies应用实例:,如果刷新一次网页,第一次访问显示结果,5.3.3 Cookies的属性,Expires 这个属性可以给Cookies设置有效期,在这个期限内只要打开网页就可以调用被保存的Cookies,如果过了这个期限Cookies变自动被删除。例如,要删除一个名叫passtime的Cookies,只要将它的有效期设置为过去的日期即可。HasKeys:指定cookie是否包含关键字。Path:若被指定,则cookie将只发送到对该路径的请求中。如果未设置
18、该属性,则使用应用程序的路径。,【例6.12】创建一个cookie然后输出。,cookie,response及request例function getpath()dim path,pos path=request.ServerVariables(PATH_INFO)pos=InStrRev(path,/)getpath=left(path,pos-1)end function,Information of you:next%,该例首先创建了一个名叫Merry的cookie字典,并为这个字典的关键字赋值。而response.cookies(Merry).path=getpath语句调用了一个叫g
19、etpath的函数。Getpath函数中:path=request.ServerVariables(PATH_INFO)语句调用了request的ServerVariables集合。调用ServerVariables时,若传入“PATH_INFO”,则会返回网页的“虚拟路径文件名称”;pos=InStrRev(path,/)语句的作用是寻找符号“/”的位置。该程序运行结果如图7-6所示,图6-6 cookies示例,5.4 Server对象,Server 对象提供对服务上的方法和属性的访问。通过Server对象可以创建ActiveX组件。ActiveX组件是一些扩展ASP功能的对象。如通过需要
20、访问数据库时,需要创建ADO组件。,5.4 Server对象,1属性 ScriptTimeout Server对象只有一个属性:ScriptTimeout。该属性用于设定超时值,即在脚本运行超过指定时间后作超时处理。,5.4 Server对象,例子 1设置脚本的超时:例子 2取回 ScriptTimeout 属性的当前值:,5.4 Server对象,Server对象的方法,Mappath方法,Mappath方法用于将指定的相对的虚拟路径映射到服务器上相应的物理目录上。语法:Server.Mappath(string)参数string是指定虚拟路径的文字字符串。,CreateObject 方法,
21、Server 对象中的CreateObject方法是一个比较重要的方法,它用于创建已注册到服务器上的ActiveX组件的实例。语法:Server.CreateObject(progID)参数progID用于指定对象建立的类型,并且创建的组件可以是所有ActiveX能使用的内置组件。例如要建立一个组件用于处理数据库,在ASP文件中可以用如下的方法将创建的对象给一个变量:其中ADODB是ASP服务器中用于处理数据库的一个组件,当创建一个组件后,可以利用其提供的属性和方法,HTMLEncode方法,HTMLEncode允许对特定的字符串进行 HTML 编码。格式:Server.HTMLEncode(
22、string)说明:参数string为指定要编码的字符串。,这里就另起一行,说明代码被执行。”)%这里应该不会另起一行,也就是代码没有被执行了。”)%程序执行结果如图6-7所示。,URLEncode方法,URLEncode方法则是根据 URL 规则对字符串进行正确编码。格式:Server.URLEncode(string)说明:string为待转化的字符串。该方法返回一个字符串,该串是输入值string的拷贝,但是在URL中无效的所有字符,如?、&和空格等都被转换为等价的URL条目。例如:%Respones.Write(Server.URLEncode(“http:/”)%的运行结果为:htt
23、p%3A%2F%2Fwww%2Emicrosoft%2Ecom。,Execute方法,Execute 方法可以调度另外一个 ASP 文件执行。在执行被调用的.asp 文件后,控制权会返回原始的.asp 文件。语法Server.Execute(path),Execute方法,File1.asp:)Server.Execute(file2.asp)response.write(I am back in File 1!)%File2.asp:)%输出:I am in File 1!I am in File 2!I am back in File 1!,5.5 Application对象,Applic
24、ation对象用于存储和访问来自任意页面的变量,类似Session对象。不同之处在于所有的用户分享一个Application对象,而session对象和用户的关系是一一对应的。,5.5 Application对象,Application对象是一个应用程序级的对象,利用Application对象可以在所有用户间共享信息,并且可以在Web应用程序运行期间持久地保存数据。,Application对象的方法,Application对象只有两种方法,即Lock方法和UnLock方法。Lock,主要用于保证同一时刻只有一个用户在对Application对象进行操作,也就是说使用Lock方法可以防止其他用户
25、同时修改Application对象的属性,这样可以保证数据的一致性和完整性。当一个用户调用一次Lock方法后,如果完成任务,应该使用UnLock方法将其解开以便其他用户能够访问。UnLock方法通常与Lock方法同时出现,用于取消Lock方法的限制。,例5-17 This page has been visited times!,Application对象的方法 应用示例:,5.5.3 Application对象的事件,Application对象的事件,语法:,当你操作某个应用程序时,启动它,然后做些改变,随后关闭它。这个过程很像一次对话(Session)。计算机知道你是谁。也知道你在何 时启
26、动和关闭这个应用程序。但是在因特网上,问题出现了:web服务器不知道你是谁,也不知道你做什么,这是由于HTTP地址无法留存状态(信息)。ASP通过为每个用户创一个唯一的cookie解决了这个问题。cookie被发送到服务器,它包含了可识别用户的信息。这个接口被称做Session对象。,5.6 Session对象,在大多数情况下,利用Application对象在多用户间共享信息;而Session变量作为全局变量,用于在同一用户打开的所有页面中共享数据。Session对象用于存储关于某个用户会话(session)的信息,或者修改相关的设置。存储在session对象中的变量掌握着单一用户的信息,同时
27、这些信息对于页面中的所有页面都是可用的。,Session的属性,Session对象的使用语法为:Session.属性|方法,1创建和使用Session变量格式:Session(变量名)=变量值说明:Session对象可以存取变量,这些变量只属于某个特定的用户。下面我们将上一节的例7.16用session变量来代替application变量。【例7.18】%,Session对象,存储变量session(welcome)=欢迎光临!session(name)=轻舞飞扬session(endwords)=的主页输出变量response.write()response.write(session(we
28、lcome)response.write()response.write(这是)response.write(),response.write(session(name)response.write()response.write(session(endwords)response.write()%该例中定义的三个变量welcome、name、endwords只属于某一个特定用户。,Timeout 属性,语法Session.Timeout=nMinutes nMinutes 是session 在服务器终止它之前可保持空闲的分钟值。默认是 20 分钟。实例)response.write(Defa
29、ult Timeout is:&Session.Timeout)response.write()Session.Timeout=30response.write()response.write(Timeout is now:&Session.Timeout)response.write()%输出:Default Timeout is:20 Timeout is now:30,5.6.3 Session对象的事件,Session对象的事件,5.7 Global.asa文件应用,在建立ASP应用程序时,Global.asa文件起着核心的作用。Global.asa文件的扩展名asa是Active S
30、erver Applications的首字母缩略语,即活动服务器应用程序。使用Global.asa文件可以管理ASP应用中的Session对象和Application对象。它可包含可被ASP应用程序中每个页面访问的对象、变量以及方法的声明。Global.asa文件是ASP应用的根目录中的选择性文件,默认情况下位于C:Interpubwwwroot目录下。,5.7 Global.asa文件应用,Global.asa 文件可包含下列内容:Application事件 Session事件 声明 TypeLibrary声明#include命令 注释:Global.asa 文件须存放于ASP应用程序的根目
31、录中,且每个应用程序只能有一个Global.asa文件。,Sub Session_Onstart 插入当Session启动时要执行的脚本End SubSub Session_OnEnd 插入当Session结束时要执行的脚本End SubSub Applicataion_OnStart 插入当applicataion启动时要执行的脚本End SubSub Applicataion_OnEnd 插入当applicataion结束时要执行的脚本End Sub,例5-22 Global.asa文件样例,Global.asa文件:Sub Application_OnStart Application(visitors)=0 End Sub Sub Session_OnStart Application.Lock Application(visitors)=Application(visitors)+1 Application.UnLock End Sub Sub Session_OnEnd Application.Lock Application(visitors)=Application(visitors)-1 Application.UnLock End Sub,Thanks!,
链接地址:https://www.31ppt.com/p-6501817.html