ASP基础入门第六篇(ASP内建对象Request) |
在正式开始学习 ASP 的内建对象和组件之前,先让我们来认识一些基本概念,这将对各位今后的学习大有帮助 。请看下表 : Active Server 随 Windows NT 交付的服务器方技术的集合 。这些 技术为组件应用程序管理、数据库访问、事务和消息 提供一致的服务器方组件、脚本模型和一套集成的系 统服务 。 Active Server Pages (ASP) 在服务器上运行 ActiveX 脚本和 ActiveX 组件的服 务器方脚本环境 。开发人员可以将脚本和组件结合在 一起创建基于 Web 的应用程序 。 ActiveX 允许开发人员为 World Wide Web 创建交互式组件的 内涵丰富的Microsoft 技术术语 。允许用不同语言编写的软 件组件在网络环境中一起工作的一组不依赖语言的 互操作技术 。ActiveX 的关键元素是组件对象模型 (COM) 和 分布组件对象模型 (DCOM) 。这些技术已得到开放组织的 许可,已移植到许多平台上 。 ADO Active 数据对象 。为基于 Internet 以数据为中心的 应用程序而优化的一组基于对象的数据访问接口 。ADO 基于已发布的规范并且随带在Microsoft Internet Information Server 和 Microsoft Visual InterDev 中 。 DSN 数据源名称 。开放式数据库接口 (ODBC)用于引 用访问数据所需的驱动程序或其他信息的逻辑名称 。Internet信 息服务器用于连接到 ODBC 数据源(如 SQL Server 数据库)的 名称 。 event: 事件 由用户或 ActiveX 控件产生的程序响应的任何 操作 。一般事件包括按键盘键、通过使用鼠标单击选 择按钮和其他鼠标操作 。编程人员编写响应这些操作 的代码 。 object: 对象 在面向对象编程中,由当作完整实体的操作 和数据组成的变量 。对象是基于特定模型的,在对象 中客户使用对象的服务通过由一组方法或相关函数 的接口访问对象的数据 。然后客户端可以调用这些方 法执行某中操作 。 ODBC 开放式数据库接口 。允许应用程序从各种跨 平台数据访问的已有数据源标准规格中访问数据的 应用程序编程接口 。 SQL 结构化查询语言 Structured Query Language 。定义和访 问关系型数据库的国际标准 。 什么是对象? 它可不是指你恋爱的男伴或女伴 。在面向对象编程中,对象就是指由当作完整实体的操作和数据组成的变量 。对象是基于特定模型的,在对象中客户使用对象的服务通过由一组方法或相关函数的接口访问对象的数据,然后客户端可以调用这些方法执行某中操作 。 ActiveX 组件是建立 Web 应用程序的关键,组件提供了在脚本中执行任务的对象 。ActiveX 组件是一个文件,该文件包含执行某项或一组任务的代码,由于组件可以执行公用任务,这样程序员们就不必自己去创建执行这些任务的代码 。可以利用组件作为脚本和基于 Web 应用程序的基本构造块 。只要知道如何访问组件提供的对象,即使是位编写脚本的新手,也可以在不了解组件运作方式的情况下编写脚本 。 总之,组件使您不用学习编程就能够编写强大的脚本 。组件是包含在动态链接库 .dll 或可执行文件 .exe 中的可执行代码 。组件可以提供一个或多个对象以及对象的方法和属性 。要使用组件提供的对象,请创建对象的实例并将这个新的实例分配变量名 。使用 ASP 的 Server.CreateObject 方法可以创建对象的实例,使用脚本语言的变量分配指令可以为对象实例命名 。如下例: Active Server Pages 提供了可在脚本中使用的内建对象 。这些对象使用户更容易收集通过浏览器请求发送的信息、响应浏览器以及存储用户信息 , 从而使对象开发者摆脱了很多烦琐的工作 。目前的 ASP 版本总共提供了六个内建对象,下面让我们将通过实例分别来进行学习 。 一、Request 对象 可以使用 Request 对象访问任何基于 HTTP 请求传递的所有信息,包括从 HTML 表格用 POST 方法或 GET 方法传递的参数、cookie 和用户认证 。Request 对象使您能够访问客户端发送给服务器的二进制数据 。 Request 的语法 : Request[. 集合 | 属性 | 方法 ]( 变量 ) 在这里作者将挑选一些常用的对象语法进行分析 Form 集合通过使用 POST 方法的表格检索邮送到 HTTP 请求正文中的表格元素的值 。 语法 Request.Form(element)[(index)|.Count] 对于 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"> < /form> < % For Each i In Request.Form("hobby") Response.Write i & "< BR>" Next %> </body> < /html> 将以上代码剪贴到记事簿中(注意将“< ”后面的空格去掉),保存为 form.asp 文件并运行,request 对象可以根据你在 form 中填入或选择元素内容的不同将元素逐个显示出来 。 当然使用 For...Next 循环也可以生成同样的输出,如下所示 : 2、QueryString 3、Cookies 如果客户端浏览器发送了两个同名的 cookie,那么 Request.Cookie 将返回其中路径结构较深的一个 。例如,如果有两个同名的的 cookie,但其中一个的路径属性为 /www/ 而另一个为 /www/home/,客户端浏览器同时将两个 cookie 都发送到 /www/home/ 目录中,那么 Request.Cookie 将只返回第二个 cookie 。 要确定某个 cookie 是不是 cookie 字典(cookie 有否有关键字),可使用下列脚本 。 如果 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"> < /form> </body>< /html> 这其实是一个在基于 WEB 的 BBS 或 CHAT 的 ASP 程序中常用的手法,它将用户在起始页面上填入的姓名保存在 cookie 中,这样后面的程序就可以很容易地调用该用户的 nick 了 。 4、ServerVariables 大家都知道在浏览器中浏览网页的时候使用的传输协议是 HTTP,在 HTTP 的标题文件中会记录一些客户端的信息,如 : 客户的 IP 地址等等,有时服务器端需要根据不同的客户端信息做出不同的反映,这时候就需要用 ServerVariables 集合获取所需信息 。 由于服务器环境变量较多,作者仅将一些常用的变量在下表中列出 : ALL_HTTP: 客户端发送的所有 HTTP 标题文件 。 CONTENT_LENGTH: 客户端发出内容的长度 。 CONTENT_TYPE: 内容的数据类型 。如:“text/html” 。同附加信息 的查询一起使用,如 HTTP 查询 GET、POST 和 PUT 。 LOCAL_ADDR: 返回接受请求的服务器地址 。如果在绑定多 个 IP 地址的多宿主机器上查找请求所使用的地址 时,这条变量非常重要 。 LOGON_USER: 用户登录 Windows NT 的帐号 。 QUERY_STRING:查询 HTTP 请求中问号(?)后的信息 。 REMOTE_ADDR:发出请求的远程主机 (client) 的 IP 地址 。 REMOTE_HOST:发出请求的主机 (client) 名称 。如果服务器无此 信息,它将设置为空的 MOTE_ADDR 变量 。 REQUEST_METHOD:该方法用于提出请求 。相当于用于 HTTP 的 GET、HEAD、POST等 等 。 SERVER_NAME:出现在自引用 URL 中的服务器主机名、DNS 化名 或 IP 地址 。 SERVER_PORT:发送请求的端口号 。 我们可以使用以下脚本打印出所有的服务器环境变量 。 < 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 程序中使用最频繁的对象,希望大家在课后多多实践 。 |