初识 Asp.Net内置对象之Server对象
Server对象
Server对象定义了一个于Web服务器相关联的类提供对服务器上的方法和属性的访问,用于访问服务器上的资源。
Server对象的常用属性
属性 | |
MarhineName | 获取服务器的计算机名称 |
ScriptTimeout | 获取和设置请求超时值 |
Server对象常用方法
方法 | |
Execute | 在当前请求的上下文中执行指定资源的处理程序,然后将控制返回给处理程序 |
HtmlDecode | 对已被编码以消除无效的HTML字符的字符串进行解码 |
HtmlEncode | 对要在浏览器中显示的字符进行编码 |
MapPath | 返回与web服务器上的指定虚拟路径相对应的物理文件路径 |
UrlDecode | 对字符串进行解码,改字符串为了进行HTTP传输而编码并在URL中发送到服务器 |
UrlEncode | 编码字符串,以便通过URL从Web服务器到客户端经行可靠的HTTP传输 |
transfer | 终止当前页的执行,并为当前请求开始执行新页 |
1.使用Server.Execute方法和Server.Transfer方法重定向页面
Execute方法用于执行从当前页面转移到另一个页面,并将执行返回到当前页面,执行所转移的页面在同一浏览器窗口中执行,然后原始页面继续执行。所以执行Execute方法后原始页面保留控制权。
Transfer方法用于将执行完全转移到指定页面。执行该方法时主调页面将失去对其的控制权。
实验一个简单的例子吧!在页面放置2个按钮,一个负责Execute,一个负责Transfer方法,具体如下:
我们现在利用Server对象的Execute方法和Transfer方法从当前ServerDemo.aspx页面重新定向到页面。具体的ServerDemo.aspx.cs代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebSessionDemo { public partial class ServerDemo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } /// <summary> /// Execute按钮 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btn_Execute_Click(object sender, EventArgs e) { this.Server.Execute("NewServerDemo.aspx?Message=Execute"); this.Response.Write("ServerDemo.aspx页"); } /// <summary> /// Transfer按钮 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btn_Transfer_Click(object sender, EventArgs e) { this.Server.Transfer("NewServerDemo.aspx?Message=Transfer"); this.Response.Write("ServerDemo.aspx页"); } } }
运行前先在项目建立一个NewServerDemo.aspx页面,以免程序出现异常,运行效果如下:
2.使用Server.MapPath方法获取服务器的物理路径
MapPath方法用来放回与Web服务器上的指定虚拟路径相对应的物理文件路径。写法如下:
Server.MapPath(path); //path表示Web服务器上的虚拟路径,如果为空,则该方法会返回包含当前应用程序的完整物理路径。
3.对字符串经行编码和解码
3.1字符串编码
Server对象的UrlEncode方法用于通过对URL传递到服务器的数据经行编码,写法:
Server.UrlEncode(string);//string为需要经行编码的数据
Server对象的UnEncode方法的编码规则:
- 空格被“+”代替
- 字段不被编码
- 字段名称将被指定为关联的字段值
- 非ASCII字符将被转义码所代替。
3.2字符串解码
Server对象的UrlDecode方法用来对字符串经行URL解码并返回已经解码的字符串,如:
Response.Write(Server.UrlDecode("http%3a%2f%2flogin.aspx"));
解码后输出结果应该是"http://login.aspx";
OK,到这里ASP.NET的内置对象,Request /Response/Session/Cookie/Application/Server大致介绍就完了!其实我们最常用的无非就是用Requset对象通过HTTP请求服务器可以得到客户端的信息,然后在通过Response对象控制发送回给客户端的信息,Server对象提供了服务器端的基本属性和方法!