[ASP.NET]Server属性和应用

前言:在ASP.NET中进场会看到Server属性,那么它到底是什么含义,又该怎么应用呢?下面和大家分享一下Server的属性和应用。

(一)Server属性

方法名属性
MapPath方法获得文件的物理路径
Execute方法和Transfer方法执行另一个页面的脚本
HtmlEncode方法和HtmlDecode方法将文本编码成可以在浏览器中正确浏览的格式
UrlEncode方法和UrlDecode方法URL编码和解码

(二)Server(HttpServerUtility)

Server是上下文对象context的一个属性,是HttpServerUtility类的一个对象

1.Server.HtmlDecode()、Server.HtmlEncode()

Server.UrlEncode()、 Server.UrlDecode()是对HttpUtility类中相应方法的一个代理调用。推荐总是使用HttpUtility,因为有的地方很难拿到Server对象,而且Server的存在是为以前ASP程序员习惯而留的。
别把HtmlEncode、UrlEncode混了,UrlEncode是处理超链接中的中文问题, HtmlEncode是处理html代码的。还是推荐用HttpUtility.HtmlEncode。

2.Server.Transfer(path)

内部重定向请求,Server.Transfer(“JieBanRen.aspx”)将用户的请求重定向给JieBanRen.aspx处理,是【服务器内部的接管】(不能重定向到外部网站),浏览器是意识不到这个接管的,不是像Response.Redirect那样经历“通知浏览器‘请重新访问url这个网址’和浏览器接到命令访问新网址的过程”,是一次http请求,因此【浏览器地址栏不会变化】。

因为是内部接管,所以在被重定向到的页面中是可以访问到Request、Cookies等这些来源页面接受的参数的,就像这些参数是传递给他的,而Redirect则不行,因为是让浏览器去访问的。

注意Transfer是内部接管,因此不能像【Redirect那样重定向到外部网站】。

Response.Redirect就可以重定向到外部网站。

不能内部重定向到ashx,否则会报错“执行子请求出错”.
有的时候不能拿到HttpContext对象,比如在Global.asax中(后面讲),可以通过HttpContext.Current拿到当前的HttpContext,进而拿到Response/Request/Server等
Server.MapPath。

总结:多总结,多实践。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值