Response对象是HttpResponse类的一个对象,与一个HTTP响应相对应,通过该对象的属性和方法可以控制如何将服务器端的数据发送到客户端浏览器。
(1)Response对象的属性
n Buffer:表明页输出是否被缓冲。
n BufferOutput:是否缓冲输出并在完成处理整个页之后将其发送。
n Cache :获取Web页的缓存策略(过期时间、保密性、变化子句)。
n Charset :获取或设置输出流的HTTP字符集。
n ContentEncoding:获取或设置内容的编码格式。
n ContentType:获取或设置输出流的HTTP MIME类型。
n Expires:获取或设置在浏览器上缓存的页过期之前的分钟数。如果用户在页过期之前返回同一页,则显示缓存的版本。提供Expires是为了与以前的ASP版本兼容。
n ExpiresAbsolute:获取或设置将缓存信息从缓存中移除时的绝对日期和时间。提供ExpiresAbsolute是为了与以前的ASP版本兼容。
n Filter:获取或设置一个包装筛选器对象,该对象用于在传输之前过滤HTTP实体主体。
n IsClientConnected:指示客户端是否仍连接在服务器上。
n Output:返回输出HTTP响应流的文本输出。
n OutputStream:返回输出Http内容主体的二进制输出流。
n Status:设置返回到客户端的状态栏。
n StatusCode:获取或设置返回给客户端的输出HTTP状态代码,通过HTTP状态代码客户端可以知道服务器端运行情况。
n StatusDescription:获取或设置返回给客户端的输出的HTTP状态字符串。
n SuppressContent :是否将HTTP内容发送到客户端。
(2)Response对象的方法
n BinaryWrite:将一个二进制字符串写入HTTP输出流。
n Clear:清除缓冲区流中的所有内容输出。
n ClearContent:清除缓冲区流中的所有内容。
n ClearHeaders:清除缓冲区流中的所有头信息。
n Close:关闭到客户端的套接字连接。
n End:将当前所有缓冲的输出发送到客户端,停止该页的执行,并引发Application_EndRequest事件。
n Flush:向客户端发送当前所有缓冲的输出。Flush方法和End方法都可以将缓冲的内容发送到客户端显示,但是Flush与End的不同之处在于,Flush不停止页面的执行。
n Write:用于将信息写入输出流,输出到客户端显示。
n WriteFile:直接将指定的文件写入到输出流显示。
n Redirect:将浏览器转到指定的另外一个网页。
2. Request对象
Request对象实际上是System.Web命名空间中的HttpRequest类的对象。当客户发出请求执行ASP.NET程序时,客户端的请求信息会包装在Request对象中,这些请求信息包括请求报头(Header)、客户端的机器信息,客户端浏览器信息,请求方法(如POST、GET)、提交的窗体信息等。
(1)Request对象的属性
n AcceptTypes:客户端支持的MIME接受类型的字符串数组。
n ApplicationPath:服务器上ASP.NET应用程序的虚拟应用程序根路径。
n Browser:有关正在请求的客户端的浏览器功能的信息。
n ClientCertificate:当前请求的客户端安全证书。
n ContentEncoding:或设置实体主体的字符集。
n ContentLength:指定客户端发送的内容长度(以字节计)。
n ContentType:传入请求的MIME内容类型。
n Cookies:客户端发送的cookie的集合。
n CurrentExecutionFilePath:当前请求的虚拟路径。
n FilePath:当前请求的虚拟路径。
n Form:窗体变量集合。
n Headers:HTTP头集合
n IsAuthenticated:是否验证了用户。
n HttpMethod:客户端使用的HTTP数据传输方法(如GET、POST或HEAD)。
n IsSecureConnection:HTTP连接是否使用安全套接字(即HTTPS)。
n Path:当前请求的虚拟路径。
n PhysicalApplicationPath:当前正在执行的服务器应用程序的根目录的物理文件系统路径。
n QueryString:HTTP查询字符串变量集合。
n PhysicalPath:获取与请求的URL相对应的物理文件系统路径。
n RawUrl:当前请求的原始URL。
n RequestType:客户端使用的HTTP数据传输方法(GET或POST)。
n ServerVariables:获取Web服务器变量的集合。
n Url:有关当前请求的URL的信息。
n UserAgent:客户端浏览器的用户代理信息
n UserHostAddress:客户端的主机地址。
n UserHostName:客户端的DNS名称。
n UserLanguages:客户端语言首选项的排序字符串数组。
(2)Request对象应用(1)——获取客户端表单信息
在Web应用程序中,经常会在一个页面中填入一些信息,然后提交该页面到服务器。通过Request对象可以获得提交的客户端表单的信息。根据用于提交信息方法的不同,Request对象可以分别使用QueryString和Form属性获取客户端的表单信息。
1.当用户通过POST方法提交表单信息时,通过Form属性可以获取表单信息。
使用方法:Request.Form[“控件名”]
2.当用户通过GET方法提交表单信息时,通过QueryString可以获取表单信息。
使用方法:Request.QueryString[“控件名”]
(3)Request对象应用(2)——获取客户端浏览器信息
通过Request对象的Browser属性可以获得客户端浏览器的信息,该属性实际为一个HttpBrowserCapabilities对象。HttpBrowserCapabilities对象的属性见示例演示。
(4)Request对象应用(3)——获取客户端其它信息
通过Request对象的属性还可以获取客户端的其它信息,例如通过UserAgent属性获取客户端浏览器的用户代理信息,通过UserHostAddress属性获取客户端的主机地址等。
另外通过Request对象Headers属性可以获取HTTP的头部信息。
3.Server对象
Server对象的属性反映了Web服务器的各种信息,它提供了服务器可以提供的各种服务。
Server对象的主要属性和方法:
n MachineName属性:获取服务器的计算机名称。
n ScriptTimeout属性:获取和设置请求超时(以秒计)的时间。
n GetLastError方法:可以获得前一个异常,当发生错误时可以通过该方法访问错误信息。通过ClearError方法可以清除前一个异常。
n Transfer方法:用于终止当前页的执行,并为当前请求开始执行新页。
n MapPath方法:应用返回与Web服务器上的指定虚拟路径相对应的物理文件路径。
n HTMLEncode方法:对要在浏览器中显示的文本进行编码。
n HTMLDecode方法:是HTMLEncode方法的反操作。
n UrlEncode方法:对超连接字符串进行编码。
UrlDecode方法:UrlEncode方法的反操作
4. Application对象
Application对象是一个集合对象,并在整个ASP.NET网站内可用,不同的用户在不同的时间都可以访问Application对象的变量。由于它是一个内置对象,所以使用它的时候与使用Response对象和Request对象类似,不需要进行任何对象的实例化,就可以直接使用。 Application对象用来存储变量或对象,以便在网页再次被访问时(不管是不是同一个连接者或访问者),所存储的变量或对象的内容还可以被重新调出来使用,也就是说Application对于同一网站来说是公用的,可以在各个用户间共享。 (1)Application对象的属性和方法
n Count:取得Application对象变量的数量。
n Get:使用索引或变量名称获取变量的值。
n GetKey:使用索引获取对象变量的值。
n Add(name,value):新增一个名称为name,值为value的Application对象变量。
n Set(name,value):更新名为name的Application对象变量的值。
n Clear:清除全部的Application对象变量。
n Remove(name):删除名称为name的Application对象变量。
n Lock:锁定所有Application对象变量。
n UnLock:解除锁定所有Application对象变量。
(2)Application对象的重要事件
n OnStart事件:是当第一个客户请求ASP.NET文件的时候,由ASP.NET调用执行;
n OnEnd事件:在服务器关闭的时候,由ASP.NET调用执行,通常是把所有需要永久保存的信息写入到磁盘中,以便在服务器重新启动并被访问的时候重新加载。
使用Application对象存取变量时需要注意以下几点:
n Application对象变量应该是经常使用的数据,如果只是偶尔使用,可以把信息存储在磁盘的文件中或者数据库中。
n Application对象是一个集合对象,它除了包含文本信息外,也可以存储对象。
5.Session对象
提供了内置对象Session负责存储、读取和改变一个特定用户的会话信息。对于每个用户的每次访问Session对象是唯一的,这主要体现在: ASP.NET
1)对于某个用户的某次访问,Session对象在访问期间唯一,可以通过Session对象在页面间共享信息。只要Session没有超时,或者Abandon方法没有被调用,Session中的信息就不会丢失。Session对象不能在用户间共享信息,而Application对象可以在不同的用户间共享信息。
2)对于用户的每次访问其Session都不同,两次访问之间也不能共享数据。
(1)Session对象的属性和方法
n SessionID:表示一个会话的存在,当用户与服务器建立连接时服务器就自动给用户分配一个SessionID,SessionID可以区分不同的会话(Session)。
n TimeOut:表示在一个会话结束之前会等待用户没有任何活动的最大时间,单位是分钟。
n Abandon:调用该方法用于消除用户的Session对象并释放其所占的资源。调用Abandon方法后会触发Session_OnEnd事件。
n Add(name,value):新增名字为name,值为value的Session变量。
n Clear:清除所有Session变量。
n RemoveAll:清除所有Session变量。
n Remove(name):清除名字为name的Session变量。
n RemoveAt(index):删除索引为index的Session变量。
n CopyTo:将当前会话状态值集合复制到一个一维数组中。
(2)Session对象的两个事件
n Session_OnStart事件:在创建一个Session时被触发;
n Session_OnEnd事件:在用户Session结束时(可能是因为超时或者调用了Abandon方法)被调用。
n 6. Cookie对象
在Web程序设计中,它表示一个长度不超过4K的一个普通的文本文件。这个文件在用户的硬盘上,可以由Web浏览器进行访问。
Cookie有两种形式:会话Cookie和永久Cookie。
n 会话Cookie是临时性的,保存在用户的内存中而不是硬盘上,只在浏览器打开的时候才存在,一旦会话结束或会话超时,这个Cookie就被删除。
n 永久Cookie则是永久性地存储在客户的硬盘上,并且在指定的过期日期之前一直可以使用。
因此,为了能够长期地保存Cookie信息,需要设置Cookie的过期日期,这样才能让Cookie成为永久性Cookie。
(1)Cookie对象的属性和方法
n Expires:获取或设置此Cookie的过期日期和时间。默认为1000分钟。
n Name:获取或设置Cookie的名称。
n Value:获取或设置单个Cookie值。
n Values:获取单个Cookie对象中包含的键值对的集合。
n Add:向Cookie中添加一个名字、值对。
(2)Cookie的实用方法
Cookies对象不属于Page对象,用法与Application及Session对象不同。
1)创建一个Cookie
HttpCookie Cookie对象名=new HttpCookie(Cookie名);
2)向Cookie中添加名字、值对
Cookie对象名. values. Add(名字,值);
3)将Cookie写入到客户端
Response.AppendCookie(Cookie对象名);
4)获取Cookie对象
HttpCookie Cookie对象名=Request.Cookies[“Cookie名”];
5)获取Cookie对象中的值
Cookie.values[“关键字名”];
(3)设置Cookie的过期时间
Cookie对象的Expires属性用于获取或设置Cookie对象的到期日及时间。到期日及时间以客户端的计算机为准。
例如:
设置过期时间为2011-09-09:
myCookie.Expires =Convert.ToDateTime("2011-09-09");
设置永不过期:
myCookie.Expires = DateTime.MaxValue;