asp内置对象-文档资料_第1页
asp内置对象-文档资料_第2页
asp内置对象-文档资料_第3页
asp内置对象-文档资料_第4页
asp内置对象-文档资料_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

1、1Asp主要内置对象2Response对象的方法和属性对象的方法和属性 Response的直译是“响应”,所谓响应,对ASP程序来说,就是把数据传送给客户端的浏览器。,我们已经使用过Response对象的Write方法(Response.Write)输出数据到浏览器,例如:Response.Write “看到这个测试网页,就说明你的ASP系统已能正常工作了!。3ASP的Response对象提供的常用方法和属性 Write方法输出数据到浏览器。 Redirect方法改变浏览的网页。 End方法结束数据的输出。 Buffer属性是否设置缓冲区。 Clear方法清除缓冲区内的数据。 Flush方法输

2、出缓冲区内的数据。 IsClientConnected属性浏览器是否还在联机(网)中。4 Response.Write方法 使用Response对象提供的Write方法可以传送数据到浏览器,其语法如下: Response.Write displaydata (1)Response.Write方法传送的数据为自由类型(Variant)。如果传送的是字符串,则必须使用双引号将该字符串包括起来;若字符串中含有双引号,重复双引号一次即可。5 要输出: % Response.Write test %6 (2)使用单独一行Response.Write方法传送数据至客户端,如果超过1022个字符,将会出现错

3、误。如果要传送超过1022个字符的字符串,可以分成多行Response.Write输出,或者先将字符串存放到变量中,再用Response.Write将变量输出。7 (3)如果在之间只有一行Response.Write语句,则可以将它简写成,例如下面两个语句的意义是相同的: 8 编写一个ASP程序c4_1_2.asp,使用Response.Write方法,将某学生的语文、数学、英语成绩(假设分别为84、96、89)及教师评语(平均成绩在80分以上,评语“成绩优良,请再接再厉!”;否则评语“别泄气,要继续努力哦”)传送到客户端的浏览器,如图4-2所示。9=80 Then word=成绩优良,请再接

4、再厉!Else word=别泄气,请继续努力哦!End If%语文成绩:数学成绩:英语成绩:教师评语:10 2. Response.Redirect方法 Response对象的Redirect方法可以让我们将目前的网页转移到另一个网页,语法如下: Response.Redirect URL 产生错误 (1)Response.Redirect方法必须使用在未输出任何数据到浏览器之前,否则会出现错误。在下面的程序中: 错误11 (2)使用Redirect方法的优点是,可以把内容比较复杂的网页分成几个子网页,甚至可以存放在不同的文档、目录或者Web Server里,然后由主网页来判断当时的情况,以决

5、定跳转到哪个子网页。12 【实验】 编写程序c4_1_3.asp,可以根据今天是星期几转移到同一目录下的对应网页(星期日转移到00.htm、星期一转移到01.htm星期六转移到06.htm)。13 14 Response.End 方法的主要作用是告诉浏览器数据已经下载完毕,另外使用它也可以让IIS/PWS不再解读后面的HTML标记和ASP程序,从而达到终止.asp程序执行的目的。例如,在下面的程序中:15 % Response.Write大家好! Response.End Response.Write我是小明 % Response.End后面的那个Response.Write语句将不被执行。1

6、6 【实验】 使用Response.End方法编写使用期限为2001/12/31的网页c4_1_4.asp,一般情况下网页中显示“欢迎光临!”;如果上网者在使用期限过后浏览该网页,则显示“对不起,本网页已过使用期限!”;此外,设置网页的开放时间为8:0020:00,若在其他时间访问它,则显示“对不起,本网页的开放时间为8:00至20:00!”。17 #2001/12/31# Then Response.Write对不起,本网页已过使用期限! Response.End End If If Time#20:00:00# Then Response.Write对不起,本网页的开放时间为8:00至20

7、:00! Response.End End If % Welcome! 欢迎光临! 18 (1)调用Response.Write方法可以将要输出的数据下载给浏览器,但我们也可以将Response.Buffer的属性值设置为True,要求IIS/PWS先将要输出的数据写到缓冲区(buffer),然后等到以下几种情况出现时,再将缓冲区内的数据下载给浏览器: IIS/PWS解读完ASP程序时; 过程调用了Response.End方法时; 过程调用了Response.Flush方法时。 需要强调的是,将Response.Buffer的属性值设置为True,必须在没有任何数据或者HTML标记输出到浏览器

