ASP.NET内置对象之Server

注:本文主要是参考《ASP.NET 夜话》,加入了自己的整理

做asp.net开发时无需new就能使用的对象,如:

  Request ,Response ,Server ,Session ,Cookie ,Application
在asp.net中所有的网页都是继承自System.Web.UI.Page这个类。由于HTTP是一种无状态的协议,也就是它并不记得上一次谁请求过它,不会主动去询问客户端,只有当客户端主动请求之后,服务器才会响应。
3、Server
 Server对象是用于获取服务器的相关信息的对象。它常用方法如下

属性名 返回值类型 说明
Execute void 执行指定的资源,并且在执行完之后再执行本页的代码
HtmlDecode string 消除对特殊字符串编码的影响
HtmlEncode string 对特殊字符串进行编码
MapPath string 获取指定相对路径在服务器上的无力路径
Transfer void 停止执行当前程序,执行指定的资源
MapPath string 对路径字符串进行解码
UrlEncode string 对路径字符串进行编码
上面的方法光从概念上来说,似乎还是让人不能分清他们到底有什么作用,特别Excure/ Transfer、HtmlEncode(HtmlDecode)/ UrlEncode(UrlDecode)这两组。在讲述他们分别之前先讲述MapPath这个方法的作用,在我们上传文件的时候要以物理路径保存上传文件到服务器,而我们使用得最多的是相对URL地址,这个方法就起到了将相对URL地址转换成服务器物理路径的作用。
例子:(新建一个单页面的aspx页面,然后把下面代码复进去)
Server对象的常见方法实例
 <%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %> 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 
<html xmlns="http://www.w3.org/1999/xhtml"> 
 
<head> 
 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
 
<title>Server对象的常见方法实例</title> 
 
</head> 
 
<body> 
 
<ul> 
 
<li>Server.MapPath(".")=<%=Server.MapPath(".")%></li> 
 
<li><%=Server.HtmlEncode("<h1>Asp.net夜话之二:asp.net内置对象</h1>")%></li> 
 
<li><h1>Asp.net夜话之二:asp.net内置对象</h1></li> 
 
<li><%=Server.UrlEncode("<a href=\"http://blog.csdn.net/zhoufoxcn\">周公的专栏</a>")%></li> 
 
<li><href="http://blog.csdn.net/zhoufoxcn">周公的专栏</a></li> 
 
</ul> 
 
</body> 
 
</html>

 效果如下所示:
server对像
在上面的例子中我们想在网页中输出HTML代码,如果直接输出往往得不到想要的效果,这时可以借助HtmlEncode方法对要输出的HTML代码进行编码,这样输出到浏览器上的时候就能看到HTML代码,而不是HTML形成的效果。HtmlDecode方法则是用来消除这种影响。
如果我们直接输出“<a href="http://blog.csdn.net/zhoufoxcn">周公的专栏</a>”这个字符串的话,在网页上会显示一个超级链接,但是有时候我们希望把这个超级链接作为QueryString的一个参数,由于url地址的特殊性,比如“:”、“/”等字符串在URL地址中有特殊的含义,要想输出这些字符,直接输出是不行的,需要进行某种转换,并且将来还能转换回来。经过UrlEncode方法转换之后,“:”、“/”分别转换成了“%3a”和“%2f”这样的字符,并且汉字也进行了转换。UrlDecode方法则是将“%3a”和“%2f”等这样的字符转换成我们原本要表示的字符。

posted @ 2010-08-07 13:53  aito  阅读(297)  评论(0编辑  收藏  举报