linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘网络学院网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > 开发语言 > ASP >
栏目导栏
  php
  JSP
  ASP
  asp.net
  JAVA
  c/c++/c#
  perl
  JavaScript
  Basic
  Delphi
资料搜索
热门文章
·由HTTP 500 Internal server e
·会员系统“找回密码”的制作方
·ASP实现数字和字母组合并生成图
·简单的asp验证码程序示例
·用ASP制作强大的搜索引擎
·如何让图片自动缩放以适合界面
·如何用foreach遍历页面上所有的
·如何实现站点的RSS输出
·无组件实现文件上传/下载
·ASP如何获取真实IP地址
·asp中如何使用 HTML 表格
·采用XMLHTTP编写一个天气预报的
·80004005错误及其解决方法
·asp中如何调试 ASP 脚本
·asp+ajax打造无刷新新闻评论系
最新文章
·ASP教程:8、ASP内建对象Respo
·ASP教程:7、ASP内建对象Reque
·ASP教程:6、ASP脚本循环语句
·ASP教程:5、ASP脚本变量、函数
·ASP教程:4、ASP脚本基础
·ASP教程:3、ASP基础
·ASP教程:2、ASP简介
·ASP教程:1、Are you ready?
·ASP中使用SQL语句教程
·ASP进度条
·由HTTP 500 Internal server e
·Asp无组件生成缩略图
·ASP 系列函数大全(4)
·ASP 系列函数大全(3)
·ASP 系列函数大全(2)
Google
 
