ASP内建对象Request |
从本篇开始作者从 ASP 内建对象着手,为大家 详尽 分析 ASP 的六个内建对象和各种组件的 特点和 步骤 。 在正式开始学习 ASP 的内建对象和组件之前,先让我们来 意识一些 根本概念,这将对各位今后的学习大有协助 。请看下表 : Active Server 随 Windows NT 交付的服务器方技术的
集中 。这些 技术为组件
利用程序治理、数据库
拜访、事务和
信息 提供
统一的服务器方组件、脚本模型和一套集成的系 统服务 。 什么是对象?它可不是指你恋爱的男伴或女伴 。在面向对象编程中,对象便是指由当作 完全实体的操作和数据构成的变量 。对象是基于特定模型的,在对象中客户 使用对象的服务通过由一组 步骤或 有关函数的接口 拜访对象的数据, 而后客户端 可以调用这些 步骤执行某中操作 。ActiveX 组件是 构建 Web 利用程序的 要害,组件提供了在脚本中执行 使命的对象 。ActiveX 组件是一个文件,该文件包括执行某项或一组 使命的代码,因为组件 可以执行公用 使命,这样程序员们就 毋庸自己去 缔造执行这些 使命的代码 。 可以利用组件作为脚本和基于 Web 利用程序的 根本 构造块 。 惟独晓得如何 拜访组件提供的对象, 即便是位编写脚本的新手,也 可以在不了解组件运作 模式的状况下编写脚本 。总之,组件使您不用学习编程就 可以编写 壮大的脚本 。组件是包括在动态链接库 .dll 或可执行文件 .exe 中的可执行代码 。组件 可以提供一个或多个对象以及对象的 步骤和属性 。要 使用组件提供的对象,请 缔造对象的实例并将这个新的实例 调配变量名 。 使用 ASP 的 Server.CreateObject 步骤 可以 缔造对象的实例, 使用脚本语言的变量 调配指令 可 认为对象实例命名 。如下例: Set db=Server.CreateObject("ADODB.Connection") 这里的变量 db 便是 ASP 程序 缔造的 拜访数据库的对象实例 。 Active Server Pages 提供了可在脚本中 使用的内建对象 。这些对象 运消费者更方便收集通过阅读器 申请发送的信息、响应阅读器以及存储消费者信息 , 从而使对象开发者 开脱了众多 繁琐的工作 。当前的 ASP 版本总共提供了六个内建对象,下面让我们将通过实例分别来进行学习 。 一、Request 对象 可以 使用 Request 对象 拜访任何基于 HTTP 申请传递的全部信息,包括从 HTML 表格用 POST 步骤或 GET 步骤传递的参数、cookie 和消费者认证 。Request 对象使您 可以 拜访客户端发送给服务器的二进制数据 。 Request 的语法 : Request[. 集中 | 属性 | 步骤 ]( 变量 ) 在这里作者将 取舍一些常用的对象语法进行 综合 1、Form Form 集中通过 使用 POST 步骤的表格检索邮送到 HTTP 申请 诠释中的表格元素的值 。 语法 Request.Form(element)[(index)|.Count] 参数 element 指定 集中要检索的表格元素的名称 。 index 可选参数, 使用该参数 可以 拜访某参数中多个值中的一个 。它 可以是 1 到 Request.Form(parameter).Count 中间的任意整数 。 Count 集中中元素的个数 Form 集中按 申请 诠释中参数的名称来索引 。Request.Form(element) 的值是 申请 诠释中全部 element 值的数组 。通过调用 Request.Form(element).Count 来确定参数中值的个数 。假如参数未关联多个值,则计数为 1 。假如找不到参数,计数为 0 。要 引用有多个值的表格元素中的单个值,必须指定 index 值 。Index 参数 可以是从 1到Request.Form(element).Count 中的任意数字 。假如 引用多个表格参数中的一个,而未指定 index 值,返回的数据将是以逗号分隔的字符串 。 可以 使用重述符来显示表格 申请中的全部数据值 。例如,消费者通过指定几个值填写表格,见下图 。
关于 hobby 参数,您 可以 使用下面的脚本检索这些值 。 < html> < head>< title>< /title>< /head> < body> < p> 请填写你的 爱好 < /p> < form method="POST" action="form.asp"> < p>< input type="text" name="hobby" size="20">< br> < input type="checkbox" name="hobby" value=" 足球 "> 足球 < input type="checkbox" name="hobby" value=" 乒乓球 "> 乒乓球 < /p> < p>< input type="submit" value=" 发送 " name="B1">< input type="reset" value=" 重填 " name="B2">< /p> < /form> < % For Each I In Request.Form("hobby") Response.Write I & "< BR>" Next %> < /body>< /html> 将以上代码剪贴到记事簿中( 留神将“< ”后面的空格去掉), 保留为 form.asp 文件并运行,request 对象 可以依据你在 form 中填入或 取舍元素内容的不同将元素一一显示出来 。 固然 使用 For...Next 循环也 可以生成同样的输出,如下所示 : < % For I = 1 To Request.Form("hobby").Count Response.Write Request.Form("hobby")(I) & "< BR>"Next %> 2、QueryString QueryString 集中检索 HTTP 查问字符串中变量的值 ,HTTP 查问字符串由问号 (?) 后的值指定 。如: < A HREF= "example.asp?string=this is a sample">string sample< /A> 生成值为 "this is a sample" 的变量名字符串 。通过发送表格或由消费者在其阅读器的地址框中键入 查问也 可以生成 查问字符串 。 语法 Request.QueryString(variable)[(index)|.Count] QueryString 集中 可以让您以名称检索 QUERY_STRING 变量 。Request.QueryString( 参数 ) 的值是浮现在 QUERY_STRING 中全部参数的值的数组 。通过调用Request.QueryString(parameter).Count 可以确定参数有多少个值 。 我们也 可以 使用 QueryString 来达到与前一个范例 雷同的 性能 。 惟独求将 request.form 部分替换如下: < % For Each I In Request.querystring("hobby") Response.Write I & "< BR>" Next %> 3、Cookies 什么是 Cookie?Cookie 其实是一个标签,当你 拜访一个需求唯一标识你的站址的 WEB 站点时,它会在你的硬盘上留下一个标记,下一次你 拜访同一个站点时,站点的页面会搜索这个标记 。每个 WEB 站点都有自己的标记,标记的内容 可以随时读取,但不得不由该站点的页面 实现 。每个站点的 Cookie 与 其余全部站点的 Cookie 存在同一文件夹中的不同文件内(你 可以在 Windows 的目录下的 Cookie 文件夹中找到它们) 。一个 Cookie 便是一个唯一标识客户的标记,Cookie 可以包括在一个对话期或几个对话期中间某个 WEB 站点的全部页面共享的信息, 使用 Cookie 还 可以在页面中间 交换信息 。Request 提供的 Cookies 集中同意消费者检索在 HTTP 申请中发送的 cookie 的值 。这项 性能 时常被 使用在要求认证客户密码以及电子布告板、WEB 聊天室等 ASP 程序中 。 语法 Request.Cookies(cookie)[(key)|.attribute] 参数 cookie 指定要检索其值的 cookie 。 key 可选参数,用于从 cookie 字典中检索子 要害字的值 。 attribe 指定 cookie 本身的有关信息 。如:HasKeys 只读,指定 cookie 是否包括 要害字 。 可以通过包括一个 key 值来 拜访 cookie 字典的子 要害字 。假如 拜访 cookie 字典时未指定 key,则全部 要害字都会作为单个 查问字符串返回 。例如,假如 MyCookie 有两个 要害字 ,First 和Second,而在调用 Request.Cookies 时并未指定其中任何一个 要害字,那么将返回下列字符串 。 First=firstkeyvalue&Second=secondkeyvalue 假如客户端阅读器发送了两个同名的 cookie,那么 Request.Cookie 将返回其中路径 构造较深的一个 。例如,假如有两个同名的的 cookie,但其中一个的路径属性为 /www/ 而另一个为 /www/home/,客户端阅读器同时将两个 cookie 都发送到 /www/home/ 目录中,那么 Request.Cookie 将只返回第二个 cookie 。 要确定某个 cookie 是否 cookie 字典(cookie 有否有 要害字),可 使用下列脚本 。 < %= Request.Cookies("myCookie").HasKeys %> 假如 myCookie 是一个 cookie 字典,则前面的赋值为 TRUE 。不然,为 FALSE 。下面我们来看看一个 cookie 的 利用实例: < % nickname=request.form("nick")response.cookies("nick")=nickname ' 用 response 对象将消费者名写入 Cookie 之中 response.write " 欢送 "&request.cookies("nick")&" 光临小站!" %> < html>< head>< meta http-equiv="Content-Type" content="text/html; charset=gb2312"> < title>cookie< /title> < meta name="GENERATOR" content="Microsoft FrontPage 3.0">< /head> < body> < form method="POST" action="cookie.asp"> < p>< input type="text" name="nick" size="20"> < input type="submit" value=" 发送 " name="B1">< input type="reset" value=" 重填 " name="B2">< /p>< /form> < /body>< /html> 这其实是一个在基于 WEB 的 BBS 或 CHAT 的 ASP 程序中常用的手法,它将消费者在起始页面上填入的姓名 保留在 cookie 中,这样后面的程序就 可以很方便地调用该消费者的 nick 了 。 4、ServerVariables 大家都晓得在阅读器中阅读网页的时候 使用的传输 协定是 HTTP,在 HTTP 的 题目文件中会记录一些客户端的信息,如 : 客户的 IP 地址等等,有时服务器端需求依据不同的客户端信息做出不同的反映,这时候就需求用 ServerVariables 集中猎取所需信息 。 语法 Request.ServerVariables ( 服务器环境变量 ) 因为服务器环境变量较多,作者仅将一些常用的变量在下表中列出 : ALL_HTTP 客户端发送的全部 HTTP
题目文件 。 我们 可以 使用以下脚本打印出全部的服务器环境变量 。 < TABLE> < TR>< TD>< B>Server Variable< /B>< /TD>< TD>< B>Value< /B>< /TD>< /TR>< % For Each name In Request.ServerVariables %> < TR>< TD> < %= name %> < /TD>< TD> < %= Request.ServerVariables(name) %> < /TD>< /TR>< /TABLE> < % Next %> 今日我们 详尽学习了 ASP 内建对象中的 request 对象,这也是 ASP 程序中 使用最频繁的对象, 盼望大家在课后多多 实际 。 |