您的位置:首页 > 编程语言 > ASP

ASP.NET内置对象之Request ,Response

2010-08-07 12:49 507 查看
注:本文主要是参考《ASP.NET 夜话》,加入了自己的整理

做asp.net开发时无需new就能使用的对象,如:

  Request ,Response ,Server ,Session ,Cookie ,Application
在asp.net中所有的网页都是继承自System.Web.UI.Page这个类。由于HTTP是一种无状态的协议,也就是它并不记得上一次谁请求过它,不会主动去询问客户端,只有当客户端主动请求之后,服务器才会响应。

1、Request对象Request封装了客户端请求信息。Request的常见属性如下:

属性名值类型说明
ApplicationPathString获取请求的资源在网站上的根路径
ContentEncodingEncoding设置请求对象的编码
CookiesHttpCookieCollection客户端发送到服务器的Cookie集合
QueryStringNameValueCollection当前请求的查询字符串集合
UrlReferrerUri 获取用户由哪个url跳转到当前页面
2、Response对象
Response代表了服务器响应对象。每次客户端发出一个请求的时候,服务器就会用一个响应对象来处理这个请求,处理完这个请求之后,服务器就会销毁这个相应对象,以便继续接受其它客服端请求。
Response常用属性如下:

属性名值类型说明
CharsetString表示输出流的所使用的字符集
ContentEncodingEncoding设置输出流的编码
ContentLengtInt输出流的字节大小
ContentTypestring输出流的HTTP MIME类型
OutputTextWriter服务器响应对象的字符输出流
CookiesHttpCookieCollection服务器发送到客户端的Cookie集合
RedirectLocationstring 将当前请求重定向
Response常用方法

方法名返回值类型说明
AppendCookievoid向响应对象的Cookie集合中增加一个Cookie
Clearvoid清空缓冲区中的所有内容输出
Closevoid关闭当前服务器到客户端的连接
End void终止响应,并且将缓冲区中的输出发送到客户端
Redirectvoid重定向当前请求
例子:(新建一个单文件的aspx页面,把下面代码贴过去)

Request和Response

<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Request例子</title>
</head>
<body>
<table border="1" width="600px" bordercolordark="#2B72A2" bordercolorlight="#993333">
<tr><td colspan="2" bgcolor="#80ffff">Request</td></tr>
<tr><td>ApplicationPath(网站路径)</td><td><%=Request.ApplicationPath%></td></tr>
<tr><td>ContentEncoding(网页编码)</td><td><%=Request.ContentEncoding%></td></tr>
<tr><td>Cookies个数</td><td><%=Request.Cookies.Count%></td></tr>
<tr><td>QueryString个数</td><td><%=Request.QueryString.Count%></td></tr>
<tr><td>UrlReferrer(上一请求页面)</td><td> <%=Request.UrlReferrer%></td></tr>

<tr><td colspan="2" bgcolor="#80ffff">Response</td></tr>
<tr><td>Charset</td><td><%=Response.Charset%></td></tr>
<tr><td>ContentEncoding(网页编码)</td><td><%=Response.ContentEncoding%></td></tr>
<tr><td>Cookies个数</td><td><%=Response.Cookies.Count%></td></tr>
<tr><td>ContentType</td><td><%=Response.ContentType%></td></tr>
</table>
</body>
</html>
效果如图:



从图上可以看出:利用Dreamweaver创建的网页,如果采用默认编码,请求对象的字符编码是UTF-8,而响应对象的编码为gb2312。这样极有可能可能产生乱码问题。
另外,需要说明的是常见的服务器响应的ContentType是“text/html”,代表响应是以HTML文件形式传输的。还有一些其它形式的ContentType,如下:
image/jpeg:响应对象是jpeg图片
text/xml:响应对象是xml文件
text/javascript:响应对象是javascript脚本文件
Response的ContentType属性默认是“text/html”,表示服务器以HTML文件响应客户端请求,如果需要用其它方式响应客户端请求,则需要设置ContentType属性。假如我们需要用jpeg图片的格式响应客户端请求,则需要设置ContentType属性为“image/jpeg”,然后将图片内容输出到客户端,这样客户端就会看到jpeg格式的图片而不是HTML文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: