Response代表了服务器响应对象。每次客户端发出一个请求的时候,服务器就会用一个响应对象来处理这个请求,处理完这个请求之后,服务器就会销毁这个相应对象,以便继续接受其它客服端请求。
Response常用属性如下:
属性名 | 值类型 | 说明 |
Charset | string | 表示输出流的所使用的字符集 |
ContentEncoding | Encoding | 设置输出流的编码 |
ContentLength | Int | 输出流的字节大小 |
ContentType | string | 输出流的HTTP MIME类型 |
Cookies | HttpCookieCollection | 服务器发送到客户端的Cookie集合 |
Output | TextWriter | 服务器响应对象的字符输出流 |
RedirectLocation | string | 将当前请求重定向s |
Response常用方法如下:
属性名 | 返回值类型 | 说明 |
AppendCookie | void | 向响应对象的Cookie集合中增加一个Cookie |
Clear | void | 清空缓冲区中的所有内容输出 |
Close | void | 关闭当前服务器到客户端的连接 |
End | void | 终止响应,并且将缓冲区中的输出发送到客户端 |
Redirect | void | 重定向当前请求 |
关于Response.Redirect和Server。Transfer:
response.redirect其实上是当服务器碰到这条语句时发送一条指令(包含新的地址)给浏览器,然后让浏览器去发送http请求,请求response.redirect后面的那个新的http地址,流程如下:
浏览器文件请求->服务器执行->遇到response.redirect语句->服务器发送response.redirect后面的地址给客户机端的浏览器->浏览器请求执行新的地址(服务器返回的Response.Redirect后面的地址)这就是一个小小的Response.Redirect的全部过程, Server.Transfer语句当接受地址后是直接转向后面的地址,流程如下:
浏览器文件请求->服务器执行->遇到Server.Transfer语句->服务器转向新的文件。
Server.Transfer方法与Redirect方法相比另一个显著的优势是在页面转换时,Request集合里的内容不会丢失(同一个http请求),这给我们编程带来很大的方便.
一般的情况下尽可能用Server.Transfer方法(前提是服务器是IIS),Server.Transfer方法更快速,而且因为只在服务器上执行,所以可以和任何浏览器兼容。