分享
 
 
 

ASP编程入门进阶(五):内置对象Response

王朝asp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

通过对Request对象的学习,可以了解到,Request对象是服务器端用来获取客户端的信息的。

但作为服务器和客户端进行交互,是不是还缺少服务器端向客户端发送信息呢?对象Response正是担任此责任。

负责将信息传递给用户的对象就是Response了,它可动态地响应客户端的请求,并将动态生成的响应结果返回给客户端浏览器。

一,Response.write

在Response中write方法是使用最频繁的一个了,write就是写:将指定的字符串写到当前的 HTTP 输出。

1,write.asp

<%

response.write("hello,world"&"<br>")

Randomize

response.write "任意数是"&rnd()&"<br>"

%>

response.write后面为所显示的信息,可以用括号包含,也可以直接书写(注意和response.write之间有空格)。

书写的字符串信息或者HTML代码相关,用引号包含;而ASP本身的函数或变量则不需要,直接用即可。

并且无论字符串信息、HTML代码、函数还是变量之间进行连接都是采用&号(针对vbscript)

以上遇到一个随机函数rnd(),该函数返回一个小于 1 但大于或等于 0 的值。

需要注意的是在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生成器具有基于系统计时器的种子。

若缺少Randomize,则无法继续生成随机种子。

下面一个利用随机函数的例子,产生随机背景颜色效果:

<script language=vbs>

Randomize '首先Randomize产生随机种子

suij=rnd() '接着将函数值赋变量suij

suij=replace(suij,".","9") '然后对变量suij中小数点符号转换为数字9

suij=left(suij,6) '再取变量中的左6位

document.write "<body bgcolor=#"&suij&">" '最后应用到背景颜色中去

</script>

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

当然要产生指定范围的随机整数,请使用以下公式:

Int((upperbound - lowerbound + 1) * Rnd + lowerbound)

这里, upperbound 是此范围的上界,而 lowerbound 是此范围内的下界。

<script language=vbs>

Do Until choose = vbNo

value = Int((41 * Rnd) + 60) '产生 60 到 100 之间的随机数。

msgbox value

choose = MsgBox ("Roll again? ", vbYesNo)

Loop

</script>

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

随机函数在做考试系统的时候非常有用,当然你也可以用来自己摇奖,拿个头彩也分点我就行了

二,Response.end

这是Response常用的一种方法,使 Web 服务器停止处理脚本并返回当前结果,文件中剩余的内容将不被处理。

主要放在一页多功能的ASP页中,为让程序运行到此,抑或往下的程序没必要再执行显示……

2,end.asp

<%response.write now()

response.end '程序执行显示到此结束

response.write rnd()%>

三,Response.clear

该方法主要作用是清除缓冲区中的所有 HTML 输出,但该方法只清除响应正文而不清除响应标题。

该方法和end方法似相反,end是到此结束返回上面的结果,而clear却是清除上面的执行,然后只返回下面的结果。

3,clear.asp

<%response.write now()

response.clear '以上程序到此全被清除

response.write rnd()%>

下面通过一个例子来仔细看看end and clear

4,end2clear.asp

<%

filepath=request.servervariables("script_name")

user=Request.Form("username")

pwd=Request.Form("password")

%>

<form method="POST" action="<%=filepath%>">

name:<input type="text" name="username"><br>

pwd:<input type="password" name="password"><br>

<input type="submit" value="submit">

</form>

<%

If user="cnbruce" and pwd="cnbruce" Then

response.write "采用clear方法,上面的程序结果将清除。"

response.clear ' 清空存储在缓存中的页面

Else

response.write "采用end方法,下面的程序将停运。"

Response.End ' 立即停止脚本处理,并将缓存中的页面输出

End If

%>

如果你只看到“刷新”链接就表明clear方法已经生效<br>

<a href="<%=filepath%>">刷新</a>

以上程序中,当输入用户名和密码同为cnbruce的时候会发现clear方法的处理结果,反之是另外一个效果。

四,Response.redirect

Redirect 方法是让浏览器立即重定向到程序指定的URL地址。这在根据客户的不同响应,为不同的客户指定不同的页面,或根据不同的情况指定不同的页面时,显得非常重要。

该方法是立即生效的,在其后的脚本都不执行。

5,redirect.asp

<%response.redirect("http://www.cnbruce.com/")%>

以上四则运用属于Response对象的几个比较重要的方法:write、end、clear、redirect等当然方法还有:AddHeader、AppendToLog、BinaryWrite、Flush……

早说过,一个ASP对象除了对象方法外,还有对象属性

那response对象的属性有哪些呢?

五,Response.ContentType

ContentType 属性指定服务器响应的 HTTP 内容类型。如果未指定 ContentType,默认为 text/html。

6,contenttype.asp(非text/html的)

<% Response.ContentType = "text/HTML" %>

<% Response.ContentType = "image/GIF" %>

