人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

ASP編程基礎進階(7):內置對象Server

ASP編程基礎進階(7):內置對象Server

更新時間:2022-07-14 文章作者:未知 信息來源:網絡 閱讀次數:

Server 對象提供對服務器上的方法和屬性的訪問 , 其中大多數方法和屬性是作為實用程序的功能服務。(IIS HELP翻譯)
  有了 Server 對象,你就可以在服務器上啟動 ActiveX 對象例程,并使用 Active Server 服務提供象 HTML 和 URL 編碼這樣的函數。

  一、Script.ScriptTimeout

  在腳本運行超過一段時間之后,即作超時處理。
  服務器一般的默認腳本運行時間是90秒。
  你可以從“Internet信息服務”中“默認Web站點”的屬性彈出框中看出,你也可以自己設定。
  
  應該是“主目錄”標簽中的“配置”對話框中,WINXP一樣。

  在理解腳本運行時間之前,先來看一個程序,主要功能就是進行計算網頁執行時間的。


  當然對應的ASP也就是看到許多站點都有的頁面執行時間顯示。

  1.time.asp

<%startime=timer()%>
到下面看執行的時間
<%
for i= 1 to 5000
response.write("


")
next
%>
當然中間還可以添加其它內容。

<%endtime=timer()%>

<%=FormatNumber((endtime-startime)*1000,3)%>毫秒
  那如果上面的程序變成for i= 1 to 5000000
  呵呵,是不是機器快反應不過來的感覺,那這個就是腳本的執行時間了。
  為了讓程序能很好的執行,就該把腳本執行時間放長了。
  怎么放長?把默認的改?呵呵,當然不是:)

<%Server.ScriptTimeout=110%>
  時間的設定當然要是比默認90秒大的,現在的代碼就是:指定服務器處理腳本在 110 秒后超時。
  還有,腳本時間的確定要看自身的程序了,一般情況100秒左右也差不多了,即使能執行出來,可能觀看網頁的人早就把它叉叉了。

  以上的ScriptTimeout就是Server對象唯一屬性了。

  二、Server.HtmlEncode

  HtmlEncode就是Server對象的其中一個方法了。它允許你對特定的字符串進行 HTML 編碼,雖然 HTML 可以顯示大部分你寫入 ASP 文件中的文本,但是當你需要實際包含 HTML 標記中所使用的字符,就會遇到問題。這是因為,當瀏覽器讀到這樣的字符串時,會試圖進行解釋。

  還是看一個程序,我想在頁面顯示“ ”這樣的代碼(附: 是空格的代碼)。
  那么當我進行書寫的時候你會發現,瀏覽器已經給我解釋了的。

空格的代碼是:

你會發現上面的代碼都被執行了。
  所以,為了要讓一些特殊代碼能夠顯示,就運用該方法了。

  2.htmlencode.asp

