




已阅读5页,还剩116页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ASP动态网页设计技术,项目4,ASP内置对象及交互技术,av72电影,图书馆学生用书信息调查网页。包、剪、锤游戏程序。显示战报的包、剪、锤游戏程序。聊天室程序。,本章任务:,ASP对象模型。表单及控件对象。Response对象及其应用。Request对象及其应用。Application对象及其应用。Session对象及其应用。Server对象及其应用。,本章要点:,在ASP引擎中提供了七大内置对象,即Request对象、Response对象、Server对象、Application对象、Session对象、ASPError对象和ObjectContext对象,其中最为常用的是前5种。,4.1ASP对象模型,1Request对象该对象是ASP的请求对象,它所包含的信息是客户端浏览器提出的请求。通过利用Request对象的GET或POST方法,可以接收用户发送给服务器的信息和请求,同时,还可以发送二进制形式的数据到服务器。客户端发送的所有信息和请求均被封装在Request对象中。例如在一个用户登录网页中,当用户输入了用户名和密码后,按登录按钮,用户输入的用户名和密码将发送给服务器处理,服务器通过Request对象就可以获取用户输入的用户名和密码信息。,4.1ASP对象模型,2Server对象Server对象是ASP七大内置对象之中与服务器关系最为密切的一个对象,它允许用户存取Web服务器提供的功能。例如,使用Server对象的CreateObject方法可以创建服务器组件的实例。使用Server对象的MapPath可以将文件在服务器上的虚拟路径转换为物理路径。URLEncode方法将URL编码规则,应用到指定的字符串。,4.1ASP对象模型,ScriptTimeout属性用它来设置在结束请求前,服务器处理ASP程序的时间。以秒数为单位,系统默认的时间为90秒。,3Response对象该对象主要用于响应用户操作,可以通过多种方式将服务器端数据发送到客户端,如客户端屏幕显示、用户浏览页面的重定向以及在客户端创建cookies等。,4.1ASP对象模型,Cookie就是服务器暂存放在你计算机上的一笔资料,好让服务器用来辨认你的计算机。你在浏览网站的时候,WEB服务器会先送一小小资料放在你的计算机上,Cookie会帮你在网站上所打的文字或是一些选择,都纪录下来。当下次你再光临同一个网站,WEB服务器会先看看有没有它上次留下的Cookie资料,有的话,就会依据Cookie里的内容来判断使用者,送出特定的网页内容给你。Cookie的使用很普遍,许多有提供个人化服务的网站,都是利用Cookie来辨认使用者,以方便送出使用者量身定做的内容,像是Web接口的免费email网站,都要用到Cookie。,Cookie会不会有危险?其实Cookie中记载的资料相有限,Cookie是安全的。网站不可能经由Cookie获得你的email地址或是其它私人资料,更没有办法透过Cookie来存取你的计算机。但是如果你实在不喜欢Web服务器乱丢饼干(Cookie)到你家,当然可以让浏览器拒绝网站存放Cookie到你的计算机。工具Intertnet选项安全,按自定义级别,到Cookie的部分,全都设为关闭,按确定,关闭浏览器,再重新激活浏览器即可。当你关闭Cookie之后,很多网站的个人化服务功能很可能也不能再使用了。Cookie存放位置是在:C:WINDOWSTemporaryInternetFiles你可以直接删掉这里面的东西或是利用IEinternet选项里的删除文件按钮来清除,4Session对象Session对象是ASP技术中实现用户会话管理的手段,主要用来存储特定用户会话所需的信息。当用户在应用程序的Web页面之间跳转时,存储在Session对象中的变量不会丢失,而且在整个用户会话中会一直存在下去。,4.1ASP对象模型,5Application对象Application对象可以控制服务器端应用程序的启动和终止状态,并保存整个应用程序过程中的信息。它将虚拟目录及其子目录也看成一个应用程序,用来在给定的应用程序的所有用户之间共享信息。虽然它与Session对象比较相似,但在本质上是不同的。例如,对于同一个网页,创建了一个Session变量Hits,则不同的访问者使用的Hits变量是不同的,在每个会话期间均被创建。而如果创建了一个Application变量Hits,该变量只被创建一次,所有的客户均可以共享该Application变量。,4.1ASP对象模型,6ObjectContext对象ObjectContext对象是微软在IIS4.0中最新提供的对象,它主要用来处理与事务相关的问题。与ASP的其它对象有所不同,ObjectContext对象没有属性和集合,只有方法和事件。7ASPError对象该对象包含了运行ASP网页发生错误的详细内容。,4.1ASP对象模型,在客户端,通常利用表单向服务器端发送信息,在表单中可以包含许多DHTML控件,如前面课程中学到的文本框和按钮。在服务器端可以使用Request对象获取表单提交的数据,使用Response对象把数据输出到客户的浏览器中。,4.2任务4-1:学生用书信息调查使用POST方式从Request对象的FORM集合中获取数据,任务4-1描述:为图书馆编写一个“学生用书信息调查”网页,如果学生在星期天登录该网页,将会出现如图4-1所示的“开放时间提示”网页,如果不是星期天,将会出现一个表单网页供学生填写用书调查信息,如图4-2所示。学生填写信息时,如果发现填写不正确,想重新填写,只需按“重写”按钮,即可清除所有填写的信息。如果信息已经全部填写完毕,可单击“提交”按钮向服务器提交填写的信息,此时将会出现如图4-3所示的“学生用书信息调查”确认网页。如果觉得填写的信息不正确,可单击“如不对,返回”超链接,返回到“学生用书信息调查”输入表单继续输入信息并提交。,4.2任务4-1:学生用书信息调查使用POST方式从Request对象的FORM集合中获取数据,图4-1“开放时间提示”网页,图4-2“学生用书信息调查”输入网页,图4-3“学生用书信息调查”确认网页,任务分析:本任务首先要判断当天是否为星期日,如果是给出不开放信息,如果不是才出现“学生用书信息调查”输入网页,因此可设计一个初始网页,在该初始网页中通过调用WeekDay()获取今天是星期几的信息,然后进行判断,如果是星期日,则可以通过调用Response对象的Write方法向客户端输出提示信息,如果不是星期日,则可以通过调用Response对象的Redirect方法定位到“学生用书信息调查”输入网页。,4.2任务4-1:学生用书信息调查使用POST方式从Request对象的FORM集合中获取数据,任务分析:“学生用书信息调查”输入网页可通过表单来实现,在表单中,可通过设计一个表格,按图4-2所示在表格的相应行和相应列安排相应的DHTML控件即可。此处需注意的是,当用户的输入信息提交给服务器后,由哪个ASP网页进行处理,以及怎样处理,必须通过表单的Action属性和Method属性来指定。当学生按“提交”按钮向服务器提交信息后,服务器将查找并运行表单所指出的ASP网页,在该网页中可通过Request对象来获取用户输入的信息,通过Response对象向客户端输出信息。,4.2任务4-1:学生用书信息调查使用POST方式从Request对象的FORM集合中获取数据,任务实现:本任务设计了三个网页,初始网页(文件名为Task4_1.ASP)、表单输入网页(Task4_1_1.ASP)和表单输入信息处理网页(Task4_1_2.ASP),表单输入信息处理网页,通常称为表单处理程序。,4.2任务4-1:学生用书信息调查使用POST方式从Request对象的FORM集合中获取数据,(1)启动记事本,在记事本中输入如下代码。,开放时间判断1then如果今天不是星期日Response.redirecttask4_1_1.asp定向对信息输入表单else如果是星期日,输出提示信息并结束程序Response.write对不起,今天是星期天,本馆不开放。Response.write本馆的开放日期为星期一星期六。Response.Endendif%,说明:上述代码中使用了Response对象,该对象主要用来输出信息到客户端。上述代码调用了Response对象的Redirect、Write和End方法。Response对象的Write方法的作用是将信息从Web服务器输出到浏览器。其调用的一般格式如下:Response.WriteVariant其中,Variant为要输出的数据,可以是任何VBScript的Variant数据类型,包括字符、字符串、整数等。如上述代码中的语句“Response.write本馆的开放日期为星期一星期六。”就是向浏览器输出一个字符串。,4.2任务4-1:学生用书信息调查使用POST方式从Request对象的FORM集合中获取数据,说明:关于该方法的使用,读者需注意以下几个问题:向浏览器中传递的数据可以混合使用HTML标记。如本例中的语句“Response.write对不起,今天是星期天,本馆不开放。”就是向浏览器输出一个包含HTML标记的字符串。如果之间只有一行Response.Write语句,则可以简写。例如,有以下语句:今天是休息天,祝您快乐!%该语句可以简写成:今天是休息天,祝您快乐!%如果要在浏览器中显示的信息包含符号:%,则必须写为:%,以免被视为ASP代码的结束。,4.2任务4-1:学生用书信息调查使用POST方式从Request对象的FORM集合中获取数据,说明:Response对象的Redirect方法可以使浏览器从当前网页转向其他网页。其一般格式如下:Response.Redirectpath其中“path”是要转向的网页的网址。Response对象的End方法可以结束ASP程序的运行。其一般格式如下。Response.End此时,如果缓冲区内有数据,将会把数据输出到浏览器端。使用该方法可以控制程序的执行。,4.2任务4-1:学生用书信息调查使用POST方式从Request对象的FORM集合中获取数据,4.2任务4-1:学生用书信息调查使用POST方式从Request对象的FORM集合中获取数据,(2)把该网页代码保存到D:ASPExampleCH04Task4_1文件夹下,取名为Task4_1.ASP。再把系统日期设置成某个星期日,然后启动浏览器,在地址栏输入:http:/LocalHost/ASPE/CH04/Task4_1/Task4_1.ASP后按回车键,将会出现如图4-1所示的提示页面。接着把系统日期设置为星期一星期六之间的某一天,再运行该网页,将会出现找不到“task4_1_1.asp”网页的错误,原因是该网页尚未编写。(3)在记事本中,执行“文件”“新建”命令,新建一个文档,在该文档中输入以下代码。,学生用书信息调查感谢您填写如下调查信息,说明:上述代码的作用是定义一个表单,表单通过Post方式提交数据,表单提交的数据由表单处理程序Task4_1_2.asp处理。使用Post方式提交的数据,在表单处理程序中可通过Request对象的Form集合读取。代码的第一行“”的作用是使用Response对象的Expires属性设置网页的失效时间为立即失效。该属性取值为整数,用来确定在浏览器上缓冲存储的页面距离过期还有多少时间(以分钟为单位)。如果用户在某个页面过期之前返回该页,就会显示缓冲区中的页面,否则将从服务器重新读取该页面。该属性是一个较实用的属性,当客户通过ASP的登录页面进入Web站点后,应该利用该属性使登录页面立即过期(如设置Response.Expires=0),以确保安全。,4.2任务4-1:学生用书信息调查使用POST方式从Request对象的FORM集合中获取数据,说明:上述网页采用标记定义了一个表单,在动态网页设计中,表单是必不可少的元素,许多功能的实现都与表单密不可分。表单的主要功能是接受用户在客户端的输入,然后由客户端浏览器将信息发送到服务器端,再由相应的表单处理程序或其它方式进行处理。在HTML网页中,表单以标记开始和结束。表单标记的语法格式为:其中,name属性用来为表单指定一个名字,使用该名字来访问表单;method属性用来指定信息的传送方式,“传送方式”用于指明交互表单的信息传送方式,有Post和Get两种,本例采用了Post方式;action属性用来指定表单处理程序的URL地址,“URL”是指表单处理程序的相对或绝对位置(若要将表单数据寄到电子邮件信箱,可以设置为该电子邮件信箱地址;若没有设置Action属性的值,表示使用默认的表单处理程序);Target用来设置显示表单处理程序结果的目标框架,4.2任务4-1:学生用书信息调查使用POST方式从Request对象的FORM集合中获取数据,说明:代码中的行“”的作用是创建一个Submit按钮,单击该按钮,将把用户在表单中输入的信息提交给表单处理程序。Value属性值用来指定在按钮上显示的文字。代码中的行“”的作用是创建一个Reset按钮,单击该按钮,将把用户在表单中输入的信息全部恢复到初始状态。Value属性值用来指定在按钮上显示的文字。,4.2任务4-1:学生用书信息调查使用POST方式从Request对象的FORM集合中获取数据,4.2任务4-1:学生用书信息调查使用POST方式从Request对象的FORM集合中获取数据,(4)把该网页代码保存到D:ASPExampleCH04Task4_1文件夹下,取名为Task4_1_1.ASP。(5)为表格添加一行,代码如下。代码放在标记之间。,姓名:性别:男女密码:,4.2任务4-1:学生用书信息调查使用POST方式从Request对象的FORM集合中获取数据,说明:上述代码为表格添加了一行,该行包含三列,每列均通过标记放置控件,第一列放置了一个名为XingMing的文本框,其宽度为8个字符。第二列放置了一个名为Sex的单选钮组,该单选钮组有两个单选钮,值分别为“男”和“女”,默认选中“男”;第三列放置了一个名为Password的密码输入框,该密码输入框的长度为12个字符,最多只能输入8个字符。,4.2任务4-1:学生用书信息调查使用POST方式从Request对象的FORM集合中获取数据,(6)启动浏览器,在地址栏输入:http:/LocalHost/ASPE/CH04/Task4_1/Task4_1_1.ASP后按回车键,将会出现如图4-4所示的网页。可以发现表格的第一行已经出现。,图4-4调试的中间网页,4.2任务4-1:学生用书信息调查使用POST方式从Request对象的FORM集合中获取数据,(7)在标记之间,继续添加如下代码并保存。为调试方便,读者也可以采用与第(5)步和第(6)步相同的方法,每次为表格添加一行,就启动游览器浏览一次网页,看看运行结果是不是与要求的相符。,爱好:音乐上网游戏跳舞绘画影视,学历:小学中学大专本科研究生专业:计算机应用无线电通信工程程序控制工程移动通信工程卫星通信工程,您最希望借阅的书的种类:计算机类文学类休闲类军事类数理类通信类请给出您对本馆图书订购的建议:,说明:上述代码中出现了许多类似于“Request.Form(sex)”的语句,其作用是获取表单中相应控件提交过来的数据。Request对象是负责从客户端浏览器获取用户信息的对象,它是ASP中重要的服务器内置对象,它连接着Web服务器和Web客户端程序,是Web交互式网页设计的基础。Request对象提供了5个集合,分别是ClientCertificate、Cookies、Form、QueryString和ServerVariables,上述代码就使用它Form集合。Request对象的属性和方法很少使用。,4.2任务4-1:学生用书信息调查使用POST方式从Request对象的FORM集合中获取数据,说明:当请求提交数据的表单的METHOD属性值为POST时,请求提交的段中的DHTML控件的值将存放在Request对象的Form集合中,该集合的每个成员均为只读。因此在表单处理程序中,可用Request对象的Form集合获取表单提交的数据。使用Form集合来获取传递数据的语法格式有以下几种。格式一:Request.Form(控件名)其作用是获取表单中指定控件传递过来的值。格式二:Request.Form(控件名)(index)其作用是获取表单中指定控件传递过来的多个值中的一个,具体是哪一个由Index确定。格式三:Request.Form(控件名).Count其作用是获取表单中指定控件传递过来的值的个数。,4.2任务4-1:学生用书信息调查使用POST方式从Request对象的FORM集合中获取数据,说明:上述代码段中读取并向浏览器输出爱好的值采用了代码“Response.write您的爱好是:&Request.Form(Hobby)&”,由于爱好是多个值,该行代码一次读取并输出了多个。对于这种传递过来的多个值,也可以一个值一个值地读取并输出,例如该行代码也可以由以下几行代码代替。ForI=1toRequest.Form(爱好).countResponse.Write(Request.Form(xm)&的第&I&爱好是:)Response.Write(Request.Form(ah)(I)&)Next,4.2任务4-1:学生用书信息调查使用POST方式从Request对象的FORM集合中获取数据,4.2任务4-1:学生用书信息调查使用POST方式从Request对象的FORM集合中获取数据,(10)把该网页代码保存到D:ASPExampleCH04Task4_1文件夹下,取名为Task4_1_2.ASP。(11)启动浏览器,在地址栏输入:http:/LocalHost/ASPE/CH04/Task4_1/Task4_1.ASP后按回车键,然后对各网页进行测试,如无错误则该任务基本完成。,拓展提高:(1)表单网页与表单处理程序的合并把两个文件合并成一个文件的思路是:当第一次访问文件时,应执行显示表单部分(表单网页),而当表单内容输入后提交时,应执行接受并处理表单信息的部分(表单处理程序)。根据访问该网页时是否同时采用POST方式发送了表单信息,可以判断出该网页是不是第一次被访问,可以使用如下形式的表达式:Request.ServerVariables(CONTENT_LENGTH)0或Request.ServerVariables(HTTP_METHOD)POST如果上述条件为False,表示没有发送信息,应是第一次访问网页,如果上述条件为True,表示发送了信息,应是第二次访问网页。,4.2任务4-1:学生用书信息调查使用POST方式从Request对象的FORM集合中获取数据,学生用书信息调查Method=post感谢您填写如下调查信息此处省略的内容与Task4_1_1.asp中的相应内容完成一致,拓展提高:(2)缓冲输出缓出输出的含义是先把输出内容预先存放到服务器的缓冲区中,在适当的时候再发送到客户端。缓冲输出涉及到Response对象的Buffer属性及其Clear、Flush和End方法。设置缓冲输出的形式为:Response.Buffer=True该语句应放在语言类型说明之后,所有文档输出之前。设定后,无论是使用一般的HTML代码还是使用Response的Write方法形成的输出都将先存放到缓冲区中。当希望将缓冲区的内容输出时,可使用Response对象的Flush方法,一般形式如下:Response.Flush调用Response对象的End方法的一般格式如下:Response.End,4.2任务4-1:学生用书信息调查使用POST方式从Request对象的FORM集合中获取数据,概述:通过表单,不但可以使用POST方式向服务器提交数据,而且可以使用GET方式向服务器提交数据。若表单通过GET方式向服务器提交数据,则表单处理程序可以使用Request对象的QueryString集合获取用户提交的数据。,4.3任务4-2:包、剪、锤游戏使用GET方式从Request对象的QueryString集合中获取数据,任务4-2描述:编写一个包、剪、锤网络游戏,网页的初始运行情况如图4-7所示,当玩家单击某个单选钮出手后,将会出现如图4-8的游戏结果网页。单击返回超链接将返回到如图4-7的页面继续玩游戏。,4.3任务4-2:包、剪、锤游戏使用GET方式从Request对象的QueryString集合中获取数据,图4-7游戏网页的初始运行情况,图4-8显示游戏结果,任务分析:首先应制作6张图片,分别代表玩家和计算机的三种出手,这6张图片的文件名分别是P1.JPG(玩家出石头)、P2.JPG(玩家出剪刀)、P3.JPG(玩家出布)、C1.JPG(计算机出石头)、C2.JPG(计算机出剪刀)和C3.JPG(计算机出布),如图4-9所示。,4.3任务4-2:包、剪、锤游戏使用GET方式从Request对象的QueryString集合中获取数据,任务分析:玩家出手可通过在表单中添加一个“单选按钮组”来实现,玩家“出手”即单击单选按钮,此时将会发生单选按钮组的OnClick事件,可在该事件代码中调用表单的Submit方法把数据提交给表单处理程序。可把表单的Method属性值设置为GET,则在表单处理程序中,就可以使用Request对象的QueryString集合获取玩家提交的信息即出手情况。在表单处理程序中,通过对玩家出手情况的判断(1代表石头、2代表剪刀、3代表布),决定要显示的玩家出手图片的图片文件名,再让计算机产生一个13之间的随机数作为计算机的出手情况,通过判断计算机的出手情况,决定要显示的计算机出手图片的图片文件名。提着判断输赢情况并产生输赢提示信息。最后在网页上输出图片和输赢提示信息。,4.3任务4-2:包、剪、锤游戏使用GET方式从Request对象的QueryString集合中获取数据,任务实现:(1)启动记事本,在记事本中输入如下代码。,4.3任务4-2:包、剪、锤游戏使用GET方式从Request对象的QueryString集合中获取数据,(2)把该网页代码保存到D:ASPExampleCH04文件夹下,取名为Task4_2.ASP。(3)在上述代码的后面,接着添加如下代码。,4.3任务4-2:包、剪、锤游戏使用GET方式从Request对象的QueryString集合中获取数据,Then如果接受到表单提交的信息%,说明:上述代码的作用是把表单和表单处理程序集中到一个文件中。当表单采用GET方式提交了数据,则表达式“Request.servervariables(QUERY_STRING)”的值为包含提交数据的查询字符串,不为空字符串。如果没有提交数据,则表达式“Request.servervariables(QUERY_STRING)”的值为空字符串。因此通过判断表达式“Request.servervariables(QUERY_STRING)”的值是否为空字符串,就可以知道是显示表单,还是执行表单处理程序。,4.3任务4-2:包、剪、锤游戏使用GET方式从Request对象的QueryString集合中获取数据,(4)在和之间添加下列代码并保存,以显示表单(游戏界面)。,4.3任务4-2:包、剪、锤游戏使用GET方式从Request对象的QueryString集合中获取数据,石头、剪子、布小游戏包、剪、锤大战,method=getname=Game请出手:石头剪子布Game.submit调用表单Game的submit方法向ASP网页提交数据,说明:上述代码定义了一个名为Game的表单,该表单采用Get方式提交数据,提交的数据由本网页自身进行处理。表单中定义了一个名为Choice的单选按钮组,用来供玩家选择出手,在单选按钮组的OnClick事件中,调用了表单Game的Submit方法提交数据。代码“Request.servervariables(SCRIPT_NAME)”的作用是获取环境变量SCRIPT_NAME的值,通过该环境变量可以获得当前脚本的虚拟路径。当需要将表单的数据提交给网页本身时,而不管本网页存放在哪个目录下,就可以使用环境变量SCRIPT_NAME,如上述代码就使用该环境变量使表单提交的数据由本网页自身处理。,4.3任务4-2:包、剪、锤游戏使用GET方式从Request对象的QueryString集合中获取数据,说明:环境变量是Request对象的又一集合(servervariables集合),通过它可以获得有关服务器的一些信息和用户发送请求时浏览器通过HTTP报头传送的一些信息,如前面使用的SCRIPT_NAME、CONTENT_LENGTH、QUERY_STRING等均是环境变量。获取某个环境变量值的一般形式如下:Request.ServerVariables(环境变量名)例如:Request.ServerVariables(HTTP_USER_AGENT)的作用是获得浏览器名。Request.ServerVariables(REMOTE_ADDR)的作用是获取连接到本服务器上的计算机的IP地址,若用户是通过代理服务器访问该网页的,则获得的是代理服务器的IP地址。Request.ServerVariables(SERVER_NAME)的作用是获取服务器的域名。,4.3任务4-2:包、剪、锤游戏使用GET方式从Request对象的QueryString集合中获取数据,(5)启动浏览器,在地址栏输入:http:/LocalHost/ASPE/CH04/Task4_2.ASP后按回车键,将会出现如图4-7所示的网页,但此时单击单选钮,出现的只是一个空白网页,原因是表单处理程序代码尚未编写。(6)在行“”的下面添加下列代码并保存。,4.3任务4-2:包、剪、锤游戏使用GET方式从Request对象的QueryString集合中获取数据,说明:上述代码首先通过Request对象的QueryString集合获取用户的出手情况并存放在变量PlayerChoice中,然后通过一个多分支语句判断PlayerChoice的值是几以决定要显示的图片文件名,并把图片文件名保存在变量PlayerPicfile中。接着通过调用Rnd函数产生一个13之间的随机数作为计算机的出手并存放在变量ComputerChoice中,然后通过一个多分支语句判断ComputerChoice的值是几以决定要显示的图片文件名,并把图片文件名保存在变量ComputerPicfile中。最后通过If语句比较变量PlayerChoice的值和变量ComputerChoice的值以决定谁输谁赢,并产生输赢提示信息。,4.3任务4-2:包、剪、锤游戏使用GET方式从Request对象的QueryString集合中获取数据,说明:请求提交数据的表单的METHOD属性值为GET时,在表单处理程序中,可用Request对象的QueryString集合获取表单提交的数据。使用QueryString集合来传递数据的语法格式有以下几种。格式一:Request.QueryString(控件名)其作用是获取表单中指定控件传递过来的值。格式二:Request.QueryString(控件名)(index)其作用是获取表单中指定控件传递过来的多个值中的一个,具体是哪一个由Index确定。格式三:Request.QueryString(控件名).Count其作用是获取表单中指定控件传递过来的值的个数。,4.3任务4-2:包、剪、锤游戏使用GET方式从Request对象的QueryString集合中获取数据,(7)在上述代码之下“”行之上,添加下列代码并保存。,4.3任务4-2:包、剪、锤游戏使用GET方式从Request对象的QueryString集合中获取数据,包、剪、锤大战结果玩家电脑返回,(8)启动浏览器,在地址栏输入:http:/LocalHost/ASPE/CH04/Task4_2.ASP后按回车键,然后对网页功能进行测试,如无错误则该任务顺利完成。,4.3任务4-2:包、剪、锤游戏使用GET方式从Request对象的QueryString集合中获取数据,说明:值得读者注意的是,用户出手后,地址栏上的地址已经发生了变化,变成了类似“http:/localhost/aspe/ch04/task4_2.asp?choice=1”的形式,也就是说通过GET方法发送数据时,发送的数据以查询字符串的形式出现在地址栏中,保密性不强。而使用POST方式提交数据时,则不会出现这种情况,保密性较好。,归纳说明:把表单的Method属性值设置为GET时,在表单处理程序中可以使用Request对象的QueryString集合获取表单提交的信息,本例通过一个任务“包、剪、锤游戏”的具体实现过程,详细讲解了这种交互技术的实现方法。另外,本节还介绍了服务器环境变量的概念,以及通过Request对象的ServerVariables集合获取服务器环境变量的方法,读者需着重掌握CONTENT_LENGTH、QUERY_STRING和SCRIPT_NAME环境变量的含义及其使用方法。,4.3任务4-2:包、剪、锤游戏使用GET方式从Request对象的QueryString集合中获取数据,拓展提高:可以通过三种方式向ASP网页传送数据。一种是把表单的METHOD属性值设置为POST,在ASP网页中通过Request对象的Form集合获取表单提交的信息,该种方式在“图书馆学生用书信息调查”任务中已经详细介绍;一种是把表单的METHOD属性值设置为GET,在ASP网页中通过Request对象的QueryString集合获取表单提交的信息,该种方式在“包、剪、锤游戏”任务中已经详细介绍;还有一种向ASP网页传送数据的方法是直接使用查询字符串。,4.3任务4-2:包、剪、锤游戏使用GET方式从Request对象的QueryString集合中获取数据,在浏览器的地址栏输入地址“http:/localhost/aspe/ch04/Exam4_1.asp?XM=吴天&ZC=助教”后按回车键,ASP网页的运行情况如图4-10所示。,图4-10通过查询字符串提交数据的ASP网页运行情况,概念:随着Web技术的发展,基于Web的应用程序越来越大,经常会见到在一个网站上安装了多个Web应用程序。所谓应用程序是指Web服务器硬盘上的一组文件,也就是虚拟目录及其子目录下的一组HTML文档、ASP文档及其它文件,它们组合在一起完成一个实际的应用。在ASP中为了保存与应用程序有关的一些公共信息,设置了Application(应用程序)对象,又为了保存访问应用程序的各用户的一些个人信息,设置了Session(会话)对象。Application对象的所有数据可以在整个应用程序内部共享,并且对所有用户都是可见的,在Application对象中创建的变量或对象可以为所有访问该站点的用户共享。Session对象存储特定用户的信息,不同用户的Session不同,用户之间不能共享在Session对象中创建的变量或对象。,4.4任务4-3:改进的包、剪、锤游戏Application对象与Session对象及其使用,任务4-3描述:对“包、剪、锤游戏”进行改进,使之能够显示玩家的战况,即输、赢和平手的次数。并且为该网页装上用户计数器、访客编号器和点击计数器。用户计数器用来统计使用该网页的总用户数,访客编号器用来给出当前访客是第几位访客,点击计数器用来统计在整个应用程序期间该网页被点击多少次及在本会话期间本网页被点击的次数。两个不同玩家A和B在浏览器中运行该游戏网页的情况分别如图4-13和图4-14所示,当玩家单击某个单选钮出手后,将会出现类似如图4-15所示的游戏结果网页。单击返回超链接将返回到如图4-13或图4-14的页面继续玩游戏。,4.4任务4-3:改进的包、剪、锤游戏Application对象与Session对象及其使用,图4-13玩家A运行游戏网页的界面,图4-14玩家B运行游戏网页的界面,图4-15显示游戏结果,任务分析:为记录访问者的数目,可使用一个应用程序级变量,当任一用户访问该网站时,将该变量的值加1。为记录当前访问者是第几位访问者可定义一个会话级变量,当访问者访问该网站时,当前的用户数就是当前访问者的序号,以后虽然访问者会随着时间的变化不断增多,但记录当前访问者的序号的会话级变量的值不会改变。为记录网页总共被点击的次数,可定义一个应用程序级变量,当该网页被任意用户访问或刷新一次,则把该变量的值加1。为记录本会话期间网页被点击了多少次,可定义一个会话级变量,在本会话期间,用户访问或刷新一次该网页,则把该变量的值加1。某个玩家与计算机交手的输、赢和平手的次数,只对该玩家有效,与其他玩家无关,因此可定义三个会话级变量来记录玩家的输、赢和平手的次数。,4.4任务4-3:改进的包、剪、锤游戏Application对象与Session对象及其使用,任务实现:(1)打开记事本,在记事本中输入以下代码。并把该文件保存到D:ASPExample目录中(虚拟目录的根目录下),并取名为Global.asa。,4.4任务4-3:改进的包、剪、锤游戏Application对象与Session对象及其使用,SubApplication_OnStartApplication.Lock变量AppHitNum用来记录整个应用程序运行期间网页被点击的总的次数Application(AppHitsNum)=0Application(AppUser)=0变量AppUser用来记录访问该应用程序的总人数Application.UnlockEndSub,SubSession_OnStartSession(Anum)=0变量Anum存放玩家赢的次数Session(Bnum)=0变量Bnum存放平手的次数Session(Cnum)=0变量Cnum存放玩家输的次数Session(SesHitsNum)=0变量SesHitsNum用来记录一次会话中,点击的次数Application.Lock每开启一个对话,访问网页的人数加1Application(AppUser)=Application(AppUser)+1变量UserNo记录是第几位访问该网站的人,此时的人数数目也就是访问者的序号Session(UserNo)=Application(AppUser)Application.UnlockEndSub,说明:上述代码是保存在Global文件中的。Global文件是一个可选文件,程序编写者可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的变量或对象。Global文件的名称必须是Global.asa且必须存放在应用程序的根目录中,并且每个应用程序只能有一个Global.asa文件。Global.asa是一个纯文本的文件。Global.asa文件中存放着ASP应用程序运行期间所需的Application对象和Session对象的事件,即Application_OnStart事件、Application_OnEnd事件、Session_OnStart事件和Session_OnEnd事件。另外,在Global.asa文件中还存放有标记声明的对象。,4.4任务4-3:改进的包、剪、锤游戏Application对象与Session对象及其使用,Global.asa文件的基本结构如下。,4.4任务4-3:改进的包、剪、锤游戏Application对象与Session对象及其使用,SubApplication_OnStart此处编写应用程序启动时需执行的代码EndSubSubSession_OnStart此处编写一个会话开始时需执行的代码EndSubSubSession_OnEnd此处编写一个会话结束时需执行的代码EndSubSubApplication_OnEnd此处编写应用程序结束时需执行的代码EndSub,注:第一行的作用是创建一个对象,其中RunAt=Server是必须的,且其值只能是Server,它表明这个Object只能在服务器上执行;“范围”指明本对象的使用用户,当Scope=Session时,表明本对象只给此次登录的用户使用,若Scope=Application,则可以让所有联机用户使用;“名称”是为对象定义的名称;“类名”是该对象的类名称。,说明:Application对象响应两个事件:OnStart事件和OnEnd事件。Application_OnStart事件是在Application对象开始时被触发,并且只在第一个用户的第一次请求时触发一次。它主要用于初始化变量、创建对象和运行其它代码。Application_OnEnd事件是在整个Application对象结束时才被触发的,当它被触发时应用程序的所有变量也相应地被取消。Application对象的Application_OnStart和Application_OnEnd事件过程只能在Global.asa文件中创建。Session对象响应Session_OnStart和Session_OnEnd两个事件,它们分别用于Session对象的启动和结束时的运行相应的代码。在一个Session开始时,Session_OnStart事件被触发,而在一个Session结束时,Session_OnEnd事件被触发。,4.4任务4-3:改进的包、剪、锤游戏Application对象与Session对象及其使用,说明:代码中的语句“Application(AppHitsNum)=0”的作用是创建一个应用程序级变量,并把该变量的值赋为0,应用程序级变量可以被所有访问该应用程序的用户使用。创建应用程序级变量的一般格式为:Application(变量名)=值或Application.Contents(变量名)=值其中Contents是Application对象的一个集合,用来存放所有非对象变量,也是Application对象的默认集合。同样要访问应用程序级变量,可使用如下格式。Application(变量名)或Application.Contents(变量名),4.4任务4-3:改进的包、剪、锤游戏Application对象与Session对象及其使用,说明:代码中的语句“Session(UserNo)=Application(AppUser)”的作用是创建一个会话级变量UserNo并把应用程序级变量AppUser的值赋给它。会话级变量只能被本用户使用,其它用户无法使用。创建会话级变量的一般格式为:Session(变量名)=值或Session.Contents(变量名)=值其中Contents是Session对象的一个集合,用来记录所有非对象变量,也是Session对象的默认集合。同样要访问会话级变量,可使用如下格式。Session(变量名)或Session.Contents(变量名),4.4任务4-3:改进的包、剪、锤游戏Application对象与Session对象及其使用,说明:代码中的语句“Session.Timeout=1”的功能是设定会话状态的超时时限为1分钟,它使用了Session对象的Timeout属性。当网页被打开后,由于用户长时间不发出新的请求,会话过程会自动终止,通过设置Session对象的Timeout属性值,可以指定在终止对话之前用户可以等待的时间。Session对象还有一个有用的属性SessionID,它返回当前会话的标识值,只要Web服务器没有重新启动,该值就是连续编号的。通过该属性,可以很方便地判断是否产生了新的对话。,4.4任务4-3:改进的包、剪、锤游戏Application对象与Session对象及其使用,(2)启动记事本,在记事本中输入如下代码。,4.4任务4-3:改进的包、剪、锤游戏Application对象与Session对象及其使用,说明:代码中的语句“Application.Lock”和“Application.Unlock”调用了Application对象的两个方法。Application对象只有Lock和Unlock两个方法。由于会话级变量是私有的,不会因为同一网页被多个用户同时访问而造成错误,因此不需要锁定,所以其没有Lock和Unlock方法。,4.4任务4-3:改进的包、剪、锤游戏Application对象与Session对象及其使用,(3)把该网页代码保存到D:ASPExampleCH04文件夹下,取名为Task4_3.ASP。(4)在上述代码的后面,接着添加如下代码。,4.4任务4-3:改进的包、剪、锤游戏Application对象与Session对象及其使用,Then如果接受到表单提交的信息%,(5)在和之间添加下列代码并保存,以显示表单(游戏界面)和各种计算器的值。,4.4任务4-3:改进的包、剪、锤游戏Application对象与Session对象及其使用,石头、剪子、布小游戏包、剪、锤大战method=getname=Game请出手:石头剪子,布Game.submit调用表单Game1的submit方法向ASP网页提交数据你是本网页的第位访问者。本网页的总用户数为:人。本网页共被点击次,在本会话期间被点击次!,(6)启动浏览器,在地址栏输入:http:/LocalHost/ASPE/CH04/Task4_3.ASP后按回车键,将会出现类似如图4-13所示的网页,但此时单击单选钮,出现的只是一个空白网页,原因是表单处理程序代码尚未编写。(7)在行“”的下面添加下列代码并保存。,4.4任务4-3:改进的包、剪、锤游戏Application对象与Session对象及其使用,(8)在上述代码之下“”行之上,添加下列代码并保存。,4.4任务4-3:改进的包、剪、锤游戏Application对象与Session对象及其使用,包、剪、锤大战结果玩家电脑战报,赢:平手:输:交手总次数:返回,(9)启动浏览器,在地址栏输入:http:/LocalHost/ASPE/CH04/Task4_3.ASP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商州安全员考及答案
- 2025年康复医疗服务体系建设与康复康复护理服务市场分析报告
- 泰安龙潭小学施工方案
- 2025年西安中招英语真题及答案
- 骨科专业面试题目及答案
- DB65T 4348.5-2021 草地退化状况评价技术规范 第5部分:高寒草甸类
- 4 写生身边的风景说课稿-2025-2026学年小学美术沪教版四年级上册-沪教版
- DB65T 4480-2021 电梯困人应急处置导则
- 迪吧消防应急预案(3篇)
- 2025年质量综合知识题库及答案
- 2025至2030年中国猫砂行业发展监测及投资战略研究报告
- 2025年理赔人员上岗考试题库
- 2025年AI技术在项目管理中的应用洞察报告
- 荧光分析技术第二章荧光信号机制讲课文档
- 2025-2026年秋季学期各周国旗下讲话安排表+2025-2026学年上学期升旗仪式演讲主题安排表
- 2025年公务员(国考)之公共基础知识考试题库(带答案解析)
- 初级医学影像技术师考试试卷及答案2025年
- 幼儿园一日生活指引培训
- 中班健康运蔬菜喽
- 脑疝的观察与护理
- 2025年护理核心制度试题及答案
评论
0/150
提交评论