一、
asp的基本对象
asp(active server page)是一种类似于
vb的面向对象的程序语言。在这里并不想详述对象等一些基本概念,而是直接介绍其语言特性,以便开发人员能够熟练地对
asp程序进行修改和编制(因为很多人都只是直接利用开发工具如interdev来生成
asp程序)。
首先,
asp程序的存档名称肯定是“
asp”;其次,在
asp程序里面,
服务器端的script要放在字符串中间,例如。如果你想在一个
asp文件中调用另一个
asp文件,则可在
asp中加上下面的声明: < ! -- #include virtualfile="***.
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资料。