濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > Asp.net內(nèi)置對(duì)象之Server對(duì)象(概述及應(yīng)用)

Asp.net內(nèi)置對(duì)象之Server對(duì)象(概述及應(yīng)用)

熱門標(biāo)簽:申請(qǐng)400電話手續(xù) 預(yù)測式外呼系統(tǒng)使用說明 電話機(jī)器人軟件銷售工作 合肥電銷外呼系統(tǒng)哪家公司做的好 玉林市機(jī)器人外呼系統(tǒng)哪家好 百度ai地圖標(biāo)注 同安公安400電話怎么申請(qǐng)流程 蘋果手機(jī)凱立德地圖標(biāo)注 南陽外呼系統(tǒng)定制化

一、了解Server對(duì)象

Server對(duì)象提供對(duì)服務(wù)器上的方法和屬性的訪問以及進(jìn)行HTML編碼的功能。這些功能分別由Server對(duì)象相應(yīng)的方法和屬性完成。

二、Server對(duì)象的常用屬性

(1).MachineName
(2).ScriptTimeout:屬性用于設(shè)置腳本程序執(zhí)行的時(shí)間,適當(dāng)?shù)卦O(shè)置腳本程序的ScriptTimeout可以提高整個(gè)Web應(yīng)用程序的效率。語法如下:
Server.ScriptTimeout=time;(以s(秒)為單位)

ScriptTimeout屬性的最短時(shí)間默認(rèn)為90 s。對(duì)于一些邏輯簡單、活動(dòng)內(nèi)容較少的腳本程序該值已經(jīng)足夠。但在執(zhí)行一些活動(dòng)內(nèi)容較多的腳本程序時(shí),就顯得小了些。比如訪問數(shù)據(jù)庫的腳本程序,必須設(shè)置較大的ScriptTimeout屬性值,否則腳本程序就不能正常執(zhí)行完畢。

復(fù)制代碼 代碼如下:

Response.Write("服務(wù)器機(jī)器名:" + Server.MachineName);//服務(wù)器機(jī)器名:IBM 
Response.Write("超時(shí)時(shí)間為:" + Server.ScriptTimeout);//超時(shí)時(shí)間為:30000000

三、Server對(duì)象的主要方法

四、Server對(duì)象的常見應(yīng)用

(1).執(zhí)行其他ASP.NET網(wǎng)頁

使用Server對(duì)象的Execute方法可以在當(dāng)前頁面中執(zhí)行同一Web服務(wù)器上的另一頁面,當(dāng)該頁面執(zhí)行完畢后,控制流程將重新返回到原頁面中發(fā)出Server.Execute方法調(diào)用的位置。被調(diào)用的頁面應(yīng)是一個(gè).aspx網(wǎng)頁,因此,通過Server.Execute方法調(diào)用可以將一個(gè).aspx頁面的輸出結(jié)果插入到另一個(gè).aspx頁面中。Server.Execute方法語法如下:
Server.Execute (path)

在WebForm1頁面中:

復(fù)制代碼 代碼如下:
 
protected void Page_Load(object sender, System.EventArgs e)
{
Response.Write("P>調(diào)用 Execute 方法之前/P>");
Server.Execute("Page2.aspx");//使用Server.Execute(Path)執(zhí)行其他ASP.NET頁面。這里將Page2.aspx的輸出結(jié)果插入到當(dāng)前頁面
//Server.Execute("http://www.163.com");//程序不能執(zhí)行,必須是相對(duì)路徑
Response.Write("P>調(diào)用 Execute 方法之后/P>");
}

在page.aspx頁面中
復(fù)制代碼 代碼如下:
 
protected void Page_Load(object sender, System.EventArgs e)
{
Response.Write("這是page2.aspx網(wǎng)頁");
}

則運(yùn)行結(jié)果為:

(2).將流程控制轉(zhuǎn)移到其他ASP.NET網(wǎng)頁