8、之前进行;所以我们最好像上面程序中所做的那样,将“Response.Buffer =True”放在ASP程序的最前面。19 4输出缓冲区的设置 【实验】 将使用Response.Write方法输出的数据“大家好!我是小明。”写到缓冲区(buffer),然后使用Response.Flush方法将缓冲区内的数据下载给浏览器。 【程序】 20 (2)调用Response.End、Response.Flush方法可以强制将缓冲区内的数据输出,此外,也可以调用Response.Clear方法中途取消(清除)缓冲区内的数据,请看以下例子: 其中,调用Response.Clear方法将缓冲区内的数据“大家好

9、!我是小明。”、“取消缓冲区内的数据”一并清除。(客户端看不到东西)21一个例子 一个查询所属的星座网页:一个网页,输入生日,提交后,输出所属的星座。22 Form 对象对象 Form 对象代表一个 HTML 表单。 在 HTML 文档中 每出现一次,Form 对象就会被创建。23 表单的基本语法表单的基本语法 . . *=GET, POST 24 标记的action属性:等于xx.asp,表示按下“提交数据”按钮之后,服务器端处理这个输入表单的程序是xx.asp。 标记的method属性:等于POST,浏览器会等待Server来读取数据;若设置成GET,则按下“提交数据”按钮后,表单上的数据

10、会附在网址之后一起送到Server。为此,在设计含有密码文本框的表单时,建议您将表单的method属性设置为POST,如果使用GET,则在浏览器的网址栏上可以清楚地看到输入的密码 .将表单的传送方式设置为method=POST,这种方式适合于传送较大量的数据(数据长度可大于256 bytes) 25 表单中提供给用户的输入形式表单中提供给用户的输入形式 *=text, password, checkbox, radio, image, hidden, submit, reset *=Symbolic Name for CGI script 26 隐藏表单的元素隐藏表单的元素 Here is a

11、 hidden element. 27Request Request是ASP里的一个内部对象,用于获取HTTP请求中传递的任意信息(如头信息、表单数据、cookies等等)。所以这是在ASP里面最常用的内部对象,常用来获得GET方式提交的数据(Request.QueryString)、表单POST提交的数据(Request. Form)和Cookies Request.Cookies)。 28 集合 ClientCertificate包含了存储于客户证书中的域值(field values) Cookies包含了 HTTP 请求中发送的所有 cookie 值 Form包含了使用 post 方法由

12、表单发送的所有的表单(输入)值 QueryString包含了 HTTP 查询字符串中所有的变量值 ServerVariables包含了所有的服务器变量值29 属性 TotalBytes返回在请求正文中客户端所发送的字节总数 方法 BinaryRead取回作为 post 请求的一部分而从客户端送往服务器的数据,并把它存放到一个安全的数组之中。30 FirstName: LastName: 31 使用Request对象的Form集合可以取得客户端表单各字段所输入的数据,语法如下: Request.Form (fieldname) strFirstName = Request.Form(“First

13、Name”) strLastName = Request.Form(“LastName”)32 Request.Form(fieldname)中的Form可以省略不写,将此语句简写为Request (fieldname)。Request.Form(fieldname) strFirstName = Request (“FirstName”) strLastName = Request (“LastName”) 33 也可使用窗体中控件的整型索引,索引的范围从在HTML中第一个定义的控件开始,然后根据定义的顺序排序: Request.Form(index) 其中index代表该数据在Form集合

14、中的序号. strFirstName = Request.Form(1) strLastName = Request.Form(2)34 然而,后面的这种以整型为索引的技术不推荐使用,因为一旦有HTML中的控件发生了变化,或者插入一个新的控件,则ASP代码将得到错误的值。进一步而言,对于阅读代码的人来讲,极容易混淆。35 遍历一个ASP集合 每个集合提供一个Count属性,返回的是集合中条目数量。可通过使用一个整型索引使用Count属性来遍历。 For intLoop=1 To Request.Form.Count Response.Write Request.Form(intLoop) &a

15、mp; “” Next36 在某些情况下,ASP集合中的各个成员可能不止一个值,这种情况发生在HTML定义中有几个控件有相同Name属性时。例如: FORM ACTION=”Show_request.asp” METHOD=”POST” INPUT TYPE=”TEXT” NAME=”OtherHobby” INPUT TYPE=”TEXT” NAME=”OtherHobby” INPUT TYPE=”TEXT” NAME=”OtherHobby” INPUT TYPE=”SUBMIT” VALUE=”Send” /FORM37 为了能够在这种情况下,访问单个值,可以用复杂一些的代码: For

16、 Each objItem In Request.Form If Request.Form(objItem).Count 1 Then Response.Write objItem & “:BR” For intLoop = 1 To Request.Form(objItem).CountResponse.Write “Subkey” & intLoop & “value = “& Request.Form(objItem) (intLoop) & “BR”Next Else Response.Write objItem & “ = ” &

17、; Request.Form(objItem) & “BR” End If Next38 2. Request.QueryString集合集合 提示:提示:QueryString集合的功能和Form差不多,唯一的差别在于前者可以直接取得加在网址后面的附加参数,这些参数通常以问号来连接,如“http:/?”。 /asp/ttt.asp?Name =李红&S1=86&S2=97” 39 ?Name = 李红李红 & S1=86 & S2=97 ?表示后面是附带的数据, 数据之间使用&来隔开40 我们用Request对象能

18、指定获取某个特定方式提交的数据。比如我们用这段代码获得通过POST提交的数据lake2的值:request.Form(“lake2”); 而request.queryString(CSDN)获得GET方式提交的CSDN的值。 对于获取HTTP数据,ASP还给了我们一个更简单的方法:request(key),即直接使用request而不指定数据集合。此时ASP会依次在QueryString、From、Cookies、ServerVariables、ClientCertificate、Browser中检查匹配的数据,若发现则返回数据。41 Request.ServerVariables来取得服务器

19、端的环境信息,语法如下: Request.ServerVariable(ServerEnviVariablname) 其中ServerEnviVariablname参数是指服务器端的环境变量名称(共有20多项),下面表列出的是一些常用的环境变量。42环境变量名称用环境变量名称用 途途Auth_Password取得客户端所传来的认证使用者密码。Auth_User取得客户端所传来的认证使用者帐号。Gateway_Interface传回服务器端的CGI版本。Content_Type传回客户端文件传送的形式。Local_Addr传回服务器端计算机的IP地址。Path_Info取得网页的虚拟路径。Que

20、ry_String取得放在HTTP:/后以?开头的字符串数据。Remote_Addr取得远程主机的IP地址。Remote_Host取得远程主机的名称。Remote_User取得远程的使用者名称。Request_Method取得HTTP的请求方式如:POST、HEAD、GET。Script_Name取得所执行的ASP程序的路径与文件名。Server_Name传回服务器的计算机名称、DNS别名或IP地址。Server_Port取得服务器的连接口(Port)号码。Server_Protocol取得HTTP的版本。Server_Software取得服务器端的服务器名称和版本。URL取得目前网页的存储地

21、址(虚拟路径)。43 服务器端计算机的IP地址: 本网页所在的虚拟路径: 4445Server对象对象 Server对象是ASP中一个很重要的对象,许多高级功能都是靠它来完成的。它提供了对Active Server Pages对和方法的使用,主要介绍几个常用的方法。 MapPath方法方法 CreateObject方法方法 46 MapPath方法方法 该方法返回指定文件的相对路径或物理路返回指定文件的相对路径或物理路径径。若Path以一个(/)或()开始,则MapPath方法返回路径时将Path视为完整的虚拟路径。若Path不是以斜杠开始,则MapPath方法返回同.asp文件中已有的路径相

22、对的路径。如:test.asp文件位于C:inetpubwwwrootmyhome下,C:inetpubwwwroot为服务器的宿主目录,而test.asp包含如下脚本:47 输出:C:inetpubwwwrootmyhometest.asp要得到这个结果还可以用如下方法: 48 CreateObject方法方法 这个方法是Server对象中最重要的方法,在后面可以看到,许多功能都不得不用到它。它用于创建已注册到服务器上的创建已注册到服务器上的ActiveX组件能够使扩展组件能够使扩展ActiveX的能力的能力。用于创建服务器端的方法如下:Server.CreateObject(“Compon

23、entName”)用来创建的组件可以是所有ActiveX能使用的内置组件,实际上是存在于服务器的所有ActiveX组件。例如: Set fs = CreateObject(Scripting.FileSystemObject)49Application对象:对象: Application对象是个应用程序级的对象,用用来在所有用户间共享信息来在所有用户间共享信息,并可以在并可以在Web应用程序运行期间持久地保持数据。应用程序运行期间持久地保持数据。Application的属性:方法如下: Application对象没有内置的属性,但是我们可以自行创建其属性。 50 其实大部分Applicatio

24、n变量都存放在Contents集合中,当你创建一个新的Application变量时,其实就是在Contents集合中添加了一项。下面两个脚本是等效的: 或 % Application.contents(greeting)=hello! 51 你是第位访客52 Application的方法: Application的方法只有两个方法:一个是Lock,另一个是Unlock。其中Lock方法用于保证方法用于保证同一时刻只能一个用户对同一时刻只能一个用户对Application操作。操作。Unlock则用于取消则用于取消Lock方法的限制。方法的限制。如: 53Session对象对象 Session其

