Server对象(是属性)

Server对象(是属性)
  • Server是context的一个属性,是HttpServerUtility类的一个对象
  • Server.HtmlDecode()、Server.HtmlEncode() Server.UrlEncode()、Server.UrlDecode()是对HttpUtility类中相应方法的一个代理调用。个人推荐总是使用HttpUtility,因为有的地方很难拿到Server对象。别把HtmlEncode、UrlEncode混了,UrlEncode是处理超链接的, HtmlEncode是处理html代码的。
  • Server.Transfer(path) 内部重定向请求,Server.Transfer("JieBanRen.aspx")将用户的请求重定向给JieBanRen.aspx处理,是服务器内部的接管,浏览器是意识不到这个接管的,不是象Response.Redirect那样经历“通知浏览器‘请重新访问url这个网址’和浏览器接到命令访问新网址的过程”是一次http请求,因此浏览器地址栏不会变化(联想,呼叫中心坐席告诉客户一个号码和帮客户转接的区别)。因为是内部接管,所以在被重定向到的页面中是可以访问到Request、Cookies等这些来源页面接受的参数的,就像这些参数是传递给他的,而Redirect则不行,因为是让浏览器去访问的。注意Transfer是内部接管,因此不能像Redirect那样重定向到外部网站。 (常考)
  • 使用Server.Transfer不能直接重定向到ashx,否则会报错“执行子请求出错”。
  • 有的时候不能拿到HttpContext对象,比如在Global.asax中(后面讲),可以通过HttpContext.Current拿到当前的HttpContext,进而拿到Response、Request、Server等。
  • Server.MapPath(获得全路径)。如果拿不到Server则使用HostingEnvironment.MapPath()方法
posted @ 2016-03-18 15:08  copperface  阅读(879)  评论(0编辑  收藏  举报