<%Response.write ("這是沒有采用 HTMLEncode 方法的測試。
這里就另起一行,說明代碼被執行。 ")%>


<%Response.write Server.HtmlEncode("這是對 HTMLEncode 方法的測試。
這里應該不會另起一行,也就_
是代碼沒有被執行了。 ")%>
  這在許多網站,論壇都存在的一些BUG,不信你可以到各論壇試試:敲入 就是沒有,急死你呢:)當然HtmlEncode只是其中的一個原因,最主要的還是UBB代碼的轉換。不過關于這點我也已經調試解決了。
  調試地址參看 www.cnbruce.com/juven/showart.asp
  當然經典論壇不存在這問題,要不你也不會看到效果了。

  三、Server.UrlEncode



  正如 HtmlEncode 方法使客戶可以將字符串翻譯成可接受的 HTML 格式一樣,Server 對象的 UrlEncode 方法則是根據 URL 規則對字符串進行正確編碼,當字符串數據以 URL 的形式傳遞到服務器時,在字符串中不允許出現空格,也不允許出現特殊字符。為此,如果你希望在發送字符串之前進行 URL 編碼,可以使用 Server.URLEncode 方法。
  為方便起見,我們先看為處理送交,然后處理接受的效果。

  3.urlencode.asp

<%filepath=request.servervariables("script_name")%>
接受URL中的值(沒有處理接受值,發現值被解釋了): <%=request.querystring("cnbruce")%>

你可以輸入“
”等代碼看看:

接受URL中的值(進行了urlencode編碼,不會執行): <%=Server.URLEncode(request.querystring("cnbruce"))%>

  當然你會發現,雖然不執行了,但會出現“<”變成了“%3c”,“>”變成了“%3E”,那這就是因為沒有在發送之前處理。
  不過,我們還可以通過Replace函數將這些特殊代碼再逆轉過來。

  4.vurlencode.asp

<%
function tihuan(what)
tihuan=what
if not isnull(what) then
tihuan=replace(tihuan,"%3C","<>
tihuan=replace(tihuan,"%3D","=")
tihuan=replace(tihuan,"%3E",">")
tihuan=replace(tihuan,"%26","&")
tihuan=replace(tihuan,"空格我不知道,呵呵。哪個告訴我下:)"," ")
tihuan=replace(tihuan,"%3B",";")
tihuan=replace(tihuan,"%22",""")
tihuan=replace(tihuan,"%2B","+")
tihuan=replace(tihuan,"%2F","/")
end if
end function
%>
<%filepath=request.servervariables("script_name")%>
接受URL中的值(沒有處理接受值,發現值被解釋了): <%=request.querystring("cnbruce")%>


你可以輸入“
”等代碼看看:

接受URL中的值(進行了urlencode編碼,不會執行): <%=tihuan(Server.URLEncode(request.querystring("cnbruce")))%>
  其實上面做的都是無用功,真正應該是在發送之前就該處理下的,不過對學習該方法的舉例確是個好方法:)

  四、Server.MapPath

  相信看過我寫的《DW2ASP系列》的朋友,都卡在這個上了。DW畢竟是入門的好東西,但要系統學ASP編程,對這個就該好好認識了解下。
  MapPath方法,具體的就是將指定的相對或虛擬路徑,映射到服務器上相應的物理目錄上。
  用法,也就是語法了,如下:

Server.MapPath(Path)
  Path 指定要映射物理目錄的相對或虛擬路徑。若 Path 以一個正斜杠 (/) 或反斜杠 (\) 開始,則 MapPath 方法返回路徑時將 Path 視為完整的虛擬路徑。若 Path 不是以斜杠開始,則 MapPath 方法返回同本文件中已有的路徑相對的路徑。這里需要注意的是 MapPath 方法不檢查返回的路徑是否正確或在服務器上是否存在。
  當然這可以和Request.ServerVariables連起來使用看看。

  5.mappath.asp



Request.ServerVariables("APPL_PHYSICAL_PATH") : <%=Request.ServerVariables("APPL_PHYSICAL_PATH")%>


Request.ServerVariables("PATH_INFO") : <%=Request.ServerVariables("PATH_INFO")%>


Request.ServerVariables("SCRIPT_NAME") : <%=Request.ServerVariables("SCRIPT_NAME")%>


Request.ServerVariables("URL") : <%=Request.ServerVariables("URL")%>


Request.ServerVariables("PATH_TRANSLATED") : <%=Request.ServerVariables("PATH_TRANSLATED")%>



上面都是通過ServerVariables提取得出的值,下面就來運用mapath把一個虛擬地址轉變為實際的物理地址。


Server.MapPath(Request.ServerVariables("URL")) :<%=Server.MapPath(Request.ServerVariables("URL"))%>


或者自己隨便寫個不存在的路徑,同樣能夠執行


Server.MapPath("cnbruce.asp") : <%=Server.MapPath("cnbruce.asp")%>


再來個“/”的


Server.MapPath("/cnbruce.asp") : <%=Server.MapPath("/cnbruce.asp")%>

Server.MapPath("\cnbruce.asp") : <%=Server.MapPath("\cnbruce.asp")%>


你會發現物理地址轉變到IIS默認根目錄下面了。
這就是如6to23之類的站點mappath的問題所在。還是虛擬主機好,即使是根,也還是自己站點的默認存放節點根。

  測試我的地址http://www.cnbruce.com/server.asp
  注意測試的地址和根目錄下的地址,對應的是同一文件夾(這就是虛擬主機),6to23之類是不會相同的。

  有此些了解,對路徑的處理應該要好多了,再返回我的站點,看看我對數據庫的mappath路徑的處理方法,相信又是一個理解層次了。
  數據庫的mappath路徑的處理方法在:
  www.cnbruce.com/blog/showlog.asp?cat_id=27&log_id=241

  五、Server.CreatObject
  Server.CreateObject 這個方法恐怕是 ASP 中最為實用,也是最強勁的功能了。它可用于創建已經注冊到服務器上的 ActiveX 組件實例。這是一個非常重要的特性,因為通過使用 ActiveX 組件能夠使你輕松地擴展 ActiveX 的能力,正是使用了 ActiveX 組件,你可以實現至關重要的功能,譬如數據庫連接、文件訪問、廣告顯示和其他 VBScript 不能提供或不能簡單地依靠單獨使用 ActiveX 所能完成的功能。也正是因為這些組件才使得 ASP 具有了強大的生命力。
  不過,在我們沒有談及連接數據庫之前,這個先空著,“要得好,到臨了”:)等我們接觸到數據庫連接的時候再說不遲。

  今天就主要把Server對象學習了下,感覺好象是每個都有用的,重要啊。
  還有,需要說明的,如果您從本處轉載,發現和本源件有差錯,比如代碼、 < 、="">等等,根本就是被執行了的。都說明您的站點存在著這些問題。



溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 芜湖县| 普陀区| 南和县| 林西县| 嘉峪关市| 满城县| 凭祥市| 舞阳县| 那曲县| 淳化县| 溧水县| 广宗县| 大名县| 宜章县| 延寿县| 蓬溪县| 体育| 织金县| 中宁县| 平潭县| 海丰县| 海兴县| 益阳市| 芷江| 炎陵县| 华阴市| 隆化县| 文水县| 都安| 介休市| 凉城县| 山阴县| 会宁县| 克什克腾旗| 水城县| 自治县| 内乡县| 页游| 汉源县| 久治县| 水城县|