ASP.NET内置对象之Request ,Response

注:本文主要是参考《ASP.NET 夜话》,加入了自己的整理

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

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

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

属性名 值类型 说明
ApplicationPath String 获取请求的资源在网站上的根路径
ContentEncoding Encoding 设置请求对象的编码
Cookies HttpCookieCollection 客户端发送到服务器的Cookie集合
QueryString NameValueCollection 当前请求的查询字符串集合
UrlReferrer Uri 获取用户由哪个url跳转到当前页面

2、Response对象
Response代表了服务器响应对象。每次客户端发出一个请求的时候,服务器就会用一个响应对象来处理这个请求,处理完这个请求之后,服务器就会销毁这个相应对象,以便继续接受其它客服端请求。
Response常用属性如下:
属性名 值类型 说明
Charset String 表示输出流的所使用的字符集
ContentEncoding Encoding 设置输出流的编码
ContentLengt Int 输出流的字节大小
ContentType string 输出流的HTTP MIME类型
Output TextWriter 服务器响应对象的字符输出流
Cookies HttpCookieCollection 服务器发送到客户端的Cookie集合
RedirectLocation string 将当前请求重定向
Response常用方法
方法名 返回值类型 说明
AppendCookie void 向响应对象的Cookie集合中增加一个Cookie
Clear void 清空缓冲区中的所有内容输出
Close void 关闭当前服务器到客户端的连接
End void 终止响应,并且将缓冲区中的输出发送到客户端
Redirect void 重定向当前请求
例子:(新建一个单文件的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文件。

posted @ 2010-08-07 12:49  aito  阅读(487)  评论(0编辑  收藏  举报