使用Server對(duì)象的Transfer方法可以終止當(dāng)前頁的執(zhí)行,并將執(zhí)行流程轉(zhuǎn)入同一Web服務(wù)器的另一個(gè)頁面。被調(diào)用的頁面應(yīng)是一個(gè).aspx頁面,在頁面跳轉(zhuǎn)過程中,Request等對(duì)象保存的信息不變,這意味著從頁面A跳轉(zhuǎn)到頁面B后可以繼續(xù)使用頁面A中提交的數(shù)據(jù)。此外,由于Server.Transfer方法調(diào)用是在服務(wù)器端進(jìn)行的,客戶端瀏覽器并不知道服務(wù)器端已經(jīng)執(zhí)行了一次頁面跳轉(zhuǎn),所以實(shí)現(xiàn)頁面跳轉(zhuǎn)后瀏覽器地址欄仍將保存頁面A的URL信息,這樣還可以避免不必要的網(wǎng)絡(luò)通信,從而獲得更好的性能和瀏覽效果。Server.Transfer方法如下:
Server.Transfer(path)

提示:參數(shù)path指定在服務(wù)器上要執(zhí)行的新頁的URL路徑,在此URL后面也可以附加一些查詢字符串變量的名稱/值對(duì)
在WebForm1頁面中:

復(fù)制代碼 代碼如下:

protected void Page_Load(object sender, System.EventArgs e)
{
Response.Write("P>調(diào)用 Transfer 方法之前/P>");
//Response.Redirect("Page2.aspx");
Server.Transfer("Page2.aspx");
//使用Server.Transfer(path)終止當(dāng)前頁的執(zhí)行,所以執(zhí)行到這一行就終止了,也就是說后面的不再執(zhí)行;
//然后將執(zhí)行流程轉(zhuǎn)入同一Web服務(wù)器的另一個(gè)頁面。也就是page2.aspx頁面中了。在頁面跳轉(zhuǎn)過程中,Request等對(duì)象保存的信息不變
//這意味著從頁面A跳轉(zhuǎn)到頁面B后可以繼續(xù)使用頁面A中提交的數(shù)據(jù):那么在page2.apsx頁面中就能輸出Server.Transfer(path)之前的數(shù)據(jù)了。
//Server.Transfer("www.163.com");//這樣不行,只能是虛擬路徑
Response.Write("P>調(diào)用 Transfer 方法之后/P>");
}

在Page2頁面:
復(fù)制代碼 代碼如下:

protected void Page_Load(object sender, System.EventArgs e)
{
Response.Write("P>這是 Page2.aspx 的執(zhí)行結(jié)果/P>");
}

則運(yùn)行結(jié)果:

如果我們換成了Response.Redirect("Page2.aspx");則只能實(shí)現(xiàn)頁面跳轉(zhuǎn)功能了。
引述:ASP.NET頁面?zhèn)髦档娜N方式

復(fù)制代碼 代碼如下:

(1).使用QueryString
(2).使用Session變量
(3).使用Server.Transfer

(3).將虛擬路徑轉(zhuǎn)換為物理文件路徑

在Web窗體頁中經(jīng)常需要訪問文件或文件夾,此時(shí)往往要求將虛擬路徑轉(zhuǎn)換為物理文件路徑。MapPath方法將指定的相對(duì)或虛擬路徑映射到服務(wù)器上相應(yīng)的物理目錄上。Web服務(wù)器中的多個(gè)Web應(yīng)用程序一般都按照各自不同的功能存放于不同的目錄中。

使用虛擬目錄后,客戶端仍然可以利用虛擬路徑存取網(wǎng)頁,這就是互聯(lián)網(wǎng)用戶在瀏覽器中常見的網(wǎng)頁的URL,但此時(shí)用戶無法知道該網(wǎng)頁的實(shí)際路徑(實(shí)際存放位置)。但如果確實(shí)需要知道某網(wǎng)頁文件的實(shí)際路徑,則可利用MapPath方法。MapPath方法的語法如下:

Server.MapPath(Path)

注意:其中參數(shù)Path表示指定要映射物理目錄的相對(duì)或虛擬路徑。執(zhí)行MapPath方法后,將返回與path相對(duì)應(yīng)的物理文件路徑。
解惑:相對(duì)路徑、絕對(duì)路徑、物理路徑、虛擬路徑

復(fù)制代碼 代碼如下:

(1).相對(duì)路徑:相對(duì)當(dāng)前目錄的路徑、或相對(duì)某個(gè)目錄的路徑,這里主要體現(xiàn)“相對(duì)”的概念
(2).絕對(duì)路徑:從網(wǎng)站的根路徑為最高層開始的路徑,如:C:\Website\web1\index.html
(3).物理路徑:實(shí)際磁盤中的路徑,可以是相對(duì)路徑、也可以是絕對(duì)路徑
(4).虛擬路徑:是服務(wù)器映射出來的路徑,如/myweb

(這里引用了CSDN博友:flytosea8的解釋:鏈接地址:http://bbs.csdn.net/topics/70115404)


虛擬路徑、物理路徑
用IIS舉個(gè)例子:
WEB服務(wù)目錄是d:\test
那么用HTTP訪問網(wǎng)站根目錄的時(shí)候,其實(shí)訪問的是d:\test,那么其中虛擬路徑就是\(根),物理路徑就是d:\test

一般虛擬路徑、物理路徑的提法在WEB、FTP服務(wù)中比較多見。

相對(duì)路徑和絕對(duì)路徑就比較廣泛了,哪兒都看得到
相對(duì)路徑:比如D:\TEST1\TEST2\TEST3
那么TEST2是TEST1的下級(jí)路徑,TEST2又是TEST3的上級(jí)路徑,所以上級(jí)路徑或者下級(jí)路徑都是相對(duì)而言的。一般上級(jí)路徑可以用..來表示,當(dāng)前路徑可以用.來表示。
絕對(duì)路徑:比如c:\根路徑都是絕對(duì)了,任何路徑相對(duì)于根路徑都有一個(gè)絕對(duì)的最近的路徑,也是絕對(duì)路徑。

如果你想想別人指路的話,就可以悟出什么是相對(duì)的,什么是絕對(duì)的
相對(duì)的指路方法:從“這兒”向前走,右拐就到了
絕對(duì)的指路方法:汽車站向東100米(如果汽車站是絕對(duì)的位置),絕對(duì)的指路方法不依賴于指路的人在什么地方


復(fù)制代碼 代碼如下:

protected void Page_Load(object sender, System.EventArgs e)
{
Response.Write("Web站點(diǎn)的根目錄為:"+Server.MapPath("/")+"br>");
Response.Write("當(dāng)前虛擬目錄的實(shí)際路徑為:"+Server.MapPath("./")+"br>");//E:\asp.net\Server對(duì)象\code\
Response.Write("當(dāng)前網(wǎng)頁的實(shí)際路徑為:"+Server.MapPath(Request.FilePath)+"br>");//E:\asp.net\Server對(duì)象\code\WebForm1.aspx
Response.Write("當(dāng)前網(wǎng)頁的實(shí)際路徑為:"+Server.MapPath("webform2.aspx")+"br>");//E:\asp.net\Server對(duì)象\code\WebForm2.aspx

}

(4).字符串的編碼與解碼

在某些情況下,可能需要在網(wǎng)頁中顯示“段落標(biāo)記p>”之類的內(nèi)容,而不希望瀏覽器將其中的p>解釋為HTML語言中的段落標(biāo)記;在上述場合,應(yīng)當(dāng)調(diào)用Server對(duì)象的HtmlEncode方法對(duì)要在瀏覽器中顯示的字符串進(jìn)行編碼
有時(shí)候,在傳遞參數(shù)時(shí),是將數(shù)據(jù)附在網(wǎng)址后面?zhèn)鬟f,但是如果遇到一些如“#”等特殊字符的時(shí)候,就會(huì)讀不到這些字符后面的參數(shù)。所以需要在傳遞特殊字符的時(shí)候,需先將要傳遞的內(nèi)容先以UrlEncode編碼,這樣才可以保證所傳遞的值可以被順利讀到。
另外有些服務(wù)器對(duì)中文不能很好的支持,這時(shí)候也需要利用UrlEncode對(duì)其進(jìn)行編碼,以被服務(wù)器所識(shí)別。

復(fù)制代碼 代碼如下:

HtmlEncode||HtmlDecode:
protected void Page_Load(object sender, System.EventArgs e)
{
Response.Write(Server.HtmlEncode("粗體標(biāo)記為:B>粗體文字/B>"));//HtmlEncode對(duì)字符串進(jìn)行HTML編碼并返回編碼后的字符串,所以這個(gè)原樣輸出
Response.Write("br>");
Response.Write(Server.HtmlDecode("粗體標(biāo)記為:B>粗體文字/B>"));//HtmlDecode對(duì)字符串進(jìn)行HTML解碼并返回解碼后的字符串,所以這個(gè)后面加粗
}

復(fù)制代碼 代碼如下:

UrlEncode||UrlDecode:
protected void Page_Load(object sender, System.EventArgs e)
{
Response.Write("A href='1.aspx?data=" + Server.UrlDecode("name@#163.com") + "'>沒有編碼的參數(shù)內(nèi)容/A>br>");//在1.aspx頁面輸出:name@
Response.Write("A href='1.aspx?data=name@#163.com'>沒有編碼的參數(shù)內(nèi)容/A>br>");//在1.aspx頁面輸出:name@
Response.Write("A href='1.aspx?data=" + Server.UrlEncode("name@#163.com") + "'>編碼的參數(shù)內(nèi)容/A>br>");//在1.aspx頁面輸出:name@#163.com
Response.Write(Server.UrlDecode("name@#163.com"));//對(duì)字符串進(jìn)行URL解碼,這里輸出:name@#163.com
Response.Write("br>");
Response.Write(Server.UrlEncode("name@#163.com"));//對(duì)字符串進(jìn)行URL編碼,這里輸出:name%40%23163.com
Response.Write("br>");
Response.Write(Server.UrlDecode("中文"));//輸出:中文
Response.Write("br>");
Response.Write( Server.UrlEncode("中文"));//輸出:%e4%b8%ad%e6%96%87
Response.Write("br>");
Response.Write(Server.UrlEncode("english"));//輸出:english
Response.Write("br>");
Response.Write(Server.UrlDecode("english"));//輸出:english
}

您可能感興趣的文章:
  • ASP.NET內(nèi)置對(duì)象之Application對(duì)象
  • javascript function、指針及內(nèi)置對(duì)象
  • JavaScript 核心參考教程 內(nèi)置對(duì)象
  • js內(nèi)置對(duì)象 學(xué)習(xí)筆記
  • javascript 基礎(chǔ)篇3 類,回調(diào)函數(shù),內(nèi)置對(duì)象,事件處理
  • jsp內(nèi)置對(duì)象及方法詳細(xì)介紹
  • Asp.net內(nèi)置對(duì)象之Cookies(簡介/屬性方法/基本操作及實(shí)例)
  • Asp.net內(nèi)置對(duì)象之Request對(duì)象(概述及應(yīng)用)
  • JSP內(nèi)置對(duì)象:Request和Response的簡單介紹及使用
  • 學(xué)習(xí)Java九大內(nèi)置對(duì)象

標(biāo)簽:臺(tái)州 南昌 嘉興 淄博 南京 海南 南京 揚(yáng)州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Asp.net內(nèi)置對(duì)象之Server對(duì)象(概述及應(yīng)用)》,本文關(guān)鍵詞  Asp.net,內(nèi)置,對(duì),象之,Server,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Asp.net內(nèi)置對(duì)象之Server對(duì)象(概述及應(yīng)用)》相關(guān)的同類信息!
  • 本頁收集關(guān)于Asp.net內(nèi)置對(duì)象之Server對(duì)象(概述及應(yīng)用)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    湘阴县| 嵊州市| 宜城市| 城口县| 辽阳市| 资溪县| 高安市| 舞阳县| 新宁县| 遂昌县| 元氏县| 仲巴县| 日照市| 安丘市| 图片| 阿合奇县| 长葛市| 轮台县| 九江市| 黑水县| 敦煌市| 鹤峰县| 安岳县| 互助| 南通市| 乐安县| 遵义县| 吴旗县| 遂宁市| 洪泽县| 翁牛特旗| 保定市| 个旧市| 驻马店市| 商河县| 土默特左旗| 建德市| 蒲城县| 靖宇县| 沂水县| 郁南县|