浅析ASP内置对象Response的使用

2020-09-10 11:56范庆广
看世界·学术上半月 2020年9期
关键词:属性脚本方法

范庆广

摘要:本文先讲述了Response对象特点,然后讲解了其主要属性和方法,最后通过实例说明该对象在编程中应用。

关键词:ASP;内建对象;属性;方法;脚本

ASP中有很多对象,这些对象能帮助我们来完成很多重要的操作。从简单的向客户端输出一行文本内容到复杂的数据库的存取、Cookie、Session的存取以及HTML表单内容的获得等,都离不开对象的参与。这其中以Response最为常用。下面将对该对象进行详细地讲解。

一、Response对象简介

Response对象是ASP中最为常用的对象之一。在一段HTML中嵌入了这样的语句:

<% response.write "您好,这是一个简单ASP程序!" %>

在这条语句中我们就使用了Response对象。我们使用了该对象的write方法向客户端输出一行文本内容“您好,这是一个简单ASP程序!”。客户端浏览器访问此页面便能看到服务器向其发送的信息。

讲到这里,有的读者可能会提出这样的疑问:对象是什么?对象的方法又是什么?其实要回答这个问题要涉及到很多复杂的知识,我们在这里可以进行一下简单的解释。对象是面向对象的程序设计中的核心概念,具体说来对象是具有唯一的对象名和固定的对外接口的一组属性和操作的集合。这样说来似乎仍然比较抽象,难以理解。但是这并不影响读者对ASP的学习。读者可以把ASP中的对象看作是一种ASP开发者提供的、可以完成某种功能的特殊的程序。ASP使用者看不到这些程序的代码,也不需要去关心这些程序是如何编制的,ASP学习者只需要知道这些程序的名字,并且知道如何使用它们就可以了。这些程序就是一个一个的对象,不同的对象提供了不同的属性和方法,我们通过操作这些属性和方法来实现特定的功能。

我们来举一个例子,比如一辆汽车,我们把它作为我们的研究对象,现在它就是一个对象。我们只要提到“汽车”这个对象,立刻就会联想出与它有关的一些信息,比如汽车的颜色、型号、品牌等等。这些汽车的固有信息,就是对象的“属性”。此外汽车还可以完成一些操作,比如打火启动、正常行驶以及刹车、转弯等动作,这些动作可以看作对象的“方法”。我们通过对汽车的属性和方法的控制来满足我们的需要,这就是我们对对象的使用。

以上只是对“对象”作的一个通俗简单的介绍,应该说并不准确和全面。如果读者想了解更详细的信息,可以查阅有关面向对象的编程的有关书籍。

二、Response对象的属性和方法

现在我们继续来看Response对象。除了write方法之外,Response对象还有许多其他属性和方法,用来完成一些复杂的操作。

Response对象的主要属性如下:

1.Buffer:表明页输出是否被缓冲;

2.CacheControl:决定代理服务器是否能缓存ASP生成的輸出;

3.Charset:将字符集的名称添加到内容类型标题中;

4.ContentType:指定响应的HTTP内容类型;

5.Expires:在浏览器中缓存的页面超时前,指定缓存的时间;

6.ExpiresAbsolute:指定浏览器上缓存页面超时的日期和时间;

7.IsClientConnected:表明客户端是否与服务器断开;

8.Pics:将PICS标记的值添加到响应的标题的PICS标记字段中;

9.Status:服务器返回的状态行的值。

Response对象的主要方法如下:

1.AddHeader:从“名称”到“值”设置HTML标题;

2.AppendToLog:在该请求的Web服务器日志条目后添加字符串;

3.BinaryWrite:将给出信息写入到当前HTTP输出中,并且不进行任何字符集转换;

4.Clear:清除任何缓冲的HTML输出;

5.End:停止处理 .asp 文件并返回当前的结果;

6.Flush:立即发送缓冲的输出;

7.Redirect:将重指示的信息发送到浏览器,尝试连接另一个 URL;

8.Write:将变量作为字符串写入当前的 HTTP 输出。

通过上述内容可以看出,Response对象的属性用来对当前页面或者服务器连接信息进行存取,Response对象的方法则主要用来实现某种操作。其中,对象的属性我们在没有特殊需要时一般不会去主动修改,因此表1中的内容仅供参考,在此不再举例。表2中列举了Response对象的方法,其中有三个方法较为常用,分别是End方法、Redirect方法和Write方法。下面我们举例来演示这三个方法的使用。

Response常用方法的使用。

(一)End方法的使用。新建一个ASP文档,输入以下代码:存盘为1.asp

这是第一行文字<br>

这是第二行文字<br>

<%

Response.end

%>

这是第三行文字<br>

将程序放入本地主目录,在浏览器中输入http://locahost/1.asp运行该程序。

可以看到,程序运行之后,只输出了Response.end之前的内容,而该语句之后的“这是第三行文字”没有输出。因为程序执行到Response.end这一行时,该页面停止处理,仅将前面已经处理的内容返回发送到客户端。因此我们只看到了第一行和第二行文字,之后的内容全部被忽略掉了。这个End方法通常用在页面出错,或者其他原因必须立即停止处理当前页面内容等情况下。一旦遇到End方法,整个ASP页面停止执行。

(二)Write方法的使用。新建一个ASP文档,输入以下代码:

<font size=3>这是由HTML输出的</font><br>

<%

Response.write("<font size=2>这是由ASP输出的。</font><br>")

%>

本程序中,第三行:

Response.write("<font size=2>这是由ASP输出的。</font><br>")

也可以写为:

Response.write "<font size=2>這是由ASP输出的。</font>&lt;br>"

也就是文本内容可以不用括号括起来,在write之后空一格,然后用两个双引号将文本内容包裹起来也可以。但是建议读者还是采用第一种方法,因为有时候需要输出的内容比较复杂,使用双括号不容易出错。

(三)Redirect方法的使用。新建一个ASP文档,输入以下代码:存盘为3.asp

内容<br>

<%

Response.redirect (“1.asp”)

%>

程序运行之后,读者会发现浏览器中并没有显示3.asp中的内容,而是显示了1.asp的运行结果,这是为什么呢?就是因为当程序执行到Response.redirect语句时,程序自动转到1.asp页面执行,因此最终看到的是1.asp的内容。而先前3.asp中输出的内容由于停留时间太短而没有被我们看到。

三、总结

值得注意的是,在ASP中对象和方法名不区分大小写,因此Response.end和response.End这样的写法都正确,甚至大写和小写随意混合也不要紧。但是尽管如此,为了养成良好的编程习惯,我们一般应把对象名单词的第一个字母大写,或者全部大写,而方法或者属性名全部小写,如Response.end,这样程序容易阅读。

参考文献:

[1].Web开发技术.北京:水力出版社,2015。

猜你喜欢
属性脚本方法
自动推送与网站匹配的脚本
对两种实体观的探析
用好文件“属性” 解决实际问题
用对方法才能瘦
四大方法 教你不再“坐以待病”!
赚钱方法
捕鱼
举一反三新编
捕风捉影新编
愚公移山