第5章ASP内置对象课件

上传人:无*** 文档编号:241613120 上传时间:2024-07-09 格式:PPT 页数:53 大小:534.50KB
返回 下载 相关 举报
第5章ASP内置对象课件_第1页
第1页 / 共53页
第5章ASP内置对象课件_第2页
第2页 / 共53页
第5章ASP内置对象课件_第3页
第3页 / 共53页
点击查看更多>>
资源描述
第第5章章 ASP内置对象内置对象本章要点本章要点oResponse对象oRequest对象oServer对象oSession对象oApplication对象oASP在其内部提供了几个常用的内置对象,即Response、Request、Server、Session、Application等5个对象。o网站开发者可以在VBScript程序中嵌入这些对象,可以及时响应用户通过浏览器发送的HTTP请求并将客户所需要的信息传递给客户。同时又能很容易的收集用户通过浏览器上传的信息。o除此而外,还可以利用这些对象来灵活控制服务器、浏览器之间的状态信息从而实现某些特殊场合的需求如实现对用户状态的维持、控制浏览器对网页的显示方式等,本章将系统阐述这些对象的特性和用法。5.1 Response对象对象o用于控制和管理由服务器发送到浏览器的信息(HTML普通文本、控制信息、Cookies),其功能主要通过该对象的属性、方法和Cookies集合来实现的。5.1.1 Response对象属性对象属性o1Buffer属属性性:取值为True或False,可读写,用于指定ASP创建的输出是否缓存在IIS的缓冲区中,若该属性设置为True,将产生的输出存放在IIS缓冲区中,在整个页面的服务脚本执行完毕或调用Flush、End方法之后,才一次性将其发送给客户端浏览器。若该属性设置为False,则服务器在处理过程中不缓存输出而是直接将输出发送到客户端浏览器。请观察下列程序分别将Buffer属性设置为True和False后网页的显示方式。o2ContentType属性:属性:字符型,可读写,指定服务器响应的HTTP内容类型,告知客户端将要传输的文件类型,默认值为“text/html”属性值多媒体类型文件扩展名text/htmlHtml文档.html或.htmimage/gifGif格式图形文件.gifimage/jpegJPEG格式图形文件.jpeg或.jpgaudio/x-wavWav音频格式文件.wavaudio/x-pn-realaudioram音频格式文件.ramapplication/x-shockwave-flashFlash文件.swfapplication/vnd.ms-excelExcel文件格式.xlsvideo/mpegMPEG视频格式文件.mpeg或.mpgvideo/aviavi视频格式文件.avio3CharSet属属性性:字符型,可读写。服务器响应时,在创建的HTTPContent-Type报头中添加的字符集名称,如简体中文为“gb2312”。其设置方法为:Response.CharSet=“gb2312”该语句相当于o4Expires属属性性:数值型,可读写。指明页面有效的时间长度,以分钟为单位。o在有效期内用户请求相同的页面,将直接读取缓冲区中的内容;超过有效期的页面,即网页过期,缓冲区失效,网页会自动从服务器重新读取该页面的内容并显示。o对于要求信息即时传递的网页,或安全性要求较高的页面,可设置该属性的值为0,让其立即过期,使网页每次都必须从服务器上重新读取,以保证所得到的是最新的网页。o5IsClientConnected属性属性:布尔型,只读。返回客户是否仍然连接和下载页面的状态标志。如果用户断开连接或停止下载,我们就不用再浪费服务器的资源创建网页,因为缓冲区内容将被IIS丢弃。所以,对那些需要大量时间计算或资源使用较多的网页来说,值得在每一阶段都检查游览者是否已离线。o6Status属属性性:字符型,可读写。该属性用于传递服务器状态,客户端浏览器使用该信息确定服务器是如何处理请求的,通常由服务器自动设置,用户也可主动设置,以模拟错误的发生来限定一个HTTP响应的状态码。该属性的设置,必须在其他任何输出页面内容之前,否则将出错。5.1.2 Response对象方法对象方法o1AddHeader方法方法:方法可向HTTP响应添加一个新的HTTP报头和值。一旦头部被添加,就无法删除。在IIS4.0中,您调用此方法需要在任何的输出被送往浏览器之前。在IIS5.0中,您可以在脚本中的任何点调用AddHeader方法,只要它先于对response.Flush方法的调用。其语法:response.AddHeadername,valueo2Write方方法法:将指定的数据写入到当前的HTTP响应流中。常用该方法实现由服务期向客户端浏览器输出内容,其输出的内容可以包括文本、HTML标记符和脚本。该方法使用最多,其作用是将指定的表达式的值写到当前的HTTP网叶上输出。例如:%Response.Write“返回主页”%o3BinaryWrite方法:将指定的数据写入到当前的HTTP响应流中,而不进行字符转换。常用于从数据库中向客户端输出二进制数据,如图像或声音文件等。o4Redirect方方法法:使用户能够从一个ASP页面转到另一个页面。当调用Response.Redirect方法来重新定向新的页面时,实际上发送了一个特殊的HTTP报头,客户端浏览器读到此报头信息后,将按指定的URL载入一个新的页面。o5Flush方方法法:用于立即发送缓存区中的输出,若Response.Buffer不为true,会导致输出错误。o6End 方方法法:该方法可使Web服务器停止处理脚 本 并 返 回 当 前 的 处 理 结 果,如 果 此 时Response.Buffer为true,可调用Response.End可将缓存输出,而Response.End语句后面的内容将不在输出。o7clear 方法:方法:用语清除缓冲区中的所用的HTML输出的正文,但不清楚标题,当Response.Buffer设为true时,clear方法使用时才不会出错。该方法可处理错误情况。5.1.3 Response的的Cookies集合集合oCookie作为一种标记,由Web服务器嵌入客户端浏览器,以便标识用户或存储与用户相关的信息。下次同一浏览器请求网页时,将自动向Web服务器发送收到的Cookie。oWeb服务器接收到Cookie后,对其进行修改后可重新写回到客户端的浏览器。利用Response和Request对象的Cookies集合,可实现设置或获取Cookie的值。其中使用Response.Cookies的语法格式如下:Response.Cookies.(Cookies_Name)(Key)|Attribute=Cookies_Valueo各个参数的意义如下:o参数Cookies_Name:表示Cookie的名称。o可选参数Key:为Cookie指定关键字。通过给Cookie指定关键字,可以使Cookie拥有多个值,这种Cookie称为带索引的Cookie,相当于数组元素的下标。o可选参数Attribute:代表Cookie集合对象的属性,相关参数如表所示。名 称说 明Domain只写,字符型。若被指定,则Cookie将被发送到该域的请求中。缺省默认值为创建它的域。Expires只写,日期时间型,用于设置Cookie的有效期。若该值缺省,Cookie则只暂存在客户端的内存中,在浏览器关闭之前有效,浏览器关闭之后,该Cookie将自动清除。若指定该值,则Cookie将以文本文件的形式存储在用户的硬盘上,在指定的有效期内有效。HasKeys只读,布尔型。用于检测当前Cookie是否包含子键。值为True,表示有子键;值为False,表示无子键。Path只写,字符型。若被指定,则Cookie只发送到对该路径下所有页面的请求中;缺省默认值为该域的根目录路径,即“/”。Secure只写,布尔型。指定Cookies能否被用户读取。缺省默认值为True。验证用户口令字 以下实例借助Response的Buffer属性、End及Write方法,完成当用户输入的口令字不等于“123456”时,则服务器停止处理脚本,并在客户端浏览器中输出“密码错误!”字样。请输入口令字:%dim pwd response.buffer=true 设置服务器缓冲为true pwd=request.form(password)if pwd123456 then response.write(密码错误)response.end 使Web服务器停止处理脚本 end if 否则密码正确,执行以下语句 response.write(你输入的口令为:&pwd)%输出数据oResponse.Write()的功能是向浏览器输出信息,与VBScript中的document.write()的功能相近。o但是必须了解其区别:Response是ASP的对象,输出的方式是从服务器端向客户端的浏览器输出。理解服务器端执行理解服务器端执行o所有内的代码都被IIS解释执行,IIS解释执行后把程序的结果发送给浏览器。内的代码都是由浏览器解释执行的,如程序4-02.asp所示。o程序的两段代码基本一样,都是取时间,但是内的代码是ASP程序,取的是服务器端时间 简写形式简写形式o可以看出内的程序只有结果,而标记可以看到程序。因为内的程序是由服务器IIS执行的,而中的程序是客户端浏览器解释执行的。oResponse.Write使用非常频繁,可将它简化为“=”。网页转向o访问一个ASP页面,有时并不是出现需要的网页,而是转到另外一个页面上去了。Response中有一个Redirect方法的功能是实现转向。停止输出o在程序的执行过程中,如果遇到了Response.End()语句,下面所有的输出将不再被执行。o当执行“Response.End()”语句以后,所有输出将停止。使用缓冲区oResponse对象的Buffer属性用来设置是否将页面先输出到缓冲区。它的取值为True或者False,在WindowsNT的服务器环境下,默认值是False。oWindows2000/2003服务器环境下,默认值是True。o如果设置值是True表示先输出到缓冲区,然后再从缓冲区输出到客户端浏览器,这样有利于加快执行的速度。如果设置值是False表示直接将信息输出到客户端的浏览器。语法是:oResponse.Buffer=True或者False5.2 Request对象对象oRequest对象将客户端数据保存到内置的几个集合中,通过访问这些集合,便可获得表单所提交的数据、Cookie以及服务器环境变量的值、客户端有关信息等。5.2.1 Request 对象的集合对象的集合oRequest对象主要用于获取客户端数据,其功能主要通过内置的5个集合来实现,这5个集合的名称以及功能如表所示。oRequest对象的集合可采用如下格式进行访问:Request.集合名(“成员名”),例如:Request.Form(“username”)该语句将在Form集合中查询一个叫username的成员,并返回其值。集集 合合描描 述述Form包含了用于从使用 POST 方法的表单取回表单元素的值QueryString包含了 HTTP 查询字符串中所有的变量值Cookies包含了 HTTP 请求中发送的所有 cookie 值ClientCertificate包含了存储于客户证书中的域值(field values)ServerVariables包含了所有的服务器变量值数据和读取数据的对应关系提 交 方 式读 取 方 式Method=PostRequest.Form()Method=GetRequest.QueryString()5.2.2 Form集合集合o该集合对象用于获取Post方法所提交的表单数据,其用法为:Retvalue=Request.Form|(“Obj_Name”)|(Index)|.Counto各个参数的意义如下:oForm:指明是Form集合,其成员是表单所提交的界面对象oObj_Name:表单控件的名称oIndex:数字序列号oCount:计数5.2.3 QueryString集合集合o该集合用于获得Get方法所提交的表单数据,其用法与Form集合相同,具体格式为:Retdata=Request.QueryString(“Obj_Name”)|(Index)|.CountoQueryString集合可获得指定界面对象提交的数据,数据值的传递可用两种不同方式来进行。o1通过直接在网址之后添加“?变量名1=值1&变量名2=值2”格式添加参数,可实现向网页传递值,在网页中,利用Request.QueryString(“Obj_Name”)的形式,即可获得指定变量所传递的值。o2表单中运用Get方法提交数据,该方法仅适合于提交数据量少的场合。5.2.4 Cookies集合集合oRequest对象的Cookies集合用于获取指定Cookie的值,其用法为:ovariablename=Request.Cookies(name)(key)|.attributeo其参数含义与Response.Cookies集合中的相关参数一致,5.2.5 ServerVariables集合集合oRequest.ServerVariables集合中记录了服务器与客户端的环境信息如:浏览器信息、客户端的IP地址等。利用这些信息可以控制浏览器对服务器的访问以及服务器对浏览器的响应。它主要是通过HTTP头信息来进行传输。其用法是:Retvalue=Request.ServerVariables(“环境变量名”)获得服务器信息o通过Request对象的ServerVariables方法得到一些服务器端的信息,比如当前ASP的文件名、客户端的IP地址等。o利用该程序可以将所有链接过本网站用户的IP地址记录下来获得响应的总数据大小o利用属性TotalBytes可以得到客户端响应数据字节的大小。基本语法是:nRequest.TotalBytes获取二进制数据o可以利用二进制方式取得获取客户端用Post方式提交的数据,语法是:nRequest.BinaryRead(字节大小)o一般BinaryRead方法和TotalBytes属性结合,用来读取提交的所有二进制数据。Request对象对象:从客户端获取用户信息Response对象:对象:将数据送出到客户端例如:注册客户机服务器反馈给用户信息传送所填写的个人信息执行处理逻辑:(接受客户端传来的各参数:张三11111男音乐 计算机)request从客户端获取数据response将数据送到客户端客户机服务器问题的引入注册页面登录页面主页问题:用户从一个页面转到另一个页面时,在下一页面中如何记载用户的信息?根据以往的经验:利用超链接。将信息附在超链接后面以生成查询字符串,通过检索request对象的querystring集合,实现信息的传递(从一页传到另一页)向客户端浏览器写入Cookie。利用response对象的cookies来保存信息到本地硬盘,再用request对象的cookies来读取信息。目标:l对Session对象的理解lSession对象的属性、方法两个属性:SessionID:存储用户的SessionID信息。Timeout:Session 的有效期。一个方法:Abandon:清除 Session 对象。lSession对象的应用特定用户会话使用的Session对象 l用来记载特定用户的信息,实现多个页面信息共享。Session信息页面1页面2页面3示意图:对对Session的理解的理解启动Session产生SessionID送回SessionID将SessionID存放到Cookies中客户机服务器磁盘lSession 工作原理再送出HTTP请求到客户端检查SessionID客户机服务器磁盘lSession 工作原理工作原理发送SessionID信息返回SessionID对应的信息客户机服务器磁盘返回lSession 工作原理 当用户开始访问某个网页时,服务器会自动产生一个Session ID,并把这个Session ID送给客户端浏览器,浏览器把这个Session ID存放在Cookies内。当用户再次向服务器送出HTTP请求时,ASP会去检查申请表头的Session ID,并返回该Session ID对应的Session信息。l实例:输出SessionID的值到浏览器(使用 SessionID 属性)1.asp:下一页2.asp:思考:1.运行1.asp页面,再点击链接进入2.asp页面,浏览器分别输出什么?2.如果在1.asp页面刷新一下,浏览器输出什么?为什么?3.关闭所有的浏览器窗口后,再运行2.asp页面,浏览器输出什么?为什么?解答:1.运行1.asp时,浏览器输出:1031426129 点击“下一页”链接,运行2.asp时,浏览器仍输出:1031426129 2.浏览器仍输出:1031426129,可以理解为一个窗口一个用户。3.1031426130 因为启动了一个新的会话。此例说明:1.Session对象的建立时间。当一个用户打开一个应用程序的某页时,就会建立一个Session对象,可以保存该用户的信息。2.会话从用户启动IE访问某个页面开始,意味着一个会话的开始,直到关闭IE窗口为止,意味着一个会话的结束。(在此过程中,无论用户是在本窗口内打开一个新的页面,还是在子窗口内打开一个新的页面,都还是同一个Session对象。)但如果用户又从桌面上打开了另外一个浏览器窗口,也访问这个应用程序中的某个页面,这时就建立了两个独立的Session对象,就像两个用户一样。Session对象的两个属性:(1)SessionID属性 SessionID属性用于返回用户的会话标识,即前面提到的由服务器生成的在会话期间内惟一标识用户的一个字符串。每次用户产生一个新的请求,请求服务器的ASP页面时,服务器都会验证这个用户的SessionID。SessionID的值是一行9位的数字。(2)Timeout属性session对象的有效期单位:分钟 系统默认值:20分钟如果用户在有效期内一直没有和服务器交互,那么超过规定的时间,该session对象就失效,保存在Session对象中的信息也就失效了。p经常不断地学习,你就什么都知道。你知道得越多,你就越有力量pStudyConstantly,AndYouWillKnowEverything.TheMoreYouKnow,TheMorePowerfulYouWillBe写在最后感谢聆听不足之处请大家批评指导Please Criticize And Guide The Shortcomings结束语讲师:XXXXXX XX年XX月XX日
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!