25、实指的就是访问者从到达某个特访问者从到达某个特定主页到离开为止的那段时间定主页到离开为止的那段时间。每一访问者都会单独获得一个Session。在Web应用程序中,当一个用户访问该应用时,Session类型的变量可以供这个用户在该供这个用户在该Web应用的所有页面中共享数据应用的所有页面中共享数据;如果另一个用户也同时访问该Web应用,他也拥有自己的Session变量,但两个用户之间无法通过Session变量共享信息,而Application类型的变量则可以实现站点多个用户之间在所有页面中共享信息。 54 与Application一样,一个被定义为Session类型的数组只能将整个数组作为一个对

26、象,用户不能直接改变Session数组中某个元素的值。为了创建一个Session数组,需先定义一个普通的数组,并对它的每一个元素赋初值,最后把它定义为一个Session数组。如:55 % Session(“test)=“hhh” dim array()array=array(jeff,zhu,male)Session(info)=array Response.write Session(“test) Response.write Session(info)(0) &-Response.write Session(info)(1) &-Response.write Session

27、(info)(2) &%56 你是第 刷新57 1、SessionID属性属性 该属性返回当前会话的唯一标志,为每一个Session分配不同的编号。如果要实现的功能:当一个会员登录后正在看此模块时,另一个人用同样的会员名登录,就不能浏览这个模块。也就是说一个会员名同时只能一个人浏览此模块。我们通过用会员名(假设为UserID,唯一)和SessionID来实现了控制。当会员登录时,给这个会员一个Session记录登录状态如:Session(Status)=Logged,同时把这个会员的Session.SessionID写入数据库。当他要浏览此模块时,先判断其是否登录,若已经登录再判断它的

28、SessionID是否与数据库记录的相同,如果不同则不能访问。这样,当另一个用户用相同的会员名登录时,那么数据库中记录的就是新的SessionID,前者访问此模块时就不能通过检查。这就实现了一个会员名同时只能一个人浏览某个模块。这个功能在一些收费网站有很有特别作用,它防止了一个会员名给多个人浏览的问题,为公司保障了利益。58 TimeOut属性属性 该属性用来定义用户Session对象的时限。如果用户在规定的时间内没有刷新网页,则Session对象就会终止。一般默认为20分钟。59 3、Abandon方法方法 该方法是Session对象的唯一方法,可以清除Session对象,用来消除用户的Se

29、ssion对象并释放其所占的资源。如: 60ASP包含文件包含文件 使用可以在一个ASP程序中包含其它文本文件。当同样的内容被多个网页所使用时,我们可以将其写成一个单独的文件,然后使用将该文件包含到ASP网页中。filename为文件名称,必须在名称中指定文件的相对路径。要注意的是,不可以包括在符号中。61 62Global.asa Global.asa 文件文件 Global.asa 文件是一个可选的文件,它可包含可被 ASP 应用程序中每个页面访问的对象、变量以及方法的声明。所有合法的浏览器脚本都能在 Global.asa 中使用。 Global.asa 文件可包含下列内容:文件可包含下列

30、内容: Application 事件 Session 事件 声明 TypeLibrary 声明 #include 命令 注释:注释:Global.asa 文件须存放于 ASP 应用程序的根目录中,且每个应用程序只能有一个 Global.asa 文件。63 首先.asa是文件后缀名,它是Active Server Application的首字母缩写。Global.asa文件可以管理在ASP应用中两个非常苛刻的对象:Application、Session。 关于Global.asa文件最常见的错误概念是它能为一般的使用的函数和子程序用作书库。Global.asa文件仅能用于创建对象的引用和俘获启动

31、,以及结束Application对象和Session对象。 64 Global.asa 中的事件中的事件 在 Global.asa 中,我们可以告知 application 和 session 对象在启动和结束时做什么事情。完成此项任务的代码被放置在事件操作器中。Global.asa 文件能包含四种类型的事件: Application_OnStart - 此事件会在首位用户从 ASP 应用程序调用第一个页面时发生。此事件会在 web 服务器重起或者 Global.asa 文件被编辑之后发生。Session_OnStart 事件会在此事件发生之后立即发生。 Session_OnStart - 此

32、事件会在每当新用户请求他或她的在 ASP 应用程序中的首个页面时发生。 Session_OnEnd - 此事件会在每当用户结束 session 时发生。在规定的时间(默认的事件为 20 分钟)内如果没有页面被请求,session 就会结束。 Application_OnEnd - 此事件会在最后一位用户结束其 session 之后发生。典型的情况是,此事件会在 Web 服务器停止时发生。此子程序用于在应用程序停止后清除设置,比如删除记录或者向文本文件写信息。65 Global.asa 文件可能类似这样: sub Application_OnStart some code end sub sub Application_OnEnd some code end sub sub Session

温馨提示

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

评论

0/150

提交评论