3.Response对象
- 响应的缓冲输出:为了提高服务器的性能,Asp.net向浏览器Write 的时候默认并不会每写一次都会立即输出到浏览器,而是会缓存数据,请缓存器满了或发送相关命令后就会一次将缓存区中的数据一起发送给浏览器。
- Response对象的主要成员:
Response.Buffer,Response.BufferOutput:经过Reflector反编译后,会发现这两个属性是一样的,Buffer内部就是调用BufferOutput,这个属性用来控制是否采用响应缓存,默认是true - Response.Flush(),将缓存区中的数据发送给浏览器,这在需要将写出来的内容立即输出到浏览器的场合非常有用。如当导入或导出数据时,让浏览器实时显示"第*条正在导出(入)”的数据,用Thread.Sleep模拟耗时。
- Response.Clear(),清空缓存区中的数据,这样在缓存区中的没有发送到浏览器端的数据被清空,不会被发送到浏览器。
- Response.ContentEncoding,输入流的编码
- Response.ContentType,输出流的内容类型,比如是html(text/html),文本(text/plain),jpg(image/JPEG)
- Rresponse.SetCookie,写cookie,
- Response.OutputStream,响应输出流,在输出图片,excel文件等非文本内容的时候用到它。
- Response.End(),终止响应,将之前缓存中的数据发给浏览器,End()之后的代码将不会被执行,在终止一些非法的请求时,比如防盗链等,可用不用回应客户端的请求。
- Response.Redirect(url),重定向浏览器到新的网址,即可以重定向到站外网址也可以重定向站内网址。它是响应向浏览器发回302重定向,是通知浏览器请重新访问url这个网址。使用httpwatch 就可以看到响应过程的报文 。用Redirect是因为浏览器自己去重新访问新网址的,所以在地址栏中是可以看到网址的变化的。
- Response.Write(),向浏览器输入内容
- Response.WriteFile(filename),向浏览器输入文件,即把文件打印到浏览器上。
以上的部分属性可以通过httpwatch查看响应的报文头即可。