asp如何向浏览器发送内容
[ 作者:  加入时间:2007-10-17 15:14:58  来自:Linux联盟收集整理 ]
在处理 ASP 脚本时,任何没有包含在 ASP 定界符或 <SCRIPT> 标记中的文本或图形都将被简单地返回给浏览器。可以通过使用 Response 对象显示地把内容发送给浏览器。

  发送内容

  要将内容从 ASP 定界符内部或过程发送给浏览器,可以使用 Response 对象的 Write 方法。例如,下面的语句可以根据用户是否访问过此页而发送不同的问候语:

  <% bBQLinux联盟
  If FirstTime = True Then bBQLinux联盟
    Response.Write "<H3 ALIGN=CENTER>Welcome to the Overview Page</H3>"bBQLinux联盟
  ElsebBQLinux联盟
    Response.Write "<H3 ALIGN=CENTER>Welcome Back to the Overview Page</H3>" bBQLinux联盟
  End If bBQLinux联盟
  %>

  在过程外部,不必使用 Response.Write 将内容送回用户。不在脚本定界符内部的内容被直接发送给浏览器,浏览器将其格式化和显示。例如,下面的脚本过程与上面的脚本输出相同:

  <H3 ALIGN=CENTER> bBQLinux联盟
  <% If FirstTime Then %> bBQLinux联盟
  Welcome to the Overview Page. bBQLinux联盟
  <% Else %> bBQLinux联盟
  Welcome Back to the Overview Page. bBQLinux联盟
  <% End If %> bBQLinux联盟
  </H3>

  当您只需要将输出返回一次或很方便地向现有 HTML 文本中加入语句时,可使用混合脚本命令和 HTML。当您不想用定界符分隔一条语句或当您想创建返回给浏览器的字符串时,可使用 Response.Write。例如,可构建一个文本的字符串,用从一个 HTML 表送回的值创建表格的一行:

  Response.Write "<TR><TD>" & Request.Form("FirstName") _bBQLinux联盟
   & "</TD><TD>" & Request.Form("LastName") & "</TD></TR>"bBQLinux联盟
  Request.Form 返回从 HTML 表格(参阅 使用 HTML 表格)发送的值。(&) 字符是 VBScript 字符串连接字符。

  设置内容的类型

  当 Web 服务器将文件返回给浏览器时,会同时告诉浏览器文件中包含的内容的类型。这使浏览器能够决定是否它能自己显示文件或必须调用另一个应用程序。例如,如果网络服务器返回 Microsoft Excel 表格,则浏览器必须调用 Microsoft Excel 的副本显示此页。Web 服务器通过将文件的扩展名映射到 MIME 类型表来识别文件类型。

  可以使用 Response 对象的 ContentType 属性为发送给用户的内容设置 HTTP 内容类型字符串。例如,下面的命令为通道定义设置内容类型:

  <% Response.ContentType = "application/x-cdf" %>

  有关通道的详细信息,请参阅本主题中的“创建动态通道”。

  其他的通用内容类型是 text/plain(用于作为文本内容返回而不是已解释的 HTML 语句)、text/gif(用于 GIF 图像)和 video/quicktime(用于 Apple QuickTime® 格式的电影)。一套标准的 MIME 类型已经定义,另外,Web 服务器或 Web 浏览器都支持 MIME 类型。要想查看您的 Microsoft Web 服务器支持哪些内容类型,可使用 Internet 服务管理器打开您的 Web 站点的属性页,单击“HTTP 标题”选项卡,然后单击“文件类型”选项卡。

  重定向浏览器

  用 Redirect 方法可将浏览器重定向到另一个 URL,而不是将内容发送给用户。例如,如果您想确认用户是否已从主页进入了您的应用程序,以便能收到一个客户 ID,则可以检验他们是否有客户 ID 号;如果没有,就可以将其重定向到主页。

  <%bBQLinux联盟
  If Session("CustomerID") = 0 ThenbBQLinux联盟
    Response.Redirect "homepage.asp" bBQLinux联盟
  End IfbBQLinux联盟
  %>

  除非缓冲区已经打开,否则,在任何内容或标题返回给浏览器之前,您必须重定向浏览器。将 Response.Redirect 语句放在页的顶部和<HTML> 标记之前可确保没有任何内容返回给浏览器。如果在返回给浏览器的内容或标题后使用 Response.Redirect,将看到一个错误信息。

  如果在页的中间使用 Response.Redirect,请将其与 Response.Buffer 属性一起使用,下面的部分将进行解释。

  缓冲内容

  默认情况下,Web 服务器返回 HTML 和在处理 ASP 页时的脚本处理结果。但是,您可以设置 Response 对象的 Buffer 属性以便在向用户发送任何内容之前,先处理页上的所有的服务器脚本命令。

  可以使用缓冲技术来确定在页处理过程中的某个点,而您并不想将该点之前的内容发送给用户。也可以用 Response 对象的 Redirect 方法将用户重定向到另一页,或者用 Response 对象的 Clear 方法清除缓冲区并将不同的内容发送给用户。下面的例子使用了以上两种方法。

  <% bBQLinux联盟
  'Turn on buffering.  This statement must appear before the <HTML> tag.bBQLinux联盟
  Response.Buffer = True %>bBQLinux联盟
  <html>bBQLinux联盟
  <body>bBQLinux联盟
  .bBQLinux联盟
  .bBQLinux联盟
  .bBQLinux联盟
  <%bBQLinux联盟
  If Request("FName") = "" ThenbBQLinux联盟
    Response.ClearbBQLinux联盟
    Response.Redirect "/samples/test.html"bBQLinux联盟
  ElsebBQLinux联盟
    Response.Write Request("FName")bBQLinux联盟
  End IfbBQLinux联盟
  %>bBQLinux联盟
  </body>bBQLinux联盟
  </html>

  也可以使用 Response.Buffer 避免 Web 服务器在脚本修改 HTTP 标题之前将其返回。有些属性和方法,例如 Response.Expires 和 Response.Redirect 可修改 HTTP 标题。

  当在脚本中设置 Buffer 属性并且没有调用 Flush 方法时,服务器将保持用户发出的 Keep-Alive 请求。养成这样的脚本编写习惯有益于提高服务器的性能,因为,服务器不必为每一个用户请求创建新的连接(假定服务器、用户和任何代理服务器都支持 Keep-Alive 要求)。但是,这种方法的一个潜在的不利因素是:在用户处理完当前的 asp 文件的所有的脚本之前,缓冲区不显示任何响应给用户。对于较长的和较复杂的脚本,用户可能要被迫等待很长一段时间才能看到这一页。

  默认情况下,缓冲区对于 ASP 应用程序是关闭的。可以使用 Internet 服务管理器为整个 ASP 应用程序打开缓冲区。

  允许代理服务器缓存页

  通过代理服务器,应用程序可以发送页给用户。代理服务器代替用户浏览器从 Web 站点请求网页。代理服务器缓存 HTML 页以便相同页的重复请求能够快速有效地返回给浏览器。代理服务器执行请求并缓存网页,并减轻网络和 Web 服务器的负荷。

  尽管缓存对 HTML 页都能很好运行,但对包含动态生成信息的 ASP 页则不尽人意。例如,报告股市行情或显示大量业务的存货清单需要提供即时信息。一小时前的信息对目前来讲是很不准确的。如果应用程序返回个人的信息,例如,自定义的主页,希望用户不能看到另一个用户的个人信息。

  默认情况下,ASP 命令代理服务器自己不能缓存 ASP 页(尽管缓存图像、位图、小型应用程序,和其他缓存页上的参考项)。可以使用 Response.CacheControl 属性设置缓存控制 HTTP 标题字段允许缓存某一页。Response.CacheControl 的默认值是字符串 "Private",它避免代理服务器缓存此页。要允许缓存,可将缓存控制标题字段设置为 Public:

  <% Response.CacheControl = "Public" %>

  因为在任何页的内容被发送之前,HTTP 标题必须被送给浏览器或代理服务器,所以,可在任何 HTML 标记之前设置 Response.CacheControl 属性或使用 Response.Buffer 缓存此页。

  缓存控制标题字段是 HTTP 1.1 规格的一部分。在只支持 HTTP 1.0 的代理服务器上不能缓存 ASP 页,因为没有到期的标题字段发送。

  避免浏览器缓存页

  每一个浏览器版本都有它自己的规格来规定是否缓存页。要避免浏览器缓存 ASP 页,可使用 Response.Expires 设置到期标题:

  <% Response.Expires = 0 %>bBQLinux联盟
  值为 0 强迫缓存页到期。因为在任何页被发送之前,HTTP 标题必须被送给浏览器,所以可通过将 Response.Expires 属性放在 HTML 标记之前或使用 Response.Buffer 缓存该页。

  创建动态通道

  Internet Explorer 4.0 有一个新的特性,Web 规划人员可以使用该属性将带有公用主题的 Web 页并入一个通道。在浏览器中,通道被显示在通道标题栏上;用户通过单击图标访问通道。通道在后台自动更新;用户不必访问站点就可以在自己的浏览器上下载最新的页。通道为用户提供了一条浏览一组相关的 Web 页的快速而直接的通路,并且这些 Web 页是自动更新的。

  使用 ASP,可以编写脚本来收集用户的首选项,然后动态地创建通道。通道定义文件 (.cdf) 建立了通道内容的组织和顺序。在 .cdf 文件中的命令使用与 HTML 标记相同的语法,以便于掌握和从脚本中生成。在编写 ASP 脚本来创建通道定义文件时,脚本用 .cdx 扩展名。当 ASP 读取一个以 .cdx 为扩展名的文件时,将自动发送 application/x-cdf 内容类型,它告诉浏览器用通道定义来解释字节。如果不使用 .cdx 作扩展名,则脚本必须用 Response.ContentType 手工将内容类型设置为 application/x-cdf。

  下面是一个有关如何使用通道的示例。下面的 HTML 表格要求用户选择通道。提交时,该表格调用 .cdx 文件的脚本去创建通道的定义。

  <P> Choose the channels you want. </P>bBQLinux联盟
  <FORM METHOD="POST" ACTION="chan.cdx">bBQLinux联盟
  <P><INPUT TYPE=CHECKBOX NAME=Movies> MoviesbBQLinux联盟
  <P><INPUT TYPE=CHECKBOX NAME=Sports> SportsbBQLinux联盟
  <P><INPUT TYPE="SUBMIT" VALUE="SUBMIT">bBQLinux联盟
  </FORM>bBQLinux联盟
  Chan.cdx 中的脚本根据与请求一起提交的表格的值创建通道定义。

  <% If Request.Form("Movies") <> "" Then %>bBQLinux联盟
    <CHANNEL>bBQLinux联盟
      channel definition statements for the movie pagesbBQLinux联盟
    </CHANNEL>bBQLinux联盟
  <% End If %>

  <% If Request.Form("Sports") <> "" Then %>bBQLinux联盟
    <CHANNEL>bBQLinux联盟
      channel definition statements for the sports pagesbBQLinux联盟
    </CHANNEL>bBQLinux联盟
  <% End If %>

  向服务器发送文件

  浏览器可以使用 Posting Acceptor 应用程序将文件发送给 Web 服务器。当 Posting Acceptor 上载文件时,将发送列出每一个收到的文件名称和位置的 URL-encoded 表格字段。可以将邮递处理的 URL 添加到脚本中,此脚本上载文件去调用 ASP 脚本来处理这些字段名。例如,可以编写一个脚本,自动地通过文件的名称和位置发送 e-mail 给系统管理员。bBQLinux联盟

Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
无相关信息