圖4-25 顯示Server.MapPath的結果 (1) 示例網頁代碼的功能 處理這個過程的代碼是與前面在相似的示例文件中已經使用過的代碼十分相似。 在該頁面頂部的asp腳本區域中,對單擊的按鈕的名字進行檢查。在這種情況下,該按鈕的名字將是cmdMapPath,簡單地把相匹配的文本框中的值txtMapPath傳送給Server.MapPath方法,并顯示得到的結果: If Len(Request.Form(“cmdMapPath”)) Then StrValue = Request.Form(“txtMapPath”) Response.Write “<B>Results:</B><BR>Server.MapPath (“ & QUOT & strValue _ & QUOT & “ ) returned <B>” & QUOT & Server.MapPath(strValue) _ & QUOT & “</B><HR>” End If (2) MapPath和虛擬應用程序目錄 注意,MapPath方法為/iishelp/default.htm文件獲取的結果在Web服務器目錄外,并在主winnt目錄的help目錄中。這清楚地證明了MapPath方法是非常有用的。 對于在缺省的Web網站目錄中的文件,其URL的路徑部分與物理路徑通常是相同的。例如,一個文件存儲在Web服務器上: c:/InetPub/WWWRoot/yourfiles/thisfile.asp 如果安裝時已經在缺省目錄中安裝了的Web根目錄,則URL如下: http://yoursite.com/yourfiles/thisfile.asp 然而,IIS Help文件安裝在缺省Web網站目錄外的一個虛擬目錄中,所以用于對其進行訪問的URL和物理路徑之間沒有直接的關聯。只有通過使用Server.MapPath方法才能獲取真實的物理路徑。
4.3..6 使用Server對象格式化數據 當前面討論演示SSI指令的網頁的代碼時,碰巧遇到了使用HTML的一個老問題。在一個HTML網頁中如何顯示HTML代碼?如果“照現在的樣子”使用,也就是在相應的位置上使用所有的HTML字符,會被瀏覽器當作HTML解釋和執行。這樣當下列內容在瀏覽器中顯示時: This is the syntax of a <TABLE> element: 將不會顯示文本<TABLE>,因為瀏覽器將其作為一個數據表的一個開始標記,并照此來執行。為了避免這種情況,必須把在HTML中非法或無效的所有字符轉換到等價的HTML字符實體(character entity)。多數常見的字符如表4-5所示: 表4-5 字符與等價的HTML實體的關系 字 符 等價的HTML實體 字 符 等價的HTML實體