Active Server Pages 簡介(1)
靜態的站點內容
目前Internet 上的許多站點,仍然提供“靜態”(static)的主頁內容。所謂“靜態”,指的就是站點的主頁內容是“固定不變”的。
當瀏覽器通過Internet 的HTTP (Hypertext Transport Protocol)協議,向站點服務器(Web Server)要求提供主頁的內容時,站點服務器收到要求後,就傳送願已設計好的靜態的HTML 的文件數據給瀏覽器。
壹個“靜態”的站點,若要更新主頁的內容,必須手動的來更新其HTML的文件數據。
動態的站點內容
當在瀏覽器上填好表格(form)的輸入數據,以提供HTTP要求時,可以在站點服務器中執行的應用程序,而不只是壹個HTML 文件。站點服務器收到要求執行的應用程序,分析表格(form)的輸入數據,將執行的結果以HTML的格式傳送給瀏覽器。
ACTIVE SERVER PAGES
Active server pags (動態服務器主頁,簡稱ASP),內含於Internet Information
Server(IIS)當中,提供壹個服務器端(server-side)的scripting環境,讓妳產生和執行動態,交互式,高效率的站點服務器的應用程序。
妳不必擔心瀏覽器是否能執行妳設計出來的Active Server Pages,妳的站點服務器會自動將Active Server Pages 的程序碼,解釋為標準HTML格式的主頁內容,在送到用戶端的瀏覽器上顯示出來。用戶端只要使用常規可執行HTML碼的瀏覽器,即可瀏覽Active Server Pages所設計的主頁內容。
Active Server Pages 的特點是:
壹:無須Compile編譯:容易產生,無須Compile 編譯或Link 鏈接即可執行。
二:使用常規文本編輯器,如Windows的記事本,即可設計。
三:與瀏覽器無關(Browser Independence):用戶端只要使用常規的可執行HTML瑪的瀏覽器,即可瀏覽Active Server Pages 所設計的主頁內容,
Script 語言(Vbscript ,Jscript)是在站點服務器(Server端)執行,用戶不需要執行這些Script語言。
四:面向對象(Object_Orient).
五: 可通過ActiveX Server components(ActiveX服務器組件)來擴充功能。
ActiveX Server component,可使用Visual Basic,Java,Visual C++,COBOL等語言來實現。
六:Active Server Pages與任何AcTiveX scripting 語言兼容。除了可使用VBscript 或JScript語言來設計,並可通過Plug-in的方式,使用由third party所提供的其他譬如REXX,perl,Tcl 等scripting語言。script引擎是處理script的COM(Component Object Model)對象。
七:Active server Pages的源程序代碼,不會傳到用戶的瀏覽器,因此可以保護辛辛苦苦寫出來的源程序不會外瀉。傳到用戶瀏覽器的是Active Server Pages執行的結果的常規HTML碼。
八:使用server端script產生client端script,妳可以使用ASP程序碼,在站點服務器執行script語言(VBscript 或 Jscript),來產生或更改在client端執行的script語言。
Active Server Pages 簡介(2)
ASP對象
Active Server Pages提供五個內置的“對象”(object),妳可以直接調用:
壹:Request:取得用戶信息。
二:Response:傳送信息給用戶。
三:Server:提供訪問服務器的方法(methods)和屬性(properties)的功能。
四:Applicatin:壹個應用程序,可以在多個主頁之間保留和使用壹些***同的信息。
五:Session:壹個用戶,可以在多個主頁之間保留和使用壹些***同的信息。
在多個主頁之間***享信息
ASP開發的應用程序,可以在多個主頁之間保留和使用壹些***同的信息,ASP提供兩種適用範圍,如下:
壹:Application:Application 的所有信息,在壹個應用程序,多個主頁之間,
可以讓所有的用戶***同使用。
二:Session:Session的所有信息,僅適用於壹個用戶。
Active Server Pages 簡介(3)
.asp文件
Active Server Pages(ASP)制作成.ASP擴展名的文件,壹個.asp文件是壹個
文本文件,包括:
1.HTML標記(tags)
2.VBscript 或Jscript語言的程序碼
3.ASP語法
ASP語法
ASP並不是壹個script語言,而是提供壹個可以集成script語言(VBscript 或 Jscript)到HTML主頁的環境。
HTML標記(tags)使用“<...>”將HTML程序碼包含起來,以與常規的文本區分開來;而ASP使用“<%...%>”將ASP的script程序碼包含起來。
範例:asp1.asp
顯示現在的日期時間
譬如站點服務器asp1.asp文件:
現在是:<%=now%>
再用戶端顯示:
現在是:1998/5/17 皮棉3:11:20
讓我們再看壹個例子。
範例:asp2.asp
重復循環
這個ASP例子,在用戶端瀏覽器,瀏覽執行的結果如下,顯示五個重復的句子,字體越來越大。
站點服務器asp2.asp文件的ASP源代碼如下:
<%for i = 1 to 5 %>
<font size= <% = i %>
color=#0000ff>快速掌握Internet技術
</font><br>
<%next%>
Active Server Pages的源代碼,不會傳到用戶的瀏覽器,可以保護妳寫的源程序不會外漏。因此,在用戶端觀看到的是常規的HTML碼,妳的站點服務器會自動將Active Server pages的 程序代碼,解釋為標準的HTML格式的主頁內容,如下:
<font size=1 color=#0000ff>快速掌握Internet技術
</font><br>
<font size=2 color=#0000ff>快速掌握Internet技術
</font><br>
<font size=3 color=#0000ff>快速掌握Internet技術
</font><br>
<font size=4 color=#0000ff>快速掌握Internet技術
</font><br>
<font size=5 color=#0000ff>快速掌握Internet技術
</font><br>
傳送字符串到用戶端的瀏覽器
Response.write方法,是最常用的傳送字符串到瀏覽器的方法。語法如下:
Response.write 字符串
以下的例子向用戶打招呼:
<%
Response.write "歡迎光臨"
%>
也可以用如下方法:
<%...%>
歡迎光臨
<%...%>
鏈接到指定的URL地址
使用Response.redirect方法,可以連接到指定的URL地址。語法如下:
Response.redirect URL
譬如,自動連接到首頁:
<%
Response.Redirect "homepage.asp"
%>
須註意壹點,若此.asp主頁的內容已傳送給用戶,在使用Response.redirect
,將發生錯誤!
Active Server Pages 簡介(4)
ASP Script語法
使用VBscript或Jscript的ASP語法
ASP與任何ActiveX SCripting語言兼容。除了可使用VBscript或Jscript語言來設計,還可以通過plug-in的方式,使用由third party所提供的其他譬如REXX ,Perl, Tcl等scripting語言
<script>標記
ASP默認的script語言vbscript,若要設定某壹段ASP程序代碼使用的script語言,可以使用"<script runat=server langrage=...>...</script>"加以設定,譬如ASP程序碼使用Jscript語言:
<html>
<body>
<%call 函數1%>
</body>
</html>
<script runat=server langrage=Jscript>
function 函數1()
{
Response.write "叫到我了";
}
</script>
設定某壹主頁的script語言使用"<%@ language = ...%>"加以設定,語法如下:
<% @ language = VBscript %>
註意:@和LANGUAGE之間壹定要有空格。
壹個主頁使用多種語言
妳可以在壹個主頁當中使用VBscript和jscript語言。方法如下:
壹:使用多個"<script runat=server language=...%>...</script>"加以設定。
二:使用多個"#include"的語法。
#INCLUDE包含其他文件
妳可以在ASP程序碼中插入另外壹個"被包括"的文件,執行到此時,先執行"被包括"文件,再繼續執行下去。語法如下:
<!--#include virtual|file="filename"-->
其中virtual代表虛擬的文件地址,FILE代表絕對的文件地址,如下:
<!--#include virtual="/booksamp/test.inc"-->
<!--#include file="test/test.inc"-->
被包括的#include文件,也可在包含其他的"被包括"文件。
不能使用ASP程序碼來設定"被包括"的#INCLUDE文件。如下的#INCLUDE文件將無法正確的執行:
<%name=(test & ".inc"%>
<!--#include file="<%=name%>"-->
#INCLUDE 不能置於<%...%>當中。如下的#INCLUDE文件將無法正確的執行:
<%
for i=1 to n
...
<! -- #include file="test.inc"-->
next
%>
將#include置於<%...%>外即可。如下的#include文件可正確的執行:
<%
for i=1 to n
...
%>
<!--#include file="test.inc"-->
<%next%>
Active Server Pages 簡介(5)
表格的處理
表格(form)
將輸入的數據傳送到服務器的方法,是使用HTML標記<form>...</form>的表格,在用戶端瀏覽器輸入數據,點擊"submit"按鈕後,將輸入的數據傳送到服務器加以處理。表格的語法如下:
<form action=url method=get|post name="formname" onreset=event onsubmit=event target=window>
</form>
·action:處理輸入的數據的站點服務器程序的url地址。
·method:輸入的數據傳送到服務器的方式,如下:
get:將輸入的數據加在action設定的url地址後面,傳送到服務器
post:按照,字段Name的輸入數據為jack,字段age的輸入數據為15,則使用的get方法,傳給站點服務器的數據為?Name=jack&age=15.
2:post:用戶端利用ponent---Database
Access component(數據訪問組件),使用ActiveX Data Object
(ActiveX數據對象,簡稱ADO)的技術,讓妳可以與Active Server pages(簡稱ASP)
結合,以提供訪問數據庫的功能。\
ActiveX Data Object ( 數據庫訪問組件,簡稱ADO)是什麼東西呢?Active Data Object的技術,讓妳可以與Active Server Pages結合,以建立提供數據庫信息的主頁內容,在主頁畫面執行Structured Query Language(結構化查詢語言,簡稱SQL) 命令,讓用戶在瀏覽器畫面中輸入,更新和刪除站點服務器的數據庫信息。
ADO使用RecordSets對象,作為數據的主要接口。
ADO可使用Vbscript,JavaScript語言來控制數據庫的訪問,與查詢結果的輸出顯示畫面。
ADO可連接多種的數據庫,包括SQL Server,Oracle,Informix等支持ODBC的數據庫。
ADO執行環境
在服務器端所需要的ADO執行環境如下:
1:windows NT server.
2:安裝Internet Information Server(IIS)3.0(含)以上版本.
在用戶端所需要的ADO執行環境,只需要壹般的瀏覽器即可.
Active Server Pages 簡介(8)
數據庫數據來源設定
若要訪問NT站點的數據庫,須於"控制臺"中的"odbc"建立數據庫名稱(用戶數據來源名稱),數據庫所用的驅動程序和數據庫文件等.
新建數據庫來源的步驟
執行"設定"的"控制臺"中的"odbc",選擇"用戶數據來源名稱",點擊"添加"按鈕,選定數據庫所用的驅動程序,如為Access數據庫,選定"Microsoft Access Driver",點擊"完成"按鈕.
在odbc設定中,在"數據來源名稱"輸入數據庫名稱,以便以後在程序中調用稱呼,點擊"選定按鈕,選擇數據庫文件,然後點擊"確定"按鈕即可.
ADO數據庫設計要領
只要幾個步驟,就可以應用 Active Data Object (ActiveX 數據對象,簡稱ADO)的技術,在站點服務器執行訪問查詢數據庫的動作.
第壹步:
ADO數據庫設計要領的第壹步,就是使用"Server.createobject"建立連接的對象,並使用"Open"打開待訪問查詢的數據庫,如下
set conn = server.createobject("adodb.connection")
conn.open "數據庫名稱"
數據庫名稱即為在"ODBC"設定的"數據來源名稱".
第二步
第二步設定SQL命令,使用"Execute"命令,即可開始執行訪問查詢數據庫的動作.如下:
其中conn為第壹步所設定的名稱:
set rs = conn.execute(SQ)命令
第三步
第三步,使用如下recordsets對象的命令,顯示查詢的結果,其中rs為第二步所定義的名稱:
.rs.fields.count:recourds的字段數.
.rs(i).name:第i(指針)個字段名,i由0算起到rs.fields.count-1.
.rs(i):讀取第i(指針)個字段的記錄,i由0算起到rs.fields.count-1.
.rs("字段名"):讀取指定的字段的記錄.
.rs.eof:是(true)否(false)已指定最末筆.
.rs.movenext:將指針移到下壹筆.
.rs.moveprev:將指針移到上壹筆.
.rs.movefirst:將指針移到第壹筆.
.rs.movelast:將指針移到最末筆.
.rs.getrows:將查詢結果存於數組當中,如v = rs.getgows(100),再讀取數組v(col,row)的值即為查詢的記錄.
.rs.properties.count:得到ADO的Connection 或Resultset的屬性總數.
.rs.properties(item).name:得到ADO的Connection 或 resultset的屬性名稱
.rs.properties(item):得到ADO的Connection 或Resultset的屬性值.
最後,在顯示後使用如下的命令,關閉數據庫:
rs.close
conn.close
譬如,將查詢結果顯示於壹個表格的程序碼如下:
<table border=1>
<tr>
<%for i=0 to rs.fields.count-1 %>
<td><b><%=rs(i).name%></b></td>
<%next%>
</tr>
<%do while not rs.eof%>
<tr>
<%for i=0 to rs.fields.count-1%>
<td valign=top><%=rs(i)%></td>
<%next%>
</tr>
<%
rs.movetext
loop
rs.close
conn.close
%>
</table>
Active Server Pages 簡介(9)
查詢數據
若要查詢數據庫的數據,則使用select的sql命令.
select的基本語法如下:
select 字段名#1,字段名#2,...
from 數據表名#1,數據表名#2,...
where 條件表達式
order by 字段名#1,字段名#2,...
.select:所接的字段明為待查詢的字段,各字段名之間以逗號隔開.
.from:所接的數據表名稱為待查詢的數據庫數據表名稱,各數據表名之間以逗號隔開.
.where:所接的條件表達式為設定的查詢條件表達式.
.order by:所接的字段名為排序的字段,將查詢的數據加以排序.
指定多個字段時,先以字段名#1排序,若數據相同在按字段#2排序,...,各字段之間以逗號隔開.
更改數據庫數據
若要更改數據庫的記錄,既在數據庫中增加,更新,刪除記錄等,則可使用insert, update, delete的sql命令
......