ASP教程3--ASP五大对象.ppt_第1页
ASP教程3--ASP五大对象.ppt_第2页
ASP教程3--ASP五大对象.ppt_第3页
ASP教程3--ASP五大对象.ppt_第4页
ASP教程3--ASP五大对象.ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ASP五大对象,2007.3.30,声明,所有的asp代码必须写在之间如果想在代码间写入代码,务必用response.write方法输出在代码中,想注释某句代码要用号想把代码写的块的尽量想成块,一个网页内部分散的代码块越多,运行速度就越慢代码必须在里设置了运行环境才能正常运行,否则不能正常执行代码,会出现错误,或错误所有的代码必须在英文状态下编辑,不能录入汉字在代码里声明变量一定要合法,不要与保留字重名脚本语言只是网页中的一部分,大部分为代码,只有在变量的代码我们才会用到代码,那为什么要学对象,对象的作用又是如何的?,其实ASP所提供的这些可在脚本中使用的内建对象,使用户更容易收集通过浏览器请求发送的信息、响应浏览器以及存储用户信息,从而使对象开发者摆脱了很多烦琐的工作。,ASP中的五个基本对象,Request对象提供有关访问者的信息Response对象用于建立对访问者的响应的方法和属性Session对象保留一个特定访问者信息的方法和属性Application对象处理被看成是一个应用程序的一组Web页面的属性Server对象处理有关创建服务器组件和服务器设置的问题,Request对象功能,在服务器端接受并得到从客户端浏览器提交或上传的信息。Request对象可以访问任何基于HTTP请求传递的所有信息,包括从Form表单用POST方法或GET方法传递的参数、cookie等。,Request对象的集合,Form集合QueryString集合ServerVariables集合Cookies集合Clientcertificate集合,Form集合,request.form(“name”)这是接受上一页的信息时,常会用到的一种接受方式。Request是ASP对象,form则是Request对象所包含的对象集合,name也就是上一页表单中的某个文本框、密码框,或者隐藏域等的名称。要求上一页Form表单的递交方法一定要为Post方法。即表单提交的方式method=“post”注:request.form就是要提取表单中所填写的信息,可以把值赋给一个变量此时得到的值是表单元素的value值,S1:test1.html(本页是HTML的,主要提供输入信息的平台,以将信息提交到再下面的ASP页进行接受处理)用户名:密码:注意按扭的type必须为submit,只有提交按扭才会有提交的功能,reset,button是无此功能的且提交的页面表单的actionsubmit1.asp,methodpost,submit1.asp用户名:pwd:通过IIS进行HTTP协议的页面调试,你会发现两个页面进行了关联:test1.html中动态输入的username和pwd,在submit1.asp也则进行相应的动态显示。这就是接收、提取并显示信息的全过程。,改进的submit1.asp”next%采用了for循环语句,将上页所有的form标签信息进行接受、并显示。这在上表单页有很多项目时,非常快捷地出来结果。首先仍然是request.form,只是后面的(“username)(“pwd)成了变量aa,通过for循环对该form集合进行遍历提取,这是一种不同于机械地“有几个就提取几个”的编程思想.,编辑技巧,在提取表单元素值的时候,我们最好先将它赋给一个变量,这样以后再调用这个元素值的时候不用最去服务器上提取直接用变量就可以了,加快了代码运行的速度在提取表单元素值的时候,我们最好指定提取哪个元素的值,尽量不用遍历提取,这样可以加快代码执行的速度在制作表单时,给每个表单命名应该尽量起个有意义的名字最好跟要赋值的变量的名字一致,这样可以避免出错当我们把表单元素的所有内容作为一张表单来处理的时候,所有的表单元素必须放在同一个表单内部初学者很容易弄混同一个网页要提取不同的表单的时候,要创建多个表单每个表单内部都有自己的提交按忸,提交按扭只对本表单内容的元素有提交的功能,跟其它表单没有关系提交按扭想做成图片,可以用图像域来代替提交按扭,Querystring集合,request.querystring(“name”)这是接受上一页的信息时,常会用到的一种接受方式。Request是ASP对象,form则是Request对象所包含的对象集合,name也就是上一页表单中的某个文本框、密码框,或者隐藏域等的名称。要求上一页Form表单的递交方法一定要为get方法。即表单提交的方式method=“get”注:request.querystring就是要提取表单中所填写的信息,可以把值赋给一个变量此时得到的值是表单元素的value值,Form与querystring区别,表单提交方式不同Form为post方式,querystring为get方式提取的范围不一样Form只能提取表单内部元素的值Querystring还可以提取url地址栏里参数的值一般,当我们提取大量数据的时候用form方式,这种方式会将我们所有的数量打成一个包发给服务器,querystring方式,会将我们所有的元素值以地址栏里参数的方式用http头来传给服务器不安全综上所述,我们一般用form集合去提取表单中的数量Querystring用在一些特殊的情况下见例子分页效果,Servervariables集合,ServerVariables集合就是服务器的环境变量,该变量包含的内容比较多,我们同样先采用for循环进行遍历查看下。server1.asp,常用的几个变量值,http_accept_language(浏览语言):http_accept_languageCONTENT_LENGTH(客户端发出内容的长度):CONTENT_LENGTHCONTENT_TYPE(内容的数据类型。如“text/html”。同附加信息的查询一起使用,如HTTP查询GET、POST和PUT):CONTENT_TYPELOCAL_ADDR(返回接受请求的服务器地址。如果在绑定多个IP地址的多宿主机器上查找请求所使用的地址时,这条变量非常重要):LOCAL_ADDRREMOTE_ADDR(发出请求的远程主机client的IP地址):REMOTE_ADDRSERVER_NAME(出现在自引用URL中的服务器主机名、DNS化名或IP地址):SERVER_NAMESCRIPT_NAME(主机名后面的虚拟地址):SCRIPT_NAMELOGON_USER(用户登录WindowsNT的帐号):LOGON_USERSERVER_PORT(发送请求的端口号):SERVER_PORT根据以上的SERVER_NAME是提取的服务器主机名,SCRIPT_NAME是提取的虚拟地址,则两者的结合再加上http:/是不是就是个完整的网址呢。,Cooies集合,我们放在后面去讲解,Request对象的属性,TotalBytes当一个页面被请求时发送的字节数(参数部分的字节数、还有值的字节数),Request对象的方法,BinaryRead以二进制的方式提取表单的数据,主要是提取图片文件等类型的数据很少用到到现在为止我们就把request对象的几大集合属性和方法讲完了重点掌握form,quesrystring,severvariables集合,其它作为参考作业:做一个注册会员的表单信息,Response对象,通过对Request对象的学习,可以了解到,Request对象是服务器端用来获取客户端的信息的。但作为服务器和客户端进行交互,是不是还缺少服务器端向客户端发送信息呢?对象Response正是担任此责任负责将信息传递给用户的对象就是Response了,它可动态地响应客户端的请求,并将动态生成的响应结果返回给客户端浏览器。,Response对象的方法,AppendToLog:这个方法为你提供了一个向NT日志写入信息的途径Clear:清空缓冲区End:在ASP中显示终止某个代码处理Flush:将缓冲区中的内容发送给浏览器Redirect:将浏览器发送到响应的的不同页面Write:向浏览器中发送文本信息,Response.write方法,将指定的字符串写到当前的HTTP输出。response.write后面为所显示的信息,可以用括号包含,也可以直接书写(注意和response.write之间有空格)。书写的字符串信息或者HTML代码相关,用引号包含;而ASP本身的函数或变量则不需要,直接用即可。并且无论字符串信息、HTML代码、函数还是变量之间进行连接都是采用&号(针对vbscript)。具体实例如下:,S1.只为字符加引号hello!%带html加引号如果输出的为函数只直输出”%如果即有变量又有字符中间必须用&号隔开,很好记,也很容易出错,Response.end,这是Response常用的一种方法,使Web服务器停止处理脚本并返回当前结果,文件中剩余的内容将不被处理。主要放在一页多功能的ASP页中,为让程序运行到此,抑或往下的程序没必要再执行显示s2.end.asp,Response.clear,该方法主要作用是清除缓冲区中的所有HTML输出,但该方法只清除响应正文而不清除响应标题。该方法和end方法似相反,end是到此结束返回上面的结果,而clear却是清除上面的执行,然后只返回下面的结果。s3.clear.asp,Response.redirect,Redirect方法是让浏览器立即重定向到程序指定的URL地址。这在根据客户的不同响应,为不同的客户指定不同的页面,或根据不同的情况指定不同的页面时,显得非常重要。该方法是立即生效的,在其后的脚本都不执行。s5.redirect.asp当执行到这一句时会结束后面所有的操作,去执行后面的网页作业:登陆信息,当用户名和密码都正确的时候转向right.html网页,错误转向wrong.html除引之外response对象还有好多方法,我们就介绍一些其它不常用,Response对象的属性,Buffer:布尔属性,决定ASP的输出是即时的还是成批的CacheControl:用于指示代理的高速缓存形式Charset:用于附加在内容类型头标前来设置字符类型ContentType:指定内容类型头标,声明返回值类型Expires:高速缓存内页面的有效时间ExpiresAbsolute:指定高速缓存内页面的有效时间IsClientConnected:返回客户是否还与站点相连Status:返回到浏览器的状态行头标,Response.buffer,比较重要的一个,值为trueorfalse。该属性指示是否缓冲页输出。引用:当缓冲页输出时,只有当前页的所有服务器脚本处理完毕或者调用了Flush或End方法后,服务器才将响应发送给客户端浏览器,服务器将输出发送给客户端浏览器后就不能再设置Buffer属性。因此应该在.asp文件的第一行调用Response.Buffer。Response.buffer=true/false默认为true,Response.expires,该属性指定了在浏览器上缓冲存储的页,距过期还有多少时间。如果用户在某个页过期之前又回到此页,就会显示缓冲区中的页面。但若设置response.expires=0,则可使缓存的页面立即过期。这是一个较实用的属性,当客户通过ASP的登陆页面进入WEB站点后,应该利用该属性使登陆页面立即过期,以确保安全。引用一个经典的例子。expires.asp,Cookis集合,Cookie其实是一个标签,经常可能听到的中文翻译:小舔饼。当你访问一个需要唯一标识你的站址的WEB站点时,它会在你的硬盘上留下一个标记,下一次你访问同一个站点时,站点的页面会查找这个标记。每个WEB站点都有自己的标记,标记的内容可以随时读取,但只能由该站点的页面完成。每个站点的Cookie与其他所有站点的Cookie存在同一文件夹中的不同文件内(你可以在win98的Windows目录下的Cookie文件夹中找到它们,而win2k则在DocumentsandSettings文件夹下特定用户的cookies文件夹中)。一个Cookie就是一个唯一标识客户的标记,Cookie可以包含在一个对话期或几个对话期之间某个WEB站点的所有页面共享的信息,使用Cookie还可以在页面之间交换信息。这项功能经常被使用在要求认证客户密码以及电子公告板、WEB聊天室等ASP程序中。尽管现在听起来cookie没有什么激动人心的,但实际上利用它,你能实现许多有意义的功能!比如说:你可以在站点上放置一个调查问答表,询问访问者最喜欢的颜色和字体,然后根据这些定制用户的web界面。并且,你还可以保存访问者的登录密码,这样,当访问者再次访问这个站点时,不用再输入密码进行登录。当然,cookie也有一些不足。首先,由于利用cookie的功能可以编程实现一些不良企图,所以大多数的浏览器中都有安全设定,其中可以设置是否允许或者接受cookie(IE浏览器中“工具”-“Internet选项.”-“安全”-“自定义级别”-“Cookie的使用”;Netscape浏览器中“工具”-“Cookie管理器”-“管理贮存的Cookie”即可),因此这就不能保证随时能使用cookie。再者,访问者可能有意或者无意地删除cookie。当访问者的机器遇到“蓝屏”死机时,或者重新格式化硬盘、安装系统后,原来保存的cookie将全部丢失。最后一点,有一些最初始的浏览器并不能支持cookie。,怎样利用cooklie?有2种使用cookie的基本方式:1、将cookie写入访问者的计算机(使用Response命令)2、从访问者的计算机中取回cookie(使用Request命令)创建cookie的基本语法:response.cookies(“cookie”)这里的cookie是指定cookies变量的名称。Domain若被指定,则cookie将被发送到对该域的请求中去。域属性表明cookie由哪个网站产生或者读取,默认情况下,cookie的域属性设置为产生它的网站,但你也可以根据需要改变它。(Response.Cookies(CookieName).Domain=)Path为一路径属性,该属性可以实现更多的安全要求,通过设置网站上精确的路径,就能限制cookie的使用范围。如果未设置该属性,则使用应用程序的路径。(Response.Cookies(CookieName).Path=/maindir/subdir/path)Expires指定cookie的过期日期。为了在会话结束后将cookie存储在客户端磁盘上,或在许多时候,我们希望能更长时间地在访问者的计算机上保存cookie。必须设置该日期。若此项属性的设置未超过当前日期,则在任务结束后cookie将到期。后面的代码,就可以设置cookie的使用到期时间为“2010年1月1日”:Response.Cookies(CookieName).Expires=#January01,2010#后面的代码,将设定cookie的过期时间为“cookie的创建时间365天”:Response.Cookies(CookieName).Expires=Date+365但最好不要随便写Response.Cookies(“CookieName”).Expires=Date,这样页面之间的调用时值会为空。读取cookie的基本语法:Request.Cookies(cookie),Session对象,该对象在ASP使用中占相当大的比例。由于网页是一种无状态程序,无法得知用户浏览状态。在ASP中,通过Session对象来记录使用者私有的数据变量,以作为用户再次对服务器提出要求时做确认,用户在程序的Web页面之间跳转时,存在Session对象中的变量将不会消失。这些真的是很重要的功能,尤其是有会员的系统必须要用到的。像是会员的登入账号、时间、状态以及许许多多该记录的实时数据(如购物系统记录使用者的购物篮内的商品),这些信息属于各使用者私人所需要,通常开发者都是使用Session记录处理。在ASP中的Session是使用Cookies构成,服务器将所有的Session内记录的数据,以Cookies的方式传至用户的浏览器。通常一般浏览器会将这些Cookies存起来,每当使用者点选连结,再次与服务器做联机时,浏览器就会把这些Cookies传回Server供做处理:这即是Session的运作原理。由此可知会话状态Session仅在支持cookie的浏览器中保留,如果客户关闭了Cookie选项Session也就不能发挥作用了。,SessionID属性返回用户的会话标识。在创建会话时,服务器会为每一个会话生成一个单独的标识,会话标识以长整形数据类型返回。在很多情况下SessionID可以用于WEB页面注册统计。利用该属性可以解决一种对用户的控制问题。该问题的主要功能就是,针对某个网站的一个模块,当一个会员登录后正在看此模块时,另一个人用同样的会员名登录,就不能浏览这个模块:也就是说一个会员名同时只能一个人浏览此模块。通过用会员名(假设为UserID,唯一)和SessionID来实现了控制。当会员登录时,给这个会员一个Session记录登录状态如:Session(Status)=Logged,同时把这个会员的Session.SessionID写入数据库。当他要浏览此模块时,先判断其是否登录,若已经登录再判断它的SessionID是否与数据库记录的相同,如果不同则不能访问。这样,当另一个用户用相同的会员名登录时,那么数据库中记录的就是新的SessionID,前者访问此模块时就不能通过检查。这就实现了一个会员名同时只能一个人浏览某个模块。这个功能在一些收费网站有很有特别作用,它防止了一个会员名给多个人浏览的问题,为公司保障了利益。是单独生成的唯一ID标识,可刷新调试。,Session.SessionID,Session.TimeOut,该属性设置的Session的最大间隔时间。间隔时间是指客户器端从最近一次向Web服务器提出要求,到下一次向Web服务器提出要求的时间。可以理解为:如果用户在该超时时限之内不刷新或请求网页,则该会话将终止。Timeout属性是以分钟为单位,为该应用程序的Session对象指定超时时限的,一般默认为20分钟。这在网吧等公共场所,登录个人信息页而忘记关闭窗口时,显得比较重要(至少可以把时间设短些)。,Session.Abandon,该方法是Session对象的唯一方法,可以清除Session对象,用来消除用户的Session对象并释放其所占的资源。当然你如果没有明确调用Abandon方法,一旦会话超时,服务器也会将删除这些对象并释放资源。,Session_OnStar,Session_OnStart属于Session对象的一类事件。它是在服务器创建新会话时发生的。服务器在执行请求的页之前先处理该脚本。Session_OnStart事件是设置会话期变量的最佳时机,因为在访问任何页之前都会先设置它们。对象的例程每一次启动时触发Session_OnStart事件,然后运行Session_Onstart事件的处理过程。也就是说,当服务器接收到应用程序中的URL的HTTP请求时,触发此事件,并建立一个Session对象。当然说到Session_OnStart事件就不能不谈到一个文件Global.asa(P.S:我打算把该文件和Chat程序放在一起说的,所以现在先不作过多解释)具体用法先透露,写在Global.asa文件内部.SubSession_OnStart.EndSub.,Session_OnEnd,一看也就知道是Session对象的另一类事件了。当调用Session.Abandon方法时或者在TimeOut的时间内没有刷新,这会触发Session_OnEnd事件,然后执行里面的脚本。同样具体用法在后面将写的Global.asa文件专题中详细介绍到,简单语法如下:.SubSession_OnEnd.EndSub.,Application对象,在Web应用程序中,当一个用户访问该应用时,Session类型的变量可以供这个用户在该Web应用的所有页面中共享数据;如果另一个用户也同时访问该Web应用,他也拥有自己的Session变量,但两个用户之间无法通过Session变量共享信息,而Application类型的变量则可以实现站点多个用户之间在所有页面中共享信息。可以理解Session是局部变量,而Application则为全局变量。在同一虚拟目录及其子目录下的所有.asp文件构成了ASP应用程序。我们非但可以使用Application对象,在给定的应用程序的所有用户之间共享信息,并在服务器运行期间持久的保存数据。而且,Application对象还有控制访问应用层数据的方法和可用于在应用程序启动和停止时触发过程的事件。,Application.Lock/unlock,Lock方法是禁止其他用户修改Application对象的属性,以确保在同一时刻仅有一个客户可修改和存取Application变量。如果用户没有明确调用Unlock方法,则服务器将会在.asp文件结束或超时后即解除对Application对象的锁定与Lock方法相反,Unlock方法是允许其他用户修改Application对象的属性。当然需要注意的是:记数要确保服务器不被重启,因为所以的访问是数值是建立在页面之上的,并未进行保存成文件或保存到数据库这样的处理。一般当服务器重新启动就会触发Application的事件了,S1.num.asp你是本页的第位访问者。注:每刷新一次都会自动加s2.vnum.asp你是本页的第位访问者。,Global.asa文件,首先.asa是文件后缀名,它是ActiveServerApplication的首字母缩写。Global.asa文件可以管理在ASP应用中两个非常苛刻的对象:Application、Session。它其实是一个可选文件,程序编写者可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象。该文件的内容不是用来给用户显示的,而是用来存储事件信息和由应用程序全局使用的对象。该文件必须存放在应用程序的根目录内。每个应用程序只能有一个Global.asa文件。关于Global.asa文件最常见的错误概念是它能为一般的使用的函数和子程序用作书库。Global.asa文件仅能用于创建对象的引用和俘获启动,以及结束Application对象和Session对象。Global.asa文件主要基于会话级事件被访问,在以下三种情况下被调用:1,当Application_OnStart或Application_OnEnd事件被触发。2,当Session_OnStart或Session_OnEnd事件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论