在ASP中使用指令碼語言

來源:互聯網
上載者:User

 指令碼語言介於HTML和Java,C++以及VisualBasic等程式設計語言之間。HTML通常用于格式化和鏈結文本。而程式設計語言通常用於向機器發出一系列複雜的指令。指令碼語言介於兩者之間但它的函數與程式設計語言更為相象一些。它與程式設計語言之間最大的區別是後者的文法和規則更為嚴格和複雜一些。

  在伺服器端使用指令碼語言,需要在伺服器端安裝指令碼引擎。指令碼引擎是用於處理指令碼的COM(元件物件模型)對象。ASP為指令碼引擎提供主機環境並把.asp檔案中的指令碼交給指令碼引擎處理。對於.asp檔案中使用的每種指令碼語言,都要將他們相應的指令碼引擎安裝在Web伺服器上。ASP中預設語言是VBScript,所以你不用擔心要去安裝VBScript的指令碼引擎,當你安裝完ActiveServerPages時,他就已存在了。使用JScript也不必有同樣的擔心。但是要使用一些不太常用的指令碼語言的話,可能需要安裝相應的指令碼引擎。

  ASP使Web開發人員可以用各種指令碼語言編寫程式而不用擔心瀏覽器是否支援。實際上,在一個.asp檔案中就可以使用多種指令碼語言,只要你在每段指令碼程式開始處用HTML標籤標明所用的指令碼語言。

  VBScript是預設的主指令碼語言。主指令碼語言用在定界符<%和%>之內,你可以在定界符之內使用任何有效VBScript命令,ASP會按VBScript處理這些命令。其實,你可以將任一種指令碼語言設為主指令碼語言。你可以不厭其煩的一頁一頁的設定,也可以將某一種指令碼語言設為你的Web伺服器上所有頁的主指令碼語言。如果你想在某一頁中將一種指令碼語言設為主角本語言,只要在.asp檔案開始處加上如下的命令就可以了。

  <%@LANGUAGE=ScriptingLanguage%>其中,ScriptingLanguage代表你想設定的主指令碼語言。如若你想將某一種指令碼語言設為你的Web伺服器上所有頁的主指令碼語言,你就需要動用功能強大的RegisterEditor(註冊編輯器,regedit.exe),ASP註冊參數的註冊路徑如下:
HKEY_LOCAL_MACHINE/SYSTEM
/CurrentControlSet
/Services
/W3SVC
/ASP
/Parameters
  其中,登錄機碼DefaultScriptLanguage的預設值是"VBScript",將其改為欲設定的指令碼語言即可。例如,若想將JScript設為主角本語言,則將登錄機碼DefaultScriptLanguage的值改為"JScript"就行了。在同一個.asp檔案中混合使用不同的指令碼語言是ASP迷人的特色之一。這樣,你就可以發揮各種不同的指令碼語言在不同方面的優勢。你可以用不同的指令碼語言編寫不同的指令碼程式來完成不同的工作。

  指令碼程式實際上就是一組執行特定任務的指令碼命令。如果你經常要執行某一組特定任務,你就可以將之定義成程式,然後重複調用。程式要按特定的指令碼語言的規則寫在標籤<SCRIPT>和</SCRIPT>之間。當然,如果你用主指令碼語言寫程式的話,寫在定界符<%和%>之間也可以。如果你的程式只在某一頁內調用的話,把它放在這一頁內就行了,如果你在多頁中都要調用某些程式的話,你可以把這些程式放在一個單獨的.asp檔案中,然後在每個要調用這些程式的.asp頁中將那個.asp檔案包含進來。
要在.asp頁中包含其他檔案,使用以下的文法:
<!--#INCLUDEVIRTUAL FILE="filename"-->
其中,filename是你要包含的檔案。關鍵字VIRTUAL和FILE任選其一,VIRTUAL表示要包含的檔案在一個虛擬目錄內(該目錄為Web共用目錄),FILE表示要包含的檔案在一個當前檔案相關目錄內。例示如下:假設你有兩個Web共用目錄Dir1和Dir2,目錄Dir1內有檔案file11.asp和file12.asp,目錄Dir2下有檔案file2,若要在檔案file11.asp中包含file2.asp,則將如下命令加入到檔案file11.asp中:

<!--INCLUDEVIRTUAL="Dir2/file2.asp"-->

若要在file11.asp中包含file12.asp,則將如下命令加入到檔案file11.asp中:

<!--INCLUDEFILE="file12.asp"-->

或者使用如下命令亦可:

<!--INCLUDEVIRTUAL="Dir1/file12.asp"-->

  程式寫好了,怎麼調用它哪?如果你用的指令碼語言是VBScript,只要一個簡單的關鍵字Call再加上程式名就可以了。如果你要調用的程式有參數,要把參數用括弧括起來。如果你省略關鍵字Call,括弧也要省略。下面例示了在同一ASP頁中用兩種不同的指令碼語言(VBScript和JScript)建立和調用程式。

<HTML>
<HEAD>
<TITLE>Usedifferentscriptinsamepage</TITLE>
</HEAD>
<BODYbgcolor="#FFFFFF">
<TABLE>
<%CallEcho%>
</TABLE>
<%CallPrintDate%>
</BODY>
</HTML>
<SCRIPTLANGUAGE=VBScriptRUNAT=Server>
SubEcho
Response.Write_
"<TR><TD>Name</TD><TD>Value</TD></TR>"
SetParams=Request.QueryString
ForEachpinParams
Response.Write"<TR><TD>"&p&"</TD><TD>"&_
Params(p)&"</TD></TR>"
Next
EndSub
</SCRIPT>
<SCRIPTLANGUAGE=JScriptRUNAT=Server>
functionPrintDate()
{
varx
x=newDate()
Response.Write(x.toString())
}
</SCRIPT>

  在伺服器端使用VBScript時,有兩個VBScript的特性不能使用。因為指令碼在伺服器端執行,VBScript中提供使用者介面的InputBox和MsgBox就不支援了。另外,VBScript的函數CreateObject和GetObject也不支援。
  因為所有的ASP指令碼都在伺服器端執行,就不需要象使用用戶端指令碼時那樣為不支援指令碼的瀏覽器用HTML注釋標記將指令碼隱藏起來。所有的指令碼命令都會在將內容送往瀏覽器之前處理。但你可以在指令碼命令之間或程式中使用注釋。象Basic一樣,在VBScript中有兩種形式的注釋可用:REM或單引號。如下例所示:

<%
REMThislineandthefollowinglinearecomments
'Printgreetingingreen
greeting="Howareyou!"
<fontcolor="GREEN"><%=greeting%>
%>
在JScript中注釋用"//",如下例所示:
<%CallPrintDate%>
<SCRIPTLANGUAGE=JScriptRUNAT=Server>
functionPrintDate()
{
varx
x=newDate()
Response.Write(x.getDate())
}
//ThisisadefinitionfortheprocedurePrintDate.
//Thisprocedurewillsendthecurrentdate
//totheclient-sidebrowser.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.