开店乐

开店乐电子商务研究 KaiDianLe.Com

网站地图 :

  搜索:

ASP 内建对象Request和Respones

    Web源于静态文本,现在很多站点几乎还是采用这种方式。静态文本的缺点就是维护难(文件数目多)、查询难、修改难。虽然可以采用FrontPage对站点进行管理,但这只是其中的一个办法。现在,很多的站点都会在后台采用数据库,动态生成超文本。这样 要改变式样,只需修改几个文件;要变更内容,只需对数据库进行操作即可,而且易于保持一致性;而对于全文检索等查询应用,这种方式的优越性更为突出。(经常说的“动态”也包括图片的动态显示,如动态GIF、Java Applet等,本文所指为资料的动态性)

  通用网关界面CGI(Common Gateway Interface)和网络服务器应用程序界面ISAPI(Internet Server Application Programming Interface)与其他相关技术的出现,使我们能够方便地与Web Server进行沟通,从而象一些计数器、留言版等CGI程 式相继出现并蔚然成风。 【文章来自:开店乐KaiDianLe.Com

  但这些CGI程序都有一个很大的缺点,就是CGI(可用VB、Java、Perl、C或Dephi等编写)与html只能分开编写、分开运行,要将两者融合在一起并不 容易,从而导致维护与编写都相当困难。因此,一些厂商后来都推出了自己的Script语言,来增强网页开发的功能。其中Netscape推出了javascript(for client端和for Server端两种);微软则推出了VBScript和Asp(Asp的语法与VB的语法类似)两种,也用于服务器端和客户端程序的编写。对于专业开发人员而言,客户端程序的最重要的一点是通用性,而服务器端的则强调功能和效率。对于Client端程序的开发,javascript无疑是最佳的,因为当今两大主流浏览器IE和Netscape都宣称支持该标准;而VBScript则只有IE才能支持。但令我们苦恼的是对某些javascript的标记,IE或IE的某些版本并不一定会支持,这必导致我们不得不把一部分程序移到服务器端去执行,因为服务器端的程序会先解释生成html(或含ActiveX)文本,再送到客户端,故不存在兼容问题。

  livewire(javascript for Server端的编译器)和Asp一样,都是一些手稿语言(手稿是指类似client端的javascript一样的、可嵌套在html文本里面、只需用标记标明是由服务器执行的程序段),也就是类似C/C++一样的面向对象的语言。livewire的文件后缀名还是html,asp的文件后缀名则是asp,因为asp的文件在客户读取它的时候,服务器才进行解释,而livewire的文件则必须预先进行编译(每次修改后,都要重新编译)。asp有相应的辅助开发工具(InterDev),可代为生成一些控件。当然,这些并不重要,关键是你采用的是Netscape Web Server还是微软的IIS。但就一般而言,因为IIS是捆绑在NT上的,故采用IIS的用户会偏多一些。

  自从Netscape公司推出了livewire和微软推出了Active Server Page以后,程序员编写网上程序就方便和容易了很多。但这种Script类的语言有一个共同的缺点,那就是由于是解释执行的,故速度不会太快。最近,微软建议采用三层模型,中间层可以不用asp,而直接采用VB6.0生成的ActiveX控件,因为是编译执行的,故速度较快,不过这是后话。

  一、Asp的基本对象

  Asp(Active Server Page)是一种类似于VB的面向对象的程序语言。在这里并不想详述对象等一些基本概念,而是直接介绍其语言特性,以便开发人员能够熟练地对asp程序进行修改和编制(因为很多人都只是直接利用开发工具如InterDev来生成asp程序)。

  首先,Asp程序的存档名称肯定是“asp”;其次,在asp程序里面,服务器端的Script要放在字符串中间,例如。如果你想在一个Asp文件中调用另一个Asp文件,则可在Asp中加上下面的声明: < ! -- #INCLUDE VIRTUAL|FILE="***.asp" -- >,这有些象C语言中的#include。其中,Virtual表示虚拟文件路径,File表示真实文件路径。

  Asp有五个主要的内建对象:Request、Response、Server、Session、Application,下面将分别举例对其进行说明。

  1、Request

  Asp依然遵从流行的、利用客户端的Form进行数据交换的方法。Asp内建的request对象拥有五个获取客户端资料的方法(QueryString/Form/Cookies/ServerVariables/ClientCertificate)。

   语法:request.方法名称("参数")|request("参数")

   如果采用后者,系统会自动选择相应的方法。

   Form


    这里再重新强调Form的一些属性:

    Enctype=资料传送的MIME形态

    Method=传送资料的方式Get/Post

    Onrest=按下rest键调用的程序

    Onsubmit=按下sumit键调用程序

    Target=输出内容的frame窗口>

    使用Form传送信息一般有三种方式:由html网页内的Form传信息给其他Asp;由Asp内的Form传信息给另外一个Asp;Asp内的信息传送给自身。

     语法:Request.Form(参数)[(索引)]

     其中参数表示Form中元素的名称,索引表示相同名称元素的顺序号。
   例:
  可循环读取名称为user的元素,其中Count是Form的系统属性,用于计算同名元素的个数,如果该元素不存在,则其值为零。如果没有指明要读取第几个同名元素,则系统会把全部同名元素的值都读取出来,并用“,”作间隔。
  例:Request.form("user")=abc,bcd,cde

   2、QueryString

   语法:Request.QueryString(参数)[(索引)]

   除了用Form传输资料外,还可通过在超链接后接“?”的方式传输信息,如:,这时可通过Request.QueryString("user")读取传输的信息;如果出现多个重名的参数,如:,则第一次

  Resquest.QueryString("user")=abc,第二次

  Resquest.QueryString("user")=bcd,第三次

  Resquest.QueryString("user")=cde。

  3、ServerVariables

   语法:ServerVariables(参数名称)

   我们知道Web/Browse的传输协议是http,http的报头会有一些客户端的信息,如

    客户IP地址、浏览器的语言系统等。这时可通过Request.ServerVariables("***")获取相关信息,如Request.ServerVariables("Accept_Language")可获取客户端浏览器 的语系。其他系统参数见下表:

    SERVER_NAME server的机器名称或IP地址。

     SERVER_PORT server正在运行的端口号

     REQUEST_METHOD 发出request的方法(GET/POST/HEAD

     SCRIPT_NAME 程序被调用的路径,如:cgi-bin/a.pl。

     REMOTE_HOST 发出request请求的远端机器(client)的名称。

     REMOTE_ADDR 发出request请求的远端机器(client)的IP地址。

     REMOTE_IDENT 发出request的使用者名称(如是拨号上网,则为用户ID),当NCSA IdentityCheck为enabled,而且client机器支持RFC 931时,该变量有效。

     CONTENT_TYPE 数据的MIME类型,如:“text/html”。

     HTTP_ACCEPT client可以接受的MIME类型列表。

     HTTP_USER_AGENT client发出request的浏览器类型。

     HTTP_REFERER 在读取CGI程序之前,client所指的文本URL。

  4、Cookies

  在客户端,Cookies记录了客户端浏览器很多的信息,我们可通过Request.Cookies("名称")命令获取它的值,也可通过Response.Cookies("名称")="值"在客户端记录一些信息,以便控制访问者。设置多重Cookies的方法为Response.Cookies("名称")("名称")="值"。

  5、Cache

  我们可以在浏览器上设置从Cache中抽取已经访问过的页面的信息,同样,在Asp程序中也可进行类似的设置。其中Response.Clear为清空客户端的内存。Response.Buffer=True设置可从Cache中读取资料(缺省时为False)。

  6、ClientCertificate

   ClientCertificate用于获取客户端浏览器的身份确认信息(符合X.509标准),但客户端浏览器必须支持SSL3.0或PCT1协议。这里需做两步工作,第一步:web server必须启动用户端认证选项;第二步:对客户端浏览器进行相应设置,这样,该方法才会生效,否则,传回empty值。

  2、Response

   当要从服务器传送资料到客户端时,可通过下面的方法:

   1)Response.Write直接输出信息,如Response.write ""。

   2)Response.Redirect引导客户端到另一个url位置,如Response.Redirect "http://zyr.yeah.net",但这里有一个问题需要注意,就是该语句一定要放在标记前执行,也就是说在服务器未向客户端送出html文本报头前就要被执行,否则会出现传输错误信息。

  3)Response.ContentType控制输出的文件类型,服务器送给客户端的数据包类型可以是text/html文本,也可以是gif/jpeg图形文件,所以每次传输前,我们都必须告知客户端将要传输的文件类型,一般默认情况下为“Text/Html”类型。

  4)Response.Cookies 用于设置Cookies的值,语法为:Response.cookies(变量名称)[(key)|属性]=写入的信息。(key的用法前面已作说明,这里不在叙述)cookies系统默认有五个属性,包括Expires(时间)、Domain(域名)、Path(路径)、Secure(安全性)、Haskeys(判断cookies下是否还有其它cookies文本)。

   5)Response.Buffer用于确定是否把信息传输到缓冲区。因为有时候我们希望把部分中间信息送到缓冲区,然后继续工作。当所有处理工作都完成后,才把信息输出到客户端。但当在处理过程中Flush或End方法被调用,则缓冲区内容将被输出。

  Response的其它属性:

   Expires:设定网页保留在客户端浏览器的时间长度。

   ExpiresAbsolute:设定网页保留在客户端浏览器的日期与时间。

  Response的其它方法:

   AddHeader:设定HTML文件的HTTP报头。

   AppendToLog:在Web Server记录档案末尾,添加字串。

   Clear:清除在缓冲区中的HTML输出资料。

   End:停止处理asp档案,并回传当时状态。

   Flush:立刻送出缓冲区的HTML资料。

