response对象,response对象的setheader的作用

http://www.itjxue.com  2023-01-06 18:14  来源:未知  点击次数: 

“response”对象设置响应头属性方法是什么?

1、HttpWebResponse类的属性

CharacterSet   ?获取响应的字符集。

ContentEncoding   ?获取用于对响应体进行编码的方法。

ContentLength ? 获取请求返回的内容的长度。 (重写 WebResponse..::.ContentLength。)

ContentType   ? 获取响应的内容类型。 (重写 WebResponse..::.ContentType。)

Cookies   ? 获取或设置与此响应关联的 Cookie。

Headers   ?获取来自服务器的与此响应关联的标头。 (重写 WebResponse..::.Headers。)

IsFromCache   获取一个 Boolean 值,该值指示此响应是否为从缓存中获取的。 (继承自 WebResponse。)

IsMutuallyAuthenticated 获取一个 Boolean 值,该值指示客户端和服务器是否都已经过身份验证。 (重写 WebResponse..::.IsMutuallyAuthenticated。)

LastModified   ? 获取最后一次修改响应内容的日期和时间。

Method 获取用于返回响应的方法。

ProtocolVersion 获取响应中使用的 HTTP 协议的版本。

ResponseUri   获取响应请求的 Internet 资源的 URI。 (重写WebResponse..::.ResponseUri。)

Server ?获取发送响应的服务器的名称。

StatusCode 获取响应的状态。

StatusDescription   获取与响应一起返回的状态说明。

使用示例

C# 代码 ? 复制

static void Main(string[] args)

{

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(""); ? ?//创建一个请求示例

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

Console.WriteLine(response.CharacterSet); ? ? ? //输出 utf-8

Console.WriteLine(response.ContentEncoding); ? ?//空

Console.WriteLine(response.ContentLength); ? ? ?//输出 10310

Console.WriteLine(response.ContentType); ? ? ? ?//输出 text/html charset=utf-8

CookieCollection cc = response.Cookies;

Console.WriteLine(cc.Count); ? ? ? ?//输出 0

WebHeaderCollection whc = response.Headers;

Console.WriteLine(whc.Count); ? ? ? //输出 9

foreach (string h in whc.AllKeys)

{

Console.WriteLine(h.ToString() + " " + whc[h].ToString()); ? ? ?//输出所有的响应头信息

}

Console.WriteLine(response.IsFromCache); ? ?//输出 false 该值指示响应是否从缓存获取的

Console.WriteLine(response.IsMutuallyAuthenticated); //输出 false 客户端和服务器端都已通过身份认证

Console.WriteLine(response.LastModified); ? //输出 2013-04-06 21:03:06 最后一次修改响应的时间和日期

Console.WriteLine(response.Method); ? ? //输出 Get 返回响应的方法

Console.WriteLine(response.ProtocolVersion); ? ?//输出 1.1 响应的HTTP协议的版本

Console.WriteLine(response.ResponseUri); ? ?//输出 响应请求的Interner资源的URI

Console.WriteLine(response.Server); //输出 BWS/1.0 发送响应的服务器的名称

Console.WriteLine(response.StatusCode); ? ? //输出 OK 获取响应的状态,这个不是状态码,而是状态描述,为什么不是200呢,奇怪啊,测试了好几个网站都是OK,而不是200

Console.WriteLine(response.StatusDescription); ? ? ?//输出 OK 这个是状态描述,

Console.ReadKey();

}

2、HttpWebResponse类的方法

Close 关闭响应流。 (重写 WebResponse..::.Close()()()。)

CreateObjRef ?创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。 (继承自 MarshalByRefObject。)

Dispose ? 释放由 HttpWebResponse 使用的非托管资源,并可根据需要释放托管资源。

GetLifetimeService   ? ?检索控制此实例的生存期策略的当前生存期服务对象。 (继承自 MarshalByRefObject。)

GetObjectData   ? ?基础结构。 使用将目标对象序列化所需的数据填充 SerializationInfo。 (重写 WebResponse..::.GetObjectData(SerializationInfo, StreamingContext)。)

GetResponseHeader ? ?获取与响应一起返回的标头的内容。

GetResponseStream ? ?获取流,该流用于读取来自服务器的响应的体。 (重写 WebResponse..::.GetResponseStream()()()。)

InitializeLifetimeService 获取控制此实例的生存期策略的生存期服务对象。 (继承自 MarshalByRefObject。)

Response对象和request对象的作用分别是什么?

request 请求对象Response 响应对象· Request对象:为脚本提供了当客户端请求一个页面或者传递一个窗体时,客户端提供的全部信息。这包括能指明浏览器和用户的HTTP变量,在这个域名下存放在浏览器中的cookie,任何作为查询字符串而附于URL后面的字符串或页面的<FORM>段中的HTML控件的值。也提供使用Secure Socket Layer(SSL)或其他加密通信协议的授权访问,及有助于对连接进行管理的属性。

· Response对象:用来访问服务器端所创建的并发回到客户端的响应信息。为脚本提供HTTP变量,指明服务器和服务器的功能和关于发回浏览器的内容的信息,以及任何将为这个域而存放在浏览器里新的cookie。它也提供了一系列的方法用来创建输出,例如无处不在的Response.Write方法。 . 1、 Request对象成员的概述

a) Request对象的集合

Request对象提供了5个集合,可以用来访问客户端对Web服务器请求的各类信息,这些集合如下表:

Request对象的集合及说明

