理论教育 ASP.NET实战教程:Server服务对象

ASP.NET实战教程:Server服务对象

时间:2023-11-20 理论教育 版权反馈
【摘要】:Server对象提供对服务器上的方法和属性进行访问。通过Server对象能够获取远程服务器的信息,示例代码如下:上述代码运行后将会输出服务器名称,输出结果根据服务器的名称不同而不同。■MapPath,返回与Web服务器上的执行虚拟路径相对应的物理文件路径。

ASP.NET实战教程:Server服务对象

Server对象提供对服务器上的方法和属性进行访问。

1.Server对象的常用属性

Server对象的常用属性如下所示:

■MachineName,获取远程服务器的名称。

■ScriptTimeout,获取和设置请求超时。

通过Server对象能够获取远程服务器的信息,示例代码如下:

978-7-111-46863-9-Chapter04-28.jpg

上述代码运行后将会输出服务器名称,输出结果根据服务器的名称不同而不同。

2.Server对象的常用方法

Server对象的常用方法如下:

■CreatObject,创建COM对象的一个服务器实例。

■Execute,使用另一个页面执行当前请求。

■Transfer,终止当前页面的执行,并为当前请求开始执行新页面。

■HtmlDecode,对已被编码的消除Html无效字符的字符串进行解码。

■HtmlEncode,对要在浏览器中显示的字符串进行编码。

■MapPath,返回与Web服务器上的执行虚拟路径相对应的物理文件路径。

■UrlDecode,对字符串进行解码,该字符串为了进行HTTP传输而进行编码,并在URL中发送到服务器。

■UrlEncode,编码字符串,以便通过URL从Web服务器到客户端浏览器的字符串传输。

在ASP.NET中,默认编码是UTF-8,所以在使用Session和Cookie对象保存中文字符或者其他字符集时经常会出现乱码,为了避免乱码的出现,可以使用HtmlDecode和HtmlEn-code方法进行编码和解码。HTML页面代码如下:

978-7-111-46863-9-Chapter04-29.jpg

978-7-111-46863-9-Chapter04-30.jpg

上述代码使用了两个文本标签控件用来保存并呈现编码后和解码后的字符串,在CS页面可以对字符串进行编码和解码操作,示例代码如下:(www.daowen.com)

978-7-111-46863-9-Chapter04-31.jpg

978-7-111-46863-9-Chapter04-32.jpg

图4-7 HtmlEncode和HtmlDecode

上述代码将str字符串进行编码并存放在Label1标签中,Label2标签将读取Label1标签中的字符串再进行解码,运行后如图4-7所示。

在使用了HtmlEncode方法后,编码后的HTML标注会被转换成相应的字符,如符号“<”会被转换成字符“&lt;”。在进行解码时,相应的字符会被转换回来,并呈现在客户端浏览器中。当需要让浏览器能够接收HTML字符时,URL地址栏中对页面的参数的传递不能够包括空格,换行等符号,如果需要使用该符号,可以使用UrlEncode方法和UrlDecode方法进行变量的编码解码,示例代码如下:

978-7-111-46863-9-Chapter04-33.jpg

在Page_Load方法中可以接收该字符串,示例代码如下:

978-7-111-46863-9-Chapter04-34.jpg

当长字符串跳转和密封的信息在页面中进行发送和传递时,可以使用UrlEncode方法和UrlDecode方法进行变量的编码解码,以提高应用程序的安全性。

3.Server.MapPath方法

在创建文件,删除文件或者读取文件类型数据库时(如Access和SQLite),都需要指定文件的路径并显式的提供物理路径执行文件的操作,如D:\Program Files。但是这样做却暴露了物理路径,如果有非法用户进行非法操作,很容易就显示了物理路径,这样就造成了安全问题。

而如果在使用文件和创建文件时,如果非要为创建文件的保存地址设置一个物理路径,这样非常不便,并且用户体验也不好。当用户需要上传文件时,用户不可能知道也不应该知道服务器路径。如果使用MapPath方法能够实现。MapPath方法以“/”开头,则返回Web应用程序的根目录所在的路径,若MapPath方法以“../”开头,则会从当前目录开始寻找上级目录,如图4-8所示,而其实际服务器路径如图4-9所示。

978-7-111-46863-9-Chapter04-35.jpg

图4-8 MapPath示意图

978-7-111-46863-9-Chapter04-36.jpg

图4-9 服务器路径

如图4-8所示,论坛根目录为root,在根目录下有一个文件夹为file1,在file1中的文件可以使用MapPath访问根目录中文件的方法有Server.MapPath(“../文件名称”)或Serv-er.MapPath(“/文件名称”),示例代码如下:

978-7-111-46863-9-Chapter04-37.jpg

Server.MapPath其实返回的是物理路径,但是通过MapPath的封装,通过代码无法看见真实的物理路径,若需要知道真实的物理路径,只需输出Server.MapPath即可,示例代码如下:

978-7-111-46863-9-Chapter04-38.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