在ASP程序设计中在使用Response对象

Response对象在ASP程序设计中的主要功能是从浏览器端到服务器端传送数据到浏览器的客户端,我们知道ASP的脚本是在服务器端执行的,他并没有输出"值"的功能。要想拥有输出"值",就必须依靠Response对象。

  在这里我们将关注其最常用的一些功能。也就是在程序设计中经常要用到的一些功能,具体如下:

  (1).response.write 发送信息到浏览器
  (2). response.end 有效地中止代码
  (3).response.redirect 页面重定向
如何用response.write发送信息到浏览器?

  在下面的response.asp就是一个向客户端发送信息的程序,在程序中用到了一个内建功能--dateadd,对于这个功能可以参阅以下相关文档:

  http://help.activeserverpages.com/iishelp/VBScript/htm/vbs90.htm.

  Response.asp程序源代码:

<html><head><title>response.asp </title></head>
<body color = "#FFFFFF" ><p>
<%when = now ( )
     tommorow = dateadd ( "d" , 1 , when )
     twoweekslater = dateadd ( "ww" , 2 , when )
     fourteenweekdayslater = dateadd ( "w" , 14 , when )
     monthlater = dateadd ( "m" , 1 , when )
     sixminuteslater = dateadd ( "n" , 6 , when )
     sixhourslater = dateadd ( "h" , 6 , when )
     fortysecslater = dateadd ( "s" , 40 , when )
     response.write "现在时间:<b>" & when & "</b> <br>"
     response.write "明天此时: <b>" & tommorow & "</b> <br>"
     response.write "一月以后此时: <b> " & monthlater & " </b> <br>"
%>
     从现在以后6秒钟:<b> <%= sixminuteslater %> </b> <br>
     从现在以后6小时是:<b> <%= sixhourslater %> </b> <br>
     从现在以后40秒是: <b> <%= fortysecslater %> </b> <br>
 </body> </html>

  执行以后的界面如下:

response.end 是如何有效地中止代码?
下面是用response.end终止一个页面操作的源程序end.asp和执行后的运行界面:

end.asp:
<title>end.asp </title>
<body color = "#FFFFFF" >
<%when = now ( )
      tommorow = dateadd ( "d" , 1 , when )
      twoweekslater = dateadd ( "w" , 2 , when )
      monthlater = dateadd ( "m" , 1 , when )
      sixminuteslater = dateadd ( "n" , 6 , when )
      sixhourslater = dateadd( "h" , 6 , when )
      response.write "现在时间: <b>" & when & " </b> <br> "
      response.write "从现在以后一个月时间: <b>" & monthlater & "</b> <br>"
      response.end
      response.write "从现在以后二周时间: <b>" & twoweekslater & "</b><br>"
%>  
      从现在以后6秒时间: <b> <%= sixminuteslater %> </b> <br>
      从现在以后6个小时:<b> <%= sixhourslater %> </b> <br>

  运行此程序,则执行界面如下:


图02:end.asp程序执行界面
在end.asp程序中可见多了一个response.end语句:如果没有这个语句,则程序执行后的界面如下:

图03:程序中屏蔽respons.end语句的执行界面

  由此可见Response.end是如何有效中止代码执行的了。
Response.redirect实现页面重定向
用 Redirect 方法可将浏览器重定向到另一个 URL,而不是将内容发送给用户。例如,如果您想确认用户是否已从主页进入了您的应用程序,以便能收到一个客户 ID,则可以检验他们是否有客户 ID 号;如果没有,就可以将其重定向到主页。以下就是具体例子:

<%If Session("CustomerID") = 0 Then Response.Redirect "homepage.asp" End If%>

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

  如果在页的中间使用 Response.Redirect,请将其与 Response.Buffer 属性一起使用,这是因为在默认情况下,Web 服务器返回 HTML 和在处理 ASP 页时的脚本处理结果。但是,您可以设置 Response 对象的 Buffer 属性以便在向用户发送任何内容之前,先处理页上的所有的服务器脚本命令。

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

  例子一:

<% '下一句程序必须放在程序在<HTML> 标识符前Response.Buffer = True %><html><body>...
例子二:
<%If Request ("FName") = "" Then 
     Response.Clear 
     Response.Redirect ".. /test.html"
Else 
     Response.Write Request("FName")
End If%></body></html>

  以上就是Response对象的在程序中经常用到的功能。

  Server对象有那些属性方法以及怎样使用

  Server对象提供对服务器访问的方法和属性。其中大多数方法和属性是作为实用程序的功能提供的。
Server对象有哪些基本属性和方法?

  (1).语法:
   Server.property|method
  (2).属性(property)
   Server对象只有一个属性:ScriptTimeout 程序能够运行的最大时间
  (3).方法(Methods)
   CreateObject 建立一个对象实例.
   Execute 执行一个asp文件
   GetLastError 返回一个错误代码
   HTMLEncode 对指定的HTML代码进行转换.
   MapPath 将一个相对路径转化为一个绝对路径.
   Transfer 将当前的所有状态信息发送给另一个asp文件
URLEncode 以URL形式转化指定的代码,包括空格



posted @ 2005-04-14 14:53  QDuck  阅读(880)  评论(0编辑  收藏  举报