<% Response.ContentType = "image/JPEG" %>

<% Response.ContentType = "text/plain" %>

<% Response.ContentType = "image/JPEG" %>

六,Response.charset

Charset 属性将字符集名称附加到 Response 对象中 content-type 标题的后面,用来设置服务器响应给客户端的文件字符编码。

7,charset.asp

<% Response.charset = "big5" %>

中文显示,但采用的big5繁体的编码,所以看到的是乱码。

当然Response.ContentType和Response.charset应用得比较少了。直接在head头部属性里面添加就OK了。

七,Response.expires

该属性指定了在浏览器上缓冲存储的页,距过期还有多少时间。

如果用户在某个页过期之前又回到此页,就会显示缓冲区中的页面。

但若设置 response.expires=0,则可使缓存的页面立即过期。

这是一个较实用的属性,当客户通过 ASP 的登陆页面进入 WEB 站点后,应该利用该属性使登陆页面立即过期,以确保安全。

引用一个经典的例子

8,expires.asp

<%

Response.Expires = 0

Response.Expiresabsolute = Now() - 1

Response.AddHeader "pragma","no-cache"

Response.AddHeader "cache-control","private"

Response.CacheControl = "no-cache"

%>

八,Response.status

设置服务器要响应的状态行的值。Response.status="状态描述字符串",字符串可以为一个三位整数或一串说明文字组成,但必须防在<html>之前。

9,status.asp

<% Response.Status = "401 Unauthorized" %>

九,Response.buffer

比较重要的一个,值为true or false。该属性指示是否缓冲页输出。

引用:当缓冲页输出时,只有当前页的所有服务器脚本处理完毕或者调用了 Flush 或 End 方法后,服务器才将响应发送给客户端浏览器,服务器将输出发送给客户端浏览器后就不能再设置 Buffer 属性。因此应该在 .asp 文件的第一行调用 Response.Buffer。

Response.buffer=true

对于Response对象的属性和方法先到这里,剩下一个数据集合,即cookie。

继续看cookies讲座吧。

应用举例题

表单发OutLook邮件

<style>

input{ border:1px solid navy; width:150}

</style>

<script>

function test(){

var NewTitle=title.value;

var NewContent=content.value;

document.location.href="mailto:"+aaa.value+"?cc="+bbb.value+"&bcc="+ccc.value+"&subject="+NewTitle+"&body="+NewContent;

}

</script>

<pre>

<font color=red>收件人: </font><input name=aaa><br>

<font color=red>操送: </font><input name=bbb><br>

<font color=red>密件操送: </font><input name=ccc><br>

<font color=red>主题: </font><input name=title><br>

<font color=red>内容: </font></pre><p>

<textarea cols=30 rows=10 name=content></textarea><br>

<input type=button value="send" onClick="test()">

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

ASP的

<%

submitname=request.form("submit")

if submitname="submit" then

email=request.form("email")

cc=request.form("cc")

subject=request.form("subject")

body=request.form("body")

response.redirect("mailto:"&email&"?cc="&cc&"&subject="&subject&"&body="&body)

else

%>

<form name="form1" method="post" action="email.asp">

email:<input name="email"><br>

cc:<input name="cc"><br>

subject:<input name="subject"><br>

body:<input name="body"><br>

<input type="submit" name="submit" value="submit">

</form>

<%end if%>

[Edit on 2004-12-27 0:18:39 By cnbruce]

By [cnbruce] at 8:44:56 | Comments [5] | 1403 views| Go Top

9 ASP编程入门进阶(六):Co...

ASP编程入门进阶(四):内置... :

About Comments

suij=replace(suij,".","9") '然后对变量suij中小数点符号转换为数字9为什么要把小数点符号转换为数字9

By [贝贝] at 2004-7-15 10:33:30

9是随便设定的值主要是为了产生颜色的16进制代码的

By [cnbruce] at 2004-7-16 12:04:19

cnbruce document.write "<body bgcolor=#"&suij&">" 中的document.write为什么不用Response.write。document的用法是什么,是什么意思

[Edit on 2004-8-14 13:18:27 By 7191864]

By [7191864] at 2004-8-14 13:10:27

随机函数rnd(),该函数返回一个小于 1 但大于或等于 0 的值。你的意思也就是说:0<rnd()《1。是这个意思吗?如果是这个意思的话,那怎么样才能产生自然数(1,2,3……)

By [7191864] at 2004-8-14 13:17:37

看来这位朋友没有好好看我的教程,上面不是说得好好的吗Int((upperbound - lowerbound + 1) * Rnd + lowerbound)这里, upperbound 是此范围的上界,而 lowerbound 是此范围内的下界。<script language=vbs>Do Until choose = vbNo value = Int((41 * Rnd) + 60) '产生 60 到 100 之间的随机数。 msgbox value choose = MsgBox ("Roll again? ", vbYesNo)Loop</script> [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有