【日期:2006-8-7】【作者:不祥】【转载自:开店乐】

相关文章:
 最好的网上开店系统:凡人网络购物系统免费下载
 Rs.open sql,conn,A,B 的A、B各代表什么?
 ASP开发中存储过程应用全接触
 Oracle大文本在ASP中存取问题的解决
 数据分页方法新思路,速度非常快!
 ASP+vbscript写的万能查询表达式生成器
 常用网站数据库SQL操作语句
 ASP程序与SQL存储过程详解
 ASP脚本一空间绑定多个域名代码
 WEB编程开发常用的代码大全
 解决大字段在Form中Post出错的方法
 学习ASP之编写安全的ASP代码
 ASP程序应用之模板采用
 防止别人批量采集功能的ASP代码
 网页图片下拉选择控件使用实例
 平时写程序的时候出错时的解决方法
 “在线访客”的制作方法
 ASP中数据库调用时常见错误的现象和解决
 ASP 编程中20个非常有用的例子
 经典实用的基础asp程序整理
 ASP中从数据库读取二进制文件数据代码
 ASP动态生成的javascript表单验证代码
 在电子商务中实现购物车的方法
 ASP利用Google实现在线翻译功能
 实现千万级数据分页的存储过程
 详细说明用ASP和WML来实现数据库查询
 ASP访问INTERBASE数据库
 ASP安全配置不完全手册
 在ASP中如何访问Novell下的数据库
 ASP进阶学习必经之认识数学函数11种
 初学者必读 ASP运行环境的搭建
 解析asp的脚本语言
 学习使用ASP对象和组件
 让ASP程序运行于非Windows平台
 通过启动脚本来感受ASP的力量
 一些不长见的ASP调用存储过程的技巧
 使用ASP脚本技术
 优化Web数据库页面
 Asp限制IP访问代码
 ACCESS数据库防下载另类方法
 ASP浏览器性能组件
 细说ASP中Counters 组件
 全面解析Server对象
 ASP 内建对象Request和Respones
 深入研究Application和Session对象
 使用ASP、VB和XML建立运行于互联网上的应用程序
 在客户端执行数据库记录的分页显示
 对ASP脚本源代码进行加密
 用代码打开Access文件的两种方法
 使用Visual InterDev进行小组开发
 用JScript脚本实现分页的另类办法
 ASP中Cookie读写的实现方法
 如何使用ASP建立虚拟的FTP服务器
 在ASP中自动创建多级文件夹的函数
 一个硬盘文件搜索的Asp源码
 ASP使用MYSQL数据库全攻略
 ASP上传数据流格式分析详解
 ASP汉字转换UTF-8及UTF-8转换GB2312
 ASP常用数据库连接及操作的方法
 ASP编程中常用SQL命令使用方法
 ASP查询记录时RecordCount=-1问题
 让你的WAP网站有更好的兼容性
 如何注册服务器端组件
 轻松实现任何程序和动易整合
 在服务器端调用winzip命令行对上传的多个文件打包压缩
 用ASP制作强大的搜索引擎
 ASP彩色校验码的制作
 ASP 系列函数大全
 ASP程序处理进程进度条
 Asp无组件生成缩略图
 用ASP实现自动建站.实现虚拟二级目录
 删除Access数词库中的空记录
 ASP身份证验证代码函数
 ASP写的自动生成SELECT表单的函数
 几种打开记录集方式的比较
 用ASP实现汉字转拼音的功能
 ASP分页代码,已经写成类了,值得参考
 ASP下载系统防盗链方法
 Global.asa文件用法大全
 如何防止页面中的敏感信息被提取
 Delphi编写组件封装asp代码的基本步骤
 制做行背景颜色交替变换的表格
 如何用foreach遍历页面上所有的TextBox
 将数据库中的信息存储至XML文件中
 用Asp写个加密和解密的类
 如何固定表格的标题行和标题列
 ASP小偷(远程数据获取)程序入门教程
 Asp编写不再让人讨厌的自动弹出窗口
 用ASP实现在线压缩与解压缩
 使用组件封装ASP的数据库操作
 ASP中读写注册表
 ASP判断函数一览及网页制作常用技术
 ASP中Cookie使用指南
 随机产生用户密码(good)
 ASP:如何对身份证的籍贯进行验证
 ASP产生随机密码的函数
 ASP+ADO实现数据读写简单示例
 一个简单的用户登录接口ASP实现
 ASP+SQL Server构建网页防火墙
 一个通用的保护ASP系统的方法
 利用ASP发送和接收XML数据的处理方法

版权所有:Kaidianle.Com  联系方式:Shnxn@Yhaoo.Com.Cn 京ICP备06028743号 在线留言