.

b) Request对象的属性

Request对象唯一的属性及说明如下表所示,它提供用户请求的字节数量的信息,它很少用于ASP页,我们通常关注指定值而不是整个请求字符串。

c) Request对象的方法

Request对象唯一的方法及说明如下表所示,它允许访问从一个<FORM>段中传递给服务器的用户请求部分的完整内容。

Request对象的方法及说明

2、 Response对象成员概述 ..

a) Response对象的集合

Response对象只有一个集合,如下表所示,该集合设置希望放置在客户系统上的cookie的值,它直接等同于Request.Cookies集合。

Response对象的集合及说明

b) Response对象的属性

Response对象也提供一系列的属性,可以读取(多数情况下)和修改,使响应能够适应请求。这些由服务器设置,我们不需要设置它们。需要注意的是,当设置某些属性时,使用的语法可能与通常所使用的有一定的差异。

Response对象的属性及说

Response对象的语法

Response对象只有一个集合--Cookies,Cookies数据集合允许将数据设置在客户端的浏览器中。若指定的cookie不存在,则创建它。若存在,则自动更新数据。

语法:Response.Cookies(Cookie)[Key.Attribute]

这里的cookie是指定cookie的名称。而如果指定了key,则该cookie就是一个字典。attribute指定cookie自身的有关信息。attribute参数可以是下列之一:

Domain只写。若被指定,则cookie将被发送到对该域的请求中去。

Expires只写。指定cookie的过期日期。为了在会话结束后将cookie存储在客户端磁盘上,必须设置该日期。若此项属性的设置未超过当前日期,则在任务结束后cookie将到期。

HasKeys只读。指定cookie是否包含关键字。

Path只写。若被指定,则cookie将只发送到对该路径的请求中。如果未设置该属性,则使用应用程序的路径。

Secure只写。指定Cookie是否安全。 Response.AddHeaderName,Value

向应答中添加一个新的HTML标题。Name为新HTML标题的名称。Value为该头变量的值。你可以添加任何名称和任何值的HTML标题。它并不替代现有的同名标题。一旦标题被添加,将不能删除。

Response.AppendToLogString

向Web服务器的日志条目的末尾添加一字符串。String为要添加到日志文件中的字符串。

Response.BinaryWriteData

该方法可以不经任何字符转换就将制定的信息写到HTTP输出,主要用于写非字符串信息(如客户端应用程序所需的二进制数据等)。Data是要发送的数据。

Response.Clear

删除缓冲区的所有HTML输出,但只删除响应正文而不删除响应标题。可以用该方法处理错误情况。需要注意的是,如果Response.Buffer设置为True,则该方法将导致运行是错误。

Response.End

强迫Web服务器停止执行更多的脚本,并发送当前结果,文件中剩余的内容将不被处理。如果Response.Buffer设置为True,则调用Response.end将缓冲输出。

Response.Flush

对于一个缓冲的回应,发送所有的缓冲信息。如果Response.Buffer设置为True,则该方法将导致运行是错误。

Response.RedirectURL

将客户端的浏览器重定向到一个新的Internet地址。Url为新网页的Internet地址。

Response.WriteVariant

Response.Write是Response对象最常用的方法,该方法可以向浏览器发送字符串。Variant是一字符串或一个具有字符串值的变量。 Response.Buffer

缓冲一ActiveServerPage。回应只到某一页结束或Response.Flush或Response.End方法调用时才发送出去。服务器将输出送给客户端后就不能再设置Buffer属性。

Response.CacheControl

指明是否Proxy服务器能缓存ActiveServerPage。缺省时,其值为FALSE。当设置其属性为Public时,Proxy服务器可以缓冲由Asp产生的输出。

Response.CharSet(Charsetname)

将字符集名称(如GB)附加到Response对象中content-type标题的后面,用来设置web服务器响应给客户端的文件字符编码。一个可能的值为“ISO_LATIN_1”。

Response.ContentType

指明回应内容的类型。可能的值为text/plain和image/GIF,默认值text/HTML。

Response.Expires

浏览器可以缓存当前页的时间长度,以分钟为单位。

Response.ExpiresAbsolute

浏览器不能再缓存当前页的日期和时间。在未到期之前,可以返回。如果未指定时间,该主页在当天午夜到期;如果未指定日期,则到当天指定时间到期。

True/False=Response.IsClientConnected

属性为只读,指明自上次调用Response.Write之后,客户端是否仍然和服务器连接。该属性允许用户在客户端和服务器没有联接的情况下有更多的控制。例如,在从客户端提出请求起到服务器做出相应,其间要用去很长一段时间的情况下,这就可能有助于确保在继续处理脚本之前客户端仍是连通的。具有值TRUE或FALSE。

Response.PICS(PICS字符串)

用于添加网页的PICS等级。PICS级别指明某一网页的内容级别,比如暴力或色情的程度等。

Response.Status=状态描述字符串

用来设置Web服务器要响应的状态行的值。

Response对象的Clear方法

要说到Clear方法,就必须提到response的Buffer属性,Buffer属性用来设置服务器端是否将页面先输出到缓冲区。语法为:Response.Buffer=True/False

当Buffer的值为True时,Clear方法用于将缓冲区中的当前页面内容全部清除。

语法为:Response.Clear

在ASP程序中,Response对象的方法有哪些,各代表什么功能?

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("")%

以上四则运用属于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

(责任编辑:IT教学网)

更多

推荐思科认证文章