首页 《Web数据库技术》-高晗-电子教案 第5章

《Web数据库技术》-高晗-电子教案 第5章

举报
开通vip

《Web数据库技术》-高晗-电子教案 第5章第5章ASP中的内建对象lHTML中使用表单lASP内建对象的语法、属性、方法及事件lGlobal.asa文件的作用本章学习要点5.1HTML中表单的使用表单是与用户交互信息的主要手段,在HTML页面中起着重要作用。一个表单至少应该包括说明性文字、用户填写的表格、提交和重填按钮等内容。用户填写了所需的资料之后,按下“提交”按钮,所填资料就会通过专门的CGI接口传到Web服务器上。网页的设计者随后就能在Web服务器上看到用户填写的资料,从而完成了从用户到设计者之间的反馈和交流。l B...

《Web数据库技术》-高晗-电子教案 第5章
第5章ASP中的内建对象lHTML中使用表单lASP内建对象的语法、属性、方法及事件lGlobal.asa文件的作用本章学习要点5.1HTML中表单的使用表单是与用户交互信息的主要手段,在HTML页面中起着重要作用。一个表单至少应该包括说明性文字、用户填写的表格、提交和重填按钮等 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 。用户填写了所需的资料之后,按下“提交”按钮,所填资料就会通过专门的CGI接口传到Web服务器上。网页的 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 者随后就能在Web服务器上看到用户填写的资料,从而完成了从用户到设计者之间的反馈和交流。l Button:普通按钮。l  radio:单选按钮。l  checkbox:复选框。l   select:下拉式菜单。l   text:单行文本框。l   textarea:多行文本框。l  submit:提交按钮。l reset:重填按钮。用HTML设计表单常用的标记是:<form>、<input>、<option>、<select>、<textarea>和<isindex>等标记。表单中主要包括下列元素:表单标记<form><form>标记的主要作用是设定表单的起止位置,并指定处理表单数据程序的URL地址。基本语法如下:<formaction=urlmethod=get|postname=valueonreset=functiononsubmit=functiontarget=window></form>用于设定处理表单数据程序URL的地址指定数据传送到服务器的方式设定表单的名称按下相应的按钮之后要执行的子程序指定输入数据结果显示在哪个窗口表单输入标记<input>用法如下:<inputaligh=left|righ|top|middle|bottomname=valuetype=text|textarea|password|checkbox|radio|submit|reset|file|hidden|image|buttonvalue=valuesrc=urlcheckedmaxlength=nsize=nonclick=functiononselect=function>设定表单的对齐位置设定当前变量名称输入数据的类型设定输入默认值设定图像文件的地址此项被默认选中输入单行文本的最大输入字符数输入多行文本的最大输入字符数。。在按下输入时调用指定的子程序当前项被选择时调用指定的子程序下拉菜单标记<select>用<select>标记可以在表单中插入一个下拉菜单,它需与<option>标记联用,因为下拉菜单中的每个选项要用<option>标记来定义。<select>标记的语法如下:<selectname=nametextsize=nmultiple>设定下拉式菜单的名称设定菜单框的高度设定为可以进行多选选项标记<option>该标记为下拉菜单中一个选项,语法如下:<optionselectedvalue=value>表示当前项被默认选中表示该项对应的值多行文本输入标记<textarea>该标记为建立多行文本输入框的专用标记,其语法如下:<textareaname=namecols=nrows=nwrap=off|hard|soft>文本框名称宽度高度换行控制表单实例代码可参见教材例sample5-01.asp,运行结果如下图所示:在面向对象编程中,对象就是指由作为完整实体的操作和数据组成的变量,是基于特定模型的。在对象中客户使用对象的服务,通过由一组方法或相关函数的接口访问对象的数据,然后客户端调用这些方法执行某种操作。ASP提供了可在脚本中使用的内建对象。通过这些对象,用户更容易收集通过浏览器请求发送的信息,响应浏览器请求以及存储用户信息,从而使对象开发者摆脱很多烦琐的工作。5.2Request对象Request对象是ASP编程中使用最频繁的对象之一。使用Request对象可以访问任何基于HTTP请求传递的所有信息,包括从HTML表格用POST方法或GET方法传递的参数、Cookie和用户认证等。通过Request对象能够访问客户端发送给服务器的二进制数据。Request的语法如下:Request[.集合|属性|方法](变量)其中,集合可以被指定为Form或者QueryString。变量为提交页面中使用的Form对象的变量名。Form集合Form集合通过使用POST方法的表格检索发送到HTTP请求正文中的表格元素的值。语法:Request.Form(element)[(index)|.Count]指定集合要检索的表格元素的名称可选,可访问某参数中多个值中的一个集合中元素的个数集合按请求正文中参数的名称来索引<html><head><title></title></head><body><p>请填写你的爱好</p><formmethod="POST"action="form.asp"><p><inputtype="text"name="hobby"size="20"><br>  <inputtype="checkbox"name="hobby"value="足球">足球<inputtype="checkbox" name="hobby"value="乒乓球">乒乓球</p><p><inputtype="submit"value="发送"name="B1"><inputtype="reset"value="重填"name="B2"></p></form><%ForEachiInRequest.Form("hobby")Response.Writei&"<BR>"Next%></body></html>程序5.2sample5-02.aspQueryString集合QueryString集合用来检索HTTP查询字符串中变量的值,HTTP查询字符串由问号(?)后的值指定。如<ahref="example.asp?string=thisisasample">stringsample</a>生成值为"thisisasample"的变量名字符串。通过发送表格或由用户在其浏览器的地址框中键入查询也可以生成查询字符串。语法:Request.QueryString(variable)[(index)|.Count]QueryString集合可以用名称来检索QUERY_STRING变量。Request.QueryString(参数)的值是出现在QUERY_STRING中所有参数值的数组。通过调用Request.QueryString(parameter).Count可以确定参数有多少个值。也可以使用QueryString来达到与前一个范例相同的功能。这时只需要将Request.Form部分作如下替换即可:<%ForEachiInRequest.querystring("hobby")  Response.Writei&"<BR>"  Next %>CookieCookie是由Internet站点创建的、将信息存储在计算机上的文件,并且一旦将Cookie保存在计算机上,则只有创建该Cookie的网站才能读取它。每个Web站点的Cookie与其他所有站点的Cookie存在同一文件夹中的不同文件内(Windows2000系统下,可以在C:\DocumentsandSettings\Administrator\Cookies的目录下找到它们)。一个Cookie就是一个惟一标识客户的标记,Cookie可以包含在一个对话期或几个对话期之间某个Web站点的所有页面共享的信息,使用Cookie还可以在页面之间交换信息。Request提供的Cookies集合允许用户检索在HTTP请求中发送的Cookie的值。1.什么是Cookie?语法:Request.Cookies(Cookie)[(key)|.attribute]其中:Cookie指定要检索其值的Cookie。key是可选参数,用于从Cookie字典中检索子关键字的值。attribute指定Cookie自身的有关信息。如:HasKeys只读,指定Cookie是否包含关键字。2.Cookie的工作原理Cookie通过HTTPHeader从服务端返回到浏览器上。服务端首先在响应中利用Set-Cookieheader来创建一个Cookie,在浏览器后面请求的CookieHeader中返回这个Cookie来完成浏览器的认证。3.在ASP中创建和读取Cookie当利用ASP创建了一个Cookie之后,就可以使用Response对象的Cookie集合了。可以创建两种Cookie:一种是单值的;另一种可以认为是Cookie字典类型,即允许多个键值对的存在。创建单值的Cookie相对简单,如:<%Response.Cookies("Username")="BillGates"Response.Cookies("Username").Expires="Jan1,1999"%>下面是一个比较完整的例子:<%Response.Cookies("Username")="SteveJobs"Response.Cookies("Username").Expires="Jan1,1999"Response.Cookies("Username").Path="/examples"Response.Cookies("Username").Domain="aspsite.com"Response.Cookies("Username").Secure=True%> Path属性:用来更加严格地限定浏览器发送Cookie。 Domain属性:限定了Cookie发送的网站, Secure属性:当该属性设为True时,则传递中就实行了加密算法,如果使用安全接口层,就可以使用这个属性。4.创建多个Cookie要创建多个Cookie,只需在Response对象的Cookies集合中简单地定义多个名称即可。不过,许多浏览器对一个指定网站就限定了3~4个Cookie。创建多个Cookie还有一种选择,就是创建一个Cookie字典,一个Cookie字典中可以含有多个键值对,下面是一个字典的例子:<%Response.Cookies("User")("Name")="BillGates"Response.Cookies("User")("Password")="billions"%>接受这样的Cookie值,还可以利用以前的Response对象的Cookies集合,就可以将其全部显示,这样显示出的是没有经过解码的Header中的源代码,即Header中的信息,它们一般都用于调试,也可以按每一个键的相应名称显示相应值,如下例:<%=Request.Cookies("User")%><%=Request.Cookies("User")("Name")%><%=Request.Cookies("User")("Name")%>5.不利用Cookie传递信息(1)利用QueryString传递信息……<%Username=Server.URLEncode("BillGates")%><AHref="/nextpage.asp?<%=UserName%>">点击这里</a>…………<%Username=Server.URLEncode("Request.QueryString("Username"))%><AHREF="/thirdpage.asp?<%=Username%>">点击这里</a>……nextpage.asp这个脚本的优点是适用于所有浏览器,但是用这样的传递来保存信息实在太麻烦了,所有的连接都要考虑到,每一个ASP都必须作相应处理,而且用户很可能“一不小心”就溜出了这种跟踪之外。此外,修改起来也过于麻烦。另一个缺点是针对不同的浏览器必须考虑长度限制,而且安全性没有保证。(2)利用Form的hidden类型传递信息……<%Username="BillGates“%><FORMMETHOD="Post"Action="/nextpage.asp"><INPUTName="Username"TYPE="hidden"VALUE="<%=Username%>"><inputtype="submit"name="下一页"></Form>…………<%Username=Request.Form("Username")%><FORMMETHOD="Post"Action="/thirdpage.asp"><inputname="Username"Type="hidden"Value="<%=Username%>"><inputtype=submitvalue="再下一页"></Form>……nextpage.asp(3)两种方法的结合……<%Username=Request("Username")%><!---注:就是上面这个脚本,QueryString和hidden的Form都可以正确接收---><FormMethod="Post"Action="/nextpage.asp"><inputname="Username"Type="Hidden"Value="<%=Username%>"><inputtype=Submitvalue="下一页"></FORM><ahref=/nextpage.asp?<%=ServerURLEncode(Username)%>点击这里</a>……可以将这两种方法结合起来,而在接受时可以没有任何区别。这里需要补充的是,对于Response对象,可以不指定Form集合和QueryString集合来进行接受,这时系统会自动辨认。例如:ServerVariables在浏览器中浏览网页的时候使用的传输协议是HTTP,在HTTP的标题文件中会记录一些客户端的信息,如:客户的IP地址等。有时服务器端需要根据不同的客户端信息做出不同的反应,这时候就需要用ServerVariables集合获取所需信息。语法:  Request.ServerVariables(服务器环境变量)可以使用以下脚本打印出所有的服务器环境变量。<TABLE><TR><TD><B>ServerVariable</B></TD><TD><B>Value</B></TD></TR><%ForEachnameInRequest.ServerVariables%><TR><TD><%=name%></TD><TD><%=Request.ServerVariables(name)%><%Next%></TD></TR></TABLE>表5-1服务器环境变量5.3Response对象Request用于获取客户端HTTP信息,而Response对象则用来控制发送给用户的信息,包括直接发送信息给浏览器、重定向浏览器到另一个URL或设置Cookie的值。语法:Response.collection|property|methodResponse属性(1)Buffer:指示是否缓冲页输出。(2)Charset:将字符集名称附加到Response对象中content-type标题的后面。对于不包含Response.Charset属性的ASP页,content-type标题将为:content-type:text/html。可以在.asp文件中指定content-type标题,如:<%Response.Charset="gb2312")%>将产生以下结果:content-type:text/html;charset=gb2312(3)ContentType:指定服务器响应的HTTP内容类型。如果未指定ContentType,默认为text/html。(4)Expires:指定了在浏览器上缓冲存储的页距过期还有多少时间。(5)ExpiresAbsolute:ExpiresAbsolute属性指定缓存于浏览器中的页面的确切到期日期和时间。Response方法(1)Clear方法:清除缓冲区中的所有HTML输出。(2)End方法:使Web服务器停止处理脚本并返回当前结果。(3)Flush方法:立即发送缓冲区中的输出。(4)Redirect方法:浏览器立即重定向到程序指定的URL。(5)Write方法:将指定的字符串写到当前的HTTP输出。Response集合Response对象只有一个集合——Cookies。Cookies集合设置Cookie的值。若指定的Cookie不存在,则创建它;若存在,则设置新的值并且将旧值删去。语法:Response.Cookies(Cookie)[(key)|.attribute]=valueattribute参数可以是下列之一: Domain:若被指定,则Cookie将被发送到对该域的请求中去。 Expires:指定Cookie的过期日期。为了在会话结束后将Cookie存储在客户端磁盘上,必须设置该日期。若此项属性的设置未超过当前日期,则在任务结束后,Cookie也将到期。 HasKeys:指定Cookie是否包含关键字。 Path:若被指定,则Cookie将只发送到对该路径的请求中。如果未设置该属性,则使用应用程序的路径。5.4Application和Session对象Application对象1.属性可以使用以下句法设置用户定义的属性,也可称为集合。Application("属性/集合名称")=值使用如下脚本声明并建立Application对象的属性:<%Application("MyVar")="Hello"SetApplication("MyObj")=Server.CreateObject("MyComponent")%>一旦分配了Application对象的属性,它就会持久地存在,直到关闭Web服务器服务,使Application停止为止。Application对象的属性特别适合在应用程序的用户之间传递信息。2.方法Application对象有两个方法,它们都是用于处理多个用户对存储在Application中的数据进行写入的问题。程序sample5-06.asp<%DimNumVisitsNumVisits=0Application.LockApplication("NumVisits")=Application("NumVisits")+1Application.Unlock%>(1)Lock方法禁止其他用户修改Application对象的属性(2)Unlock方法允许其他用户修改Application对象的属性3.事件(1)Application_OnStartApplication_OnStart事件在首次创建新的会话(即Session_OnStart事件)之前发生。当Web服务器启动并允许对应用程序所包含的文件进行请求时,触发Application_OnStart事件。Application_OnStart事件的处理过程必须写在Global.asa文件中。Application_OnStart事件的语法如下:<SCRIPTLANGUAGE=ScriptLanguageRUNAT=Server>SubApplication_OnStart…EndSub</SCRIPT>(2)Application_OnEndApplication_OnEnd事件在应用程序退出时于Session_OnEnd事件之后发生,Application_OnEnd事件的处理过程也必须写在Global.asa文件中。使用Application对象时必须注意:l 不能在Application对象中存储ASP内建对象。l 若将一个数组存储在Application对象中,请不要直接更改存储在数组中的元素。Session对象与Application对象具有相近作用的另一个非常实用的ASP内建对象就是Session,使用Session对象可以存储特定的用户会话所需的信息。当用户在应用程序的页面之间跳转时,存储在Session对象中的变量不会清除,而用户在应用程序中访问页面时,这些变量始终存在。通过向客户程序发送惟一的Cookie可以管理服务器上的Session对象。Session对象最常见的作用就是存储用户的首选项。1.Session的工作原理Session其实是利用Cookie进行信息处理的(参见前面有关Cookie的介绍)。当用户发出请求后,服务端就在用户浏览器上创建了一个Cookie,在这个Session结束时,意味着这个Cookie过期了。为这个用户创建的Cookie的名称是ASPSESSIONID,这个Cookie的惟一目的就是为每一个用户提供不同的身份认证。2.Session属性(1)SessionID:返回用户的会话标识。(2)TimeOut:为应用程序的Session对象指定超时时限(以分钟为单位)。3.方法Session对象仅有一个方法Abandon。Abandon方法可以删除所有存储在Session对象中的对象并释放这些对象所占的资源。如果未明确地调用Abandon方法,一旦会话超时,服务器将删除这些对象。当服务器处理完当前页时,释放会话状态。如:<%Session.Abandon%>4.事件Session对象有两个事件,用于在Session对象的启动和释放。(1)Session_OnStart:该事件在服务器创建新会话时发生。服务器在执行请求的页之前先处理该脚本。Session_OnStart事件是设置会话期变量的最佳时机,因为在访问任何页之前都会先设置它们。(2)Session_OnEnd事件该事件在会话超时或被放弃时发生。5.5Global.asa文件的使用Global.asa文件其实是一个可选文件,程序编写者可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象。该文件的内容不是用来给用户显示的,而是用来存储事件信息和应用程序全局使用的对象。该文件的名称必须是Global.asa且必须存放在应用程序的根目录中。每个应用程序只能有一个Global.asa文件。在Global.asa文件中,如果包含的脚本没有用<SCRIPT>标记封装,或定义的对象没有会话或应用程序作用域,则服务器将返回错误。在Global.asa文件中声明的过程只能从一个或多个与Application_OnStart、Application_OnEnd、Session_OnStart和Session_OnEnd事件相关的脚本中调用。<SCRIPTLANGUAGE="VBScript"RUNAT="Server">SubApplication_OnStartVisitorCountFilename=Server.MapPath("/ex2")+"\VisitCount.txt"SetFileObject=Server.CreateObject("Scripting.FileSystemObject")SetOut=FileObject.OpenTextFile(VisitorCountFilename,1,False,False)Application("visitors")=Out.ReadLineApplication("VisitorCountFilename")=VisitorCountFilenameEndSub'=========================================================SubApplication_OnEndSetFileOutObject=Server.CreateObject("Scripting.FileSystemObject")SetOut=FileOutObject.CreateTextFile(Application("VisitorCountFilename"),True,False)Out.WriteLine(application("visitors"))EndSub'=========================================================SubSession_OnStartSession.Timeout=5Application("visitors")=Application("visitors")+1Session("ID")=Session.SessionIDEndSub</SCRIPT>标准的Global.asa文件:5.6ASP内建对象ServerServer对象提供对服务器上的方法和属性的访问,其中大多数方法和属性是作为实用程序的功能服务的。有了Server对象,就可以在服务器上启动ActiveX对象例程,并使用ActiveServer服务提供象HTML和URL编码这样的函数。语法:Server.property|method属性ScriptTimeout超时值,表示在脚本运行超过这一时间之后即作超时处理。下面的代码指定服务器处理脚本在100秒后超时。<%Server.ScriptTimeout=100%>这里需要注意的是,通过使用元数据库中的AspScriptTimeout属性可以为Web服务或Web服务器设置默认的ScriptTimeout值。ScriptTimeout属性不能设置为小于在元数据库中指定的值。例如,如果NumSeconds设置为60秒,而元数据库设置包含了默认值90秒,则脚本在90秒后超时。方法1.HTMLEncode方法:允许对特定的字符串进行HTML编码。2.URLEncode方法:可以根据URL 规则 编码规则下载淘宝规则下载天猫规则下载麻将竞赛规则pdf麻将竞赛规则pdf 对字符串进行正确编码,当字符串数据以URL的形式传递到服务器时,在字符串中不允许出现空格,也不允许出现特殊字符。3.MapPath方法:指定的相对或虚拟路径映射到服务器的相应物理目录上。语法:Server.MapPath(Path)4.CreateObject方法:它用于创建已经注册到服务器上的ActiveX组件实例。语法:Server.CreateObject("ComponentName")本章小结本章详细介绍了表单的使用及ASP的5个常用而重要的内建对象的语法、属性、方法和事件。学完本章,读者应该能够自行编写出一定水平的ASP程序。
本文档为【《Web数据库技术》-高晗-电子教案 第5章】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
科技制造的艺术美
暂无简介~
格式:ppt
大小:256KB
软件:PowerPoint
页数:0
分类:工学
上传时间:2019-11-02
浏览量:16