学院首页>网络编程>ASP>如何向客户端发出信息

如何向客户端发出信息

作者:未知 来源:未知 添加时间:2006-5-21 10:29:39
Request对象是从客户端取的信息的,那么相反,Response是向客户端发送信息,比如上一课的test.asp这个例子,当取得用户的名称后,可以如下处理。 
<% 
  user=Request.form("user") 
  Response.write "你的名字是:"&user 
%> 
  那么客户端的屏幕上将出现:你的名字是:(您在Form内所填写的东西) 
  Response.write是常用的方法,因此可以简写为<%="你的名字是:"&user%>。方便吗? 
  还记得第一个例子中的<%=says%>吧?就是这个原因。 
  Response对象可以设置向客户端输出的很多参数,如HTML的MIME类型,当然是少不了向客户端写入Cookies,如果需要往客户端写入一个叫user的Cookies,则可以有如下的语句。 
<% 
................ 
response.cookies("user")="无名氏")
response.cookies("user").expires="JULY 31,2002"
................ 
%> 
  程序的第一项是设置Cookies的user值为“无名氏”,而第二项则是设置user这个Cookies的有效时间,您总不能让一个Cookies永远不消失有效吧?因此你可以用它来设定Cookies在什么时间前保持有效。 
  好了,向客户端写入了一个Cookies,现在大家瞧一瞧这个例子。看看输出会是什么东西? 
<% 
......... 
user=Request.cookies("user") 
%> 
<%=user%> 
  没有忘记吧?输出在浏览器上的结果应改只有“无名氏”这三个字。 
  当我们运行一大段ASP程序时,为了让客户端有一个连续的感觉,因此可以适当使用一下这个Response对象的buffer属性。 
如下面程序 
<% @language=VBScript%> 
<%  
Response.buffer=true 
%> 
<html>........//一段HTML文本(A) 
<% 
一段执行时间很长的ASP脚本 
%> 
.......//一段HTML文本(B) 
<% 
Response.flush 
%> 
  当我们不把buffer属性设为True,那么客户端将会想看到(A)的HTML画面,然后等了一段时间,最后才看到(B)的画面,这样处理上来不太好,所以加入一个buffer属性为True,则(A)的输出先保存在服务器端的缓冲区中,然后处理完脚本,再把(B)加如缓冲内,最后遇到Response的flush方法,就把缓冲区的内容一次发送到客户端,因此感觉上会连续一点,另外,Buffer属性在高级编程中可以起到纠错的能力,因次HTML内容在处理过程中还没有发到客户端,可以用Clear的方法清空了服务器缓冲区的所有HTML文本,这样在某种情况下很有用。 
  另外,使用Redirect方法可以把客户引领到另一个新的页面,程序如下。 

<% @language=VBScript%> 
<%  
Response.buffer=true 
if hour(now)>12 then 
  Response.Redirect "1.htm" 
else 
  Response.Redirect "2.htm" 
end if 
Response.flush 
%> 
  可以看明白上面的程序吧?当时间是12点后,就把客户引到1.htm这个网页上来,反之就定向到2.htm这个页面上来。Response对象有很多属性和方法,这些只需要使用前查找参考资料就可以了。同样您可以在编程资料中得到这些资料。
站内搜索