1第四章ASP内置对象2学习目标Request对象的使用Response对象的使用Request对象的QueryString方法的使用Request对象的ServerVariables方法的使用利用Response对象的write方法输出信息及它的省略用法掌握Response对象的Redirect方法、End方法、Buffer属性利用Response对象的Cookies方法设置Cookies的值,利用Request对象的Cookies获取方法获取Cookies的值应用Session和Application对象保存和传递数据使用Server对象访问服务器学会使用Global.asa文件3ASP内置对象对象功能Request从客户端获取信息Response将数据信息输送给客户端Session存储单个客户的信息Application存放同一个应用程序的所有用户之间的共享信息Server创建COM对象和Scripting组件等4ResponseResponse.Write方法Response.Redirect方法Response.End方法Response输出缓冲区5%Response.writeHTMLResponse.writeBODYbgcolor=#CCCCFFResponse.write给您报时:brResponse.write现在的时间是:Response.writenowResponse.write/BODYResponse.write/HTML%Response对象的Write方法6Response对象的Write方法其语法格式为:Response.WriteVariant7说明向浏览器中传递的数据可以混合使用HTML标记.如果%和%之间只有一行Response.Write,则可以写成简略写法:%=“H1Response对象的Write方法/H1br”%如果要在浏览器显示的信息包含符号:%,则必须写为:%\,以免被认为ASP代码的结束.在服务器端解释执行的代码也必须放在%和%之间,HTML代码可直接写出.8Response.Redirect方法语法格式为:Response.RedirectpathResponse.RedirecttheURL9HTMLBODY%DimTmp1,Tmp2,PageNameTmp1=DatePart(d,Date())'取得今天是几号Tmp2=Tmp1Mod2SelectCaseTmp2Case0PageName=Even.aspCase1PageName=Odd.aspENDSelectResponse.RedirectPageName%BODYHTML10知识要点FORMMETHOD=POSTACTION=Response-4.asp:表单及处理程序;SELECTNAME=WebSiteSIZE=1:下拉菜单的Name属性值为“WebSite”;WebSiteURL=Request(WebSite):Request获取“WebSite”填写的信息;Response.Buffer=True:打开缓冲11Response.End方法%Response.Write这是第一句Response.EndResponse.Write这是第二句%Response.end结束程序的执行,将缓冲区内的数据输出到浏览器12Response输出缓冲区Response.Write方法的作用是直接输出到浏览器,若将输出暂时存放在缓冲区,待程序执行完毕或接受到指令Flush、end、clear,再将输出传送到浏览器,可通过设置Response.Buffer=True,以启用缓冲处理,将输出存放至缓冲区.13%@Language=VBScript%%OptionExplicit%%Response.Buffer=True%HTMLBODY%Response.WriteHelloResponse.ClearResponse.WriteWorld!%BODYHTMLResponse输出缓冲区144.2Request对象Request.Form:取得客户端在FORM表单中所输入的信息.Request.QueryString:从浏览器获取数据,其运行方法通常是在浏览器中直接赋值.15Request.Form%DimName,Mail,Age,A,Phone,Trouble,NumberName=Request.form(userName)Mail=Request(UserMail)A=Request(UserAge)SelectCaseACase“AGE1”:Age=未满20岁CaseAGE2:Age=20~29CaseAGE3:Age=30~39CaseAGE4:Age=40~49CaseAGE5:Age=50岁以上16Request对象EndSelectPhone=Request(UserPhone)Trouble=Request(UserTrouble)Trouble=Replace(Trouble,vbCrLf,BR)Number=Request(UserNumber)%HTMLH1手机使用意见调查表确认页/H1BODYBACKGROUND=mobil0.jpgPI%=Name%/I,你好!谢谢你填写意见调查表,你输入的数据如下:/P电子邮件地址:%=Mail%BR年龄:%=Age%BR曾经使用过的手机厂家:%=Phone%BR使用手机最常碰到的问题:%=Trouble%BR使用的网络:%=Number%/BODY/HTML17Request.QueryString%Dimname,agename=Request.QueryString(name)age=Request.QueryString(age)Response.Write您的姓名是:&name&,您的年龄是:&age%184.3Session对象Session对象用来记载特定客户的信息。即使该客户从一个网页跳转到另一个网页,该Session信息仍然存在,客户在该网站的任何一个网页都可以存取Session信息。特别需要强调的是:Session信息是对一个客户的,不同客户的信息用不同的session对象记载。打个比方:每一个人去游泳时,管理员会给他分配一个柜子存放他自己的衣物,当他离去后,管理员就会把柜子收回,重新分给其他人.这里Session就好比游泳池的柜子,每个人登录网站后就会给他分配一块空间用以存放与他有关的信息,当他离去后长时间不刷新界面,就收回空间再分发给其他人。19Session对象属性有两个:SessionID——存储用户的SessionID;Timeout——Session的有效期时长。方法只有一个:Abandon——清除Session对象。20Session事件有两个,必须和Global.asa结合使用:Session_OnStart——一个Session对象开始前,便调用该程序;Session_OnEnd——一个Session对象结束后,便调用该程序。21Session语法Session(Session名字)=变最或字符串信息例如:%Session(user_name)=hisname‘将hisname变量存入SessionSession(age)=23‘将数字信息存入SessionSession(“school”)=“北京大学”‘将字符串信息存入Session%22Session对象session-2-1.asp%Dimuser_name,ageuser_name=卓云age=22Session(user_name)=user_nameSession(age)=ageResponse.Write该程序仅用来存入Session值,请自己打开session-2-2.asp查看结果%23session-2-2.asp%Dimuser_nameuser_name=Session(user_name)Response.Writeuser_name&您好,欢迎您brResponse.Write您的年龄是&Session(age)%Session对象24session-4-1.asp%Dimuser_name(1)'声明一个数组user_name(0)=白芸user_name(1)=海霞Session(arry_user_name)=user_name'传入数组到Session对象Response.Write该程序仅用来存入Session数组,请自己打开4-2.asp查看结果%25session-4-2.asp%Dimuser_name'注意声明方法,不要加括号user_name=Session(arry_user_name)'返回Session数组元素Response.Writeuser_name(0)&您好,欢迎您brResponse.Writeuser_name(1)&您好,欢迎您br%26注意把一个数组保存到Session中是当做一个整体存取的。要修改或使用数组中某一元素值时,只能将Session对象赋给一个数组变量,然后在数组变量中操作。如%Session(“arty”)(4)=“李敏”%,给数组中的单个元素分别赋值是不允许的。27Session.Contents方法%Session(Username)=JohnSession(Usersex)=maleSession(Usercompany)=ABC%这里Session对象的Content集合一共有%=Session.Contents.Count%项。HR%FOREACHthingINSession.ContentsResponse.Write(BR&thing&=&Session.contents(thing))NEXT%HR%FORi=1toSession.Contents.CountResponse.Write(BR&Session.Contents(i))NEXT%28Session.Abandon清除Session对象Session对象的Abandon方法只是用来取消Session变量,并不取消Session对象本身,Session变量的清除必须是在本ASP网页执行后才进行的。29ApplicationApplication对象不受具体浏览器的控制,记录整个网站信息,从这个角度讲,它具有全局性。Application对象生命周期起始于Web服务器开始执行时,终止于Web服务器结束执行时。当超过20分钟没有人访问Web时,Application中保留的数据将会清空。30Application对象的方法Lock——锁定Application对象Unlock——解除锁定31Application对象的事件有两个,和Session一样,也必须和Global.asa结合使用:Application_onStart——该Application开始前,便调用该程序;Application_OnEnd——该Application结束后,便调用该程序。32Application-1.asp%ifSession(counter)=thencounter=Application(counter)+1Application(counter)=counter