明辉手游网中心:是一个免费提供流行视频软件教程、在线学习分享的学习平台!

ASP实用大全-ASP对象(3)

[摘要]ASP内建对象Request和Respones(2)  一、Asp的基本对象   Asp(Active Server Page)是一种类似于VB的面向对象的程序语言。在这里并不想详述对象等一些基本概念,而是直接介绍其语言特性,以便开发人员能够熟练地对asp程序进行修改和编制(因为很多人都只是...

ASP内建对象Request和Respones(2)

     一、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资料。