二十三.Server对象
a常用方法:
HtmlEncode:想输出""而又不想被浏览器认为是换行时
string
Response.Write(str);
PS:有一个预览标签《pre》它也会原样输出
MapPath:参数为虚拟路径,返回物理位置
Server.MapPath("~/default.aspx")
Server.MapPath(null)//返回的是应用程序所在目录的物理路径
UrlEncode:链接中带有"&"号,"\"等特殊符号而又想让其输出这些符号时
用这个加密的是是URL中问号后参数的值,而不是URL本身
stringstr = Server.UrlEncode("4&5");
Response.Redirect("test.aspx?value="+str);
这个时候在test.aspx用Request.QueryString["value"]接收的时候,接收到的值是"4&5"
b其他方法
Execute(path)
Transfer(path)
HtmlDecode和UrlDecode:解码,一般不显式使用,会自动进行
Execute和Transfer的区别
C.Server.Transer(),Server.Execute()及Response.Redirect()三者之间的区别
Server.Transer():跳转发生后,重定向发生在服务器端,而原始页面的URL还保持在客户端的浏览器中(即URL保持不变,新的页面可以使用原始页面提交的数据)
Server.Execute():跳转发生后,URL保持不变,新的页面执行完成后重新回到原始页面Server.Execute()的代码位置继续执行,新的页面可以使用原始页面中的数据
Response.Redirect():跳转发生后,首先服务器向客户端发生一个http请求,通知客户端需要跳转的新页面,然后客户端再发送跳转新页面的请求到服务器端,所以其速度慢且URL会发生改变。新的页面将不能使用原始页面提交的数据,但可以通过Session,Cookie等对象进行页面的数据传递
PS:Server.Transer()和Server.Execute()都必须在同一个站点下才能实现跳转,而Response.Redirect()没有站点限制
我的更多文章:
- (2012-09-08 13:09:19)
- (2012-09-08 13:09:05)
- (2012-09-08 13:04:14)
- (2012-09-08 12:54:54)
- (2012-09-08 12:52:01)
- (2012-09-08 12:48:53)
- (2012-09-08 12:46:40)
- (2012-09-03 20:54:24)
- (2012-09-02 12:48:05)
- (2012-06-25 21:51:32)