新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论.NET,C#,ASP,VB技术
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机技术与应用『 Dot NET,C#,ASP,VB 』 → ASP编程入门进阶(连载)[转帖] 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 65957 个阅读者浏览上一篇主题  刷新本主题   平板显示贴子 浏览下一篇主题
     * 贴子主题: ASP编程入门进阶(连载)[转帖] 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     Qr 帅哥哟,离线,有人找我吗?
      
      
      威望:9
      等级:博士二年级(版主)
      文章:4392
      积分:29981
      门派:XML.ORG.CN
      注册:2004/5/15

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Qr发送一个短消息 把Qr加入好友 查看Qr的个人资料 搜索Qr在『 Dot NET,C#,ASP,VB 』的所有贴子 访问Qr的主页 引用回复这个贴子 回复这个贴子 查看Qr的博客楼主
    发贴心情 

    (五):内置对象Response
    通过对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 全部选择 提示:你可先修改部分代码,再按运行]

    ----------------------------------------------
    没人帮忙,那就靠自己,自己才是最好的老师!本人拒绝回答通过站内短消息提出的问题!

    blog:http://Qr.blogger.org.cn

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/1/14 13:27:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Dot NET,C#,ASP,VB 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/9 22:40:44

    本主题贴数30,分页: [1] [2] [3]

     *树形目录 (最近20个回帖) 顶端 
    主题:  ASP编程入门进阶(连载)[转帖](3629字) - Qr,2005年1月14日
        回复:  需要操作系统的安装盘的(22字) - galen,2006年3月24日
        回复:  需要将windows xp professional service pack 2 CD ..(267字) - 串烧,2006年2月21日
        回复:  (十二)缺(8字) - Qr,2005年1月14日
            回复:  [B](十三):Ad & Content Rotator[/B]ASP的强大不仅仅局限于接受..(9020字) - Qr,2005年1月14日
                回复:  [B](十四):Browser & Linking[/B]Browser Capabilit..(6449字) - Qr,2005年1月14日
                    回复:  [B](十五):组件Counters[/B]该组件用于创建一个或多个计数器,这些计数器用于跟..(4411字) - Qr,2005年1月14日
                        回复:  [B](十六):FSO组件之驱动器操作[/B]FSO,正如UFO般令人激动、令人神往,当然更..(4195字) - Qr,2005年1月14日
                            回复:  [B](十七):FSO组件之文件夹操作[/B]操作完驱动器,接着就是来操作文件夹了。其中包括..(4476字) - Qr,2005年1月14日
                                回复:  [B](十八):FSO组件之文件操作(上)[/B]FSO中除了可以对驱动器、文件夹的操作以外..(4246字) - Qr,2005年1月14日
                                    回复:  [B](十八):FSO组件之文件操作(中)[/B]学会了FSO提取文件值,也学会了将信息输入..(7381字) - Qr,2005年1月14日
                                        回复:  [B](十八):FSO组件之文件操作(下)[/B]一,fso.GetFile 提取文件相..(2638字) - Qr,2005年1月14日
                                            回复:  [B](二十):ADO组件之插入数据记录[/B]简单的显示记录已经掌握,现在需要的就是通过A..(5899字) - Qr,2005年1月14日
                                            回复:  [B](二十):ADO组件之显示数据记录[/B]学习ASP的万里长征就快到终点了:等把AS..(7065字) - Qr,2005年1月14日
                                            回复:  [B](十九):ASP技巧累加(二)[/B]严格控制Session 可以将不需要Sess..(2901字) - Qr,2005年1月14日
        回复:  认识表单(7832字) - Qr,2005年1月14日
            回复:  [B](三):接触脚本程序[/B]有了前面的html中关于form的强化知识,是不是在想,下面..(10511字) - Qr,2005年1月14日
                回复:  [B](四):内置对象Request[/B]系统学习ASP,就是先从ASP的几大内置对象开始的..(7333字) - Qr,2005年1月14日
                    回复:  [B](五):内置对象Response[/B]通过对Request对象的学习,可以了解到,Req..(8632字) - Qr,2005年1月14日
                        回复:  [B](六):Cookies讲座[/B]什么是 Cookie?Cookie 其实是一个标签,经..(6636字) - Qr,2005年1月14日

    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    109.375ms