




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章
ASP中的内建对象
lHTML中运用表单lASP内建对象的语法、属性、方法及事务lGlobal.asa文件的作用本章学习要点5.1HTML中表单的运用表单是与用户交互信息的主要手段,在HTML页面中起着重要作用。一个表单至少应当包括说明性文字、用户填写的表格、提交和重填按钮等内容。用户填写了所需的资料之后,按下“提交”按钮,所填资料就会通过特地的CGI接口传到Web服务器上。网页的设计者随后就能在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"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>ALL_HTTP客户端发送的所有HTTP标题文件CONTENT_LENGTH客户端发出内容的长度CONTENT_TYPE内容的数据类型。如:“text/html”。同附加信息的查询一起使用,如HTTP查询
GET、POST和PUTLOCAL_ADDR返回接受请求的服务器地址。如果在绑定多个IP地址的多宿主机器上查找请求所使用的地址时,这条变量非常重要LOGON_USER用户登录WindowsNT的账号QUERY_STRING查询HTTP请求中问号(?)后的信息
REMOTE_ADDR发出请求的远程主机(client)的
IP地址
REMOTE_HOST发出请求的主机(client)名称。如果服务器无此信息,它将设置为空的REMOTE_ADDR变量REQUEST_METHOD该方法用于提出请求。相当于用于HTTP的GET、HEAD、POST等SERVER_NAME出现在自引用URL中的服务器主机名、DNS或IP地址SERVER_PORT发送请求的端口号表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'================================================
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 住宅租赁合同模板:包含宠物饲养及邻里关系规定
- 电子产品采购与物流配送服务合同
- 2025年人教版七年级信息技术上册期末考试卷(附答案)
- 2024-2025学年全国小学一年级上数学人教版期末考试试卷(含答案解析)
- 2025年纤维增强塑料项目申请报告模范
- 陕西省2025年中考第三次模拟考试生物试卷(解析版)
- 听音乐测试题及答案
- 《在人间》测试题带答案
- 2025届湖北省襄阳襄州区五校联考七下英语期末考试试题含答案
- 偏高岭土基地质聚合物的制备与性能研究
- 体外循环管理
- 爬架拆除技术交底
- 2023小学数学教师选调进城考试备考试题及答案(10套)
- pergeos软件教程评价许可介绍
- 冷冻食品冻坏处理应急预案
- 铁路专用线施工组织
- 三明市人力资源和社会保障局关于2023年公开招考聘用紧缺急需专业工作人员模拟备考预测(共1000题含答案解析)综合试卷
- 计算机系统结构智慧树知到答案章节测试2023年同济大学
- 自主招生的面试技巧
- 乡土景观研究智慧树知到答案章节测试2023年长安大学
- 四川省成都市武侯区2022-2023学年生物七下期末监测试题含解析
评论
0/150
提交评论