ASP初學者參考
ASP初學者參考 |
常見縮略詞全寫及中文含義 WWW----World Wide Web(萬維網) URL----Uniform Resource Locator(統一資源定位符) HTTP----Hyper Text Transfer Protocol(超文本傳輸協議) HTML----Hyper Text Markup Language(超文本標記語言) XML----Extensible Markup Language(可擴展標記語言) ODBC----Open DataBase Connectivity(開放數據庫連接標準) DLL----Dynamic Link Library(動態鏈接庫) DAO----Data Access Objects(數據連接對象) RDO----Remote Data Objects(遠程數據對象) ADO----Microsoft ActiveX Data Objects(動態數據對象) SQL----Structured Query Language(結構化查詢語言) CGI----Common Gateway Interface(公共網關接口) API----Application Programming Interface(應用程序編程接口) ASP----Active Server Pages(動態服務頁面) PHP----Personal HomePage(個人主頁) JSP----Java Server Pages ColdFusion SSI----Server-Side Include(服務器端包含) DOM----Document Object Model(文檔對象模型) IIS----Internet Information Server(網絡信息服務) IP----Internet Protocol(網際協議) TCP----Transmission Control Protocol(傳輸控制協議) IE----Internet Explorer(瀏覽器) CSS----Cascading Style Sheet(層疊式樣式表) VBScript----Microsoft Visual Basic Script Edition ISDN----綜合業務數字網 Web FTP SMTP MMC----管理控制臺 網頁設計前述 Web(萬維網)提供了一個圖形化用戶界面,一瀏覽Internet上的文檔,這些文檔以及它們之間的鏈接構成了一個龐大的信息網。 Web起源于1989年3月,是由歐洲量子物理實驗室CERN(the Ruropean Laboratory for Particle Physics)開發的主從結構分布超媒體系統。 Web是信息資源的海洋,三個要素保證了人們能夠方便地在這海洋中遨游: l 統一的資源命名方案(URL) l 訪問某一資源的方式,即協議(HTTP) l 在資源之間自由訪問的方法,即超文本(HTTP) Internet發展到現在,Web技術經歷了3個發展階段: l 第一代,提供對靜態文檔(信息)的管理和訪問(顯示) l 第二代,與數據庫系統相結合,提供對動態文檔(信息)的訪問和顯示 l 第三代,除動態文檔生成和訪問之外,還提供基于Web的聯機事務處理能力。 靜態網頁存在的不足: 1. 無法支持后臺數據庫 2. 無法有效的對站點信息進行及時的更新 3. 無法實現動態顯示效果 ASP是Microsoft公司在1996年底推出的一種運行于服務器端的Web應用程序開發技術。ASP既不是一種語言,也不是一種開發工具,而是一種內含于IIS/PWS之中的易學易用,可以集成Script語言到HTML主頁的服務器端的腳本語言環境,其主要功能是為生成動態的,交互的Web服務器應用程序提供一種功能強大的方式和技術。 ASP的特點如下: 1. ASP可以混用HTML,DHTML,Java小程序,ActiveX,VBScript,JavaScript,并且可以互相嵌套。 2. 不需編譯,純文本格式。 3. 安全性好 4. 面向對象 5. 可擴充服務器端功能 6. 可擴充腳本語言 7. 與瀏覽器無關 8. ASP提供6個內置的全局對象供開發者不需聲明就可直接調用 9. ASP提供5個重要的服務器組件 訪問HTML頁面的過程: 1. 在客戶端瀏覽器地址欄處輸入HTML文件的URL地址,按回車鍵發送一個網頁請求 2. 瀏覽器發送網頁請求到IIS/PWS服務器 3. IIS/PWS服務器接收到請求,通過擴展名.htm或.html判斷是HTML文件的請求 4. IIS/PWS服務器將對應的HTML文件從磁盤或存儲器中取出并送回瀏覽器 5. HTML文件由用戶的瀏覽器解釋,結果在瀏覽器的窗口顯示 訪問ASP網頁的過程: 1. 在客戶端瀏覽器的地址欄輸入要請求的ASP文件的URL地址,按回車鍵發送一個ASP請求 2. 瀏覽器向IIS/PWS服務器發送ASP網頁請求 3. IIS/PWS服務器收到請求并根據擴展名.asp識別出ASP文件 4. IIS/PWS服務器從磁盤或內存中獲取相應的ASP文件 5. IIS/PWS服務器將ASP文件發送到一個類似于發動機引擎的名為asp.dll的特定文件庫中 6. asp.dll引擎將ASP文件從頭至尾進行解釋處理,并根據ASP文件中的命令要求生成相應的動態HTML頁面 7. HTML頁面被送回客戶端瀏覽器 8. 用客戶端瀏覽器解釋執行HTML網頁,并將結果顯示在客戶端瀏覽器上 與HTML相比,ASP具有3個重要特征: 1. ASP可以包含服務器端腳本語言,即可以用動態內容創建網頁 2. ASP使用內置對象可以使腳本功能更強大 3. ASP使用組件使用戶可以處理數據庫,發送email或訪問文件系統等 ASP提供的6個內置對象: 1. Response:發送信息到瀏覽器 2. Request:用來讀取來自瀏覽器的請求信息,可用該對象讀取HTML表單的信息 3. Server:允許用腳本來生成Active Server組件的實例 4. Application:用來存儲,讀取用戶共享的應用程序信息,如可以用該對象在網站的不同連接者之間傳遞共用信息 5. Session:用來存儲,讀取特定連接者的對話信息,如可以存儲連接者對網站的訪問信息 6. ObjectContext:用于控制ASP的交易(Transaction),交易由Microsoft Transaction Server(MTS)管理 ASP提供的5個重要組件 1. ADO:用于在Microsoft SQL Server,Microsoft Access數據庫中讀取或存儲數據 2. File System:提供可用來訪問計算機文件系統的方法和屬性 3. Content Linking:根據不同瀏覽器的性能顯示不同的HTML內容 4. Browser Capabilities:用來鏈接不同的HTML頁面使其操作更簡單 5. AD Rotator:用于在網頁上顯示橫幅廣告,并可控制不同廣告的顯示頻率 ASP基本知識 ASP文件的擴展名為.asp,其中可以包括HTML標記,文本和腳本語言,其腳本語言代碼包含于”<%……%>”之間。 在VBScript中:注釋可以是Rem,’等 <% Option Explicit %>表示VBScript中的變量都要聲明后才可使用,否則會出錯。 文件包含:<!--#include file=”myfirstinc.inc”--> <!--#include file=”myfirstasp.asp”--> <!--#include file=”myfirsttxt.txt”--> 認識VBScript腳本的基本用法: 1. 運算符 2. 數據類型 3. 常量,變量及數組 4. 條件語句(if….then end if, if….then….Else end if) 5. 循環語句(for….next, for each….next, do while…..loop) 6. 過程 7. 基本函數:分為數學類,字符串類,日期時間類,類型轉換類,格式化類和判斷類。 a) 數學類:abs(), sqr(),rnd(隨機數),round(四舍五入)… b) 字符串類:len(),left(),right(),mid(),strReverse(),split(),trim() c) 日期時間類:DateValue(),TimeValue(),Year(),Month,Day(),Hour(),Minute(),Second(),DateSerial(),TimeSerial(),Date(),Time(),Now(),DatePart(),DateAdd(),DateDiff()… d) 類型轉換類:Cdate(),Cint(),Clng(),Cstr(),str(),Val(),Int(),Fix() e) 格式化類:FormatDateTime,FormatNumber,FormatPercent…. f) 判斷類:IsDate,IsEmpty,IsNull,IsNumeric,IsObject… g) 信息對話框函數:InputBox,MsgBox… ASP內置對象說明: Response: 語法格式:Response.集合|屬性|方法(變量) Response的屬性有:Buffer,Charset,ContentType,Expires,ExpiresAbsolute,Status. Response的方法有:AddHeader,AppendTolog,BinaryWrite,Clear,End,Flush,Redirect,Write Response的集合:Cookie. Request: 語法格式: Request.集合(變量) 集合:Form,QueryString,ServerVariable,Cookie,ClientCertificate 1. Form:語法格式:Request.form(element)[(index).count].<%=request.form.count%>表單個數。<%=request.form(“name”)%> 2. QueryString:語法格式:Request.QueryString(variable)[(index)|.count] 3. ServerVariable:語法格式:Request.ServerVariable(服務器環境變量) 4. Cookie:語法格式:Request.Cookies(Cookie名)[(key)|.attribute] 使用Cookies集合: Response.Cookies(CookieName)[(key)|.attribute]=CookieValue Request.Cookies(CookieName)[(key)|.attribute] Application: 語法格式:Application.屬性|方法|事件|集合 Application的方法:Lock(),UnLock() Application的事件:Application_OnStart,Application_OnEnd Application的集合:Contents,StaticObjects Application的屬性:Application(“變量名”)=變量名 或 Set Application(“對象實例名”)=對象 其實是定義全局變量,供多個用戶使用。 實例名(反過來是還原) Session: 語法格式:Session.方法|事件|集合|屬性 Session方法:Abandon()用于清除Session對象<% Session.Abandon %> Session事件:Session_OnStart,Session_OnEnd Session集合:Contents,StaticObjects Session屬性:SessionID,Timeout 用戶也可以自定義Session屬性,其實是變量,就是我們前面說的會話變量。 Session(“VariableName”)=VariableName Set Session(“ObjectName”)=ObjectName(反過來就是還原變量) 網頁變量的生命周期與傳遞 全局變量,會話變量,網頁變量 用Request.QueryString集合在網頁間傳遞變量 用ASP的Application或Session對象在網頁間傳遞變量。 Session和Application的比較: 1. 兩者都允許用戶自定義屬性,即定義Application變量和Session變量。 2. 兩者都可以用于存取對象中的變量及對象實例 3. 兩者都有生命周期。Session開始于新連接者第一次連接時,終止于連接者若干時間內沒有索取過任何信息;Application開始于IIS/PWS開始執行且出現第一個連接者的時候,終止于若干時間內沒有任何連接者索取過信息,或IIS/PWS關閉時。 4. 兩者都是ASP文件共用的對象。Application對象是所有網頁連接者共用的一個對象,Session對象是每位連接者獨有的對象。 5. 兩者都有OnStart和OnEnd事件代碼,但它們發生的時間不同。當一個Application應用程序與一個Session應用程序同時啟動時,ASP會先執行Application_OnStart,接著才執行Session_OnStart;若在結束一個Session的同時結束Application應用程序,則會先執行Session_OnEnd,然后才執行Application_OnEnd. Global.asa文件與應用程序的初始化: Global.asa文件: 網站計數器或統計在線人數等 Server對象、ODBC與ADO組件: Server語法格式:Server.屬性|方法 Server屬性:ScriptTimeout Server方法:CreateObject,HTMLEncode,URLEncode,MapPath Server的CreateObject方法是ASP中最實用,最強大的功能,它可以創建已注冊到服務器上的ActiveX組件實例,是建立ActiveX對象的源頭。 Server.CreateObject(“組件名或組件注冊名”) Set Myconn=Server.CreateObject(“ADODB.connection”)連接對象實例 Set MyAds=Server.CreateObject(“MSWC.AdRotator”)廣告對象實例 ODBC:是連接數據庫的通用接口,是由Microsoft公司開發并倡導的數據庫連接標準。 ADO:是ASP服務器內置組件及實現Web數據庫操作的一個十分重要的組件。 ADO組件是一個功能強大的組件,由7個接口組件組成,分別如下: 1. Connection組件 2. Recordset組件 3. Command組件 4. Parameter對象 5. Porperty對象 6. Error對象 7. Field對象 其中前三個組件需要使用Server.CreateObject方法來建立后才能使用。 Connection:語法格式:Set Connection對象名=Server.CreateObject(“ADODB.Connection”) 如:Set conn=Server.CreateObject(“ADODB.Connection”) Connection對象的方法: 1. Open格式:Connection對象名.Open “連接數據庫信息字符串”[;用戶帳號][;用戶密碼]。該方法用于打開一個數據庫并與其建立連接。有兩種方法: a) 用DSN方法打開數據庫:該方法先用ODBC建立對應數據庫的數據源名(DSN),然后通過數據源名打開對應數據庫。如下代碼就可以打開數據源名qhbook所對應的數據庫book.mdb。<% Set Conn=Server.CreateObject(“ADODB.Connection”) Conn.Open”qhbook;mydata;zhxing”%> b) 用全路徑DSN方法打開數據庫。如果在連接數據庫前沒有建立ODBC數據源,也可以采用直接指定ODBC驅動程序名稱的方法建立與數據庫的連接。此時的“連接數據庫信息字符串”必須以driver開始,變為”Driver={ODBC驅動程序名};dbq=”&Server.MapPath(“數據庫名”).如下: <% Set Conn=Server.CreateObject(“ADODB.Connection”) Conn.Open”Driver={Microsoft Access Driver(*.mdb)};dbq=”&Server.MapPath(“book.mdb”) %> 如果是SQL Server類型,則驅動程序是Driver={SQL Server};如果是Oracle類型,則:Driver={Microsoft ODBC for Oracle}. 2. Close:關閉一個已經建立的連接對象及其相關對象。<% Conn.Close%><%Set Conn=nothing%> 3. Execute: 格式一:Connection對象名.Execute(SQL指令). 格式二:Connection對象名.Execute(數據表名)。 如下: <% SQL=”Select * from bookitem” Set rs=Conn.Execute(SQL) %>或: <% Set rs=Conn.Execute(“bookitem”)%> 4. BeginTrans 5. CommitTrans 6. RollbackTrans Recordset組件: 前面的Conn.Open方法知識打開并連接了相應的數據庫,數據庫通常是由一個或多個表組成,所以要存取其中的數據表還必須建立Recordset對象后,才能對其進行各種操作。 1. 建立Recordset對象 方法由以下幾種: Set Recordset對象名=Server.CreateObject(“ADODB.Recordset”) Set Recordset對象名=Connection.Execute(“數據表名”) Set Recordset對象名=Connection.Execute(SQL指令) 如下代碼: <% Set Conn=Server.CreateObject(“ADODB.Connection”) Conn.Open”qhbook;mydata;zhxing” Set rs=Conn.Execute(“bookitem”) %>或 <% Set Conn=Server.CreateObject(“ADODB.Connection”) Conn.Open”Driver={Microsoft Access Driver(*.mdb)};dbq=”&Server.MapPath(“book.mdb”) Set rs=Server.CreateObject(“ADODB.Recordset”) Exec=Select * from bookitem Rs.Open Exec,Conn %> Recordset對象的方法: Open:格式一:rs.Open Exec,Conn,1,1(記錄集類型(0,1,2,3),鎖定類型(1,2,3,4)) 格式二:rs.Open bookitem,Conn,1,1 Recordset類型:0:只讀,當前數據記錄只能向下移動 1:只讀,當前數據記錄可以自由移動 2:可讀寫,當前數據記錄可以自由移動 3:可讀寫,當前數據記錄可以自由移動(注) 鎖定類型:1:默認值,用于打開只讀的數據記錄 2:悲觀鎖定 3:樂觀鎖定 4:批次樂觀鎖定 Close方法 <% rs.Close Set rs=nothing %> Recordset對象指針移動的方法: MoveFirst MoveLast MoveNext MovePrevious Move NumRecords,Start: Recordset對象的操作方法: Addnew:該方法可以向Recordset對象中添加一條記錄 Delete:刪除Recordset對象中的一條記錄 Update:更新Recordset對象的當前記錄 CancelUpdate:取消更新,在更新方法之后才有效 UpdateBatch:當鎖定類型是4時,該方法用于保存對一個或多個記錄的修改。 Recordset對象的屬性 AbsolutePage AbsolutePosition ActiveConncetion BOF EOF Bookmark CacheSize CursorLocation CursorType EditMode Filter LockType MaxRecords PageCount PageSize RecordCount State Source Field對象與集合 Field屬性: Name,Value,Type,…. Field方法:AppendChunk,GetChunk Field集合: 輸出數據表表頭: For I=0 to rs.fields.count-1 Response.write”<td>”&rs.fields(i).name&”</td>”(注釋:前面的有獲取表單元素個數的,和此差不多。Request.form.count) Next 輸出表中各個記錄的值: for I=0 to rs.fields.count-1 response.write”<td>”&rs.fields(i).value&”</td>” next 用ADO與SQL查詢數據庫 建立數據庫與數據源: 本例用Microsoft Access 2000建立一個圖書管理數據庫,數據庫名為book.mdb,其中的數據表是bookitem,只有一個表。 bookitem表的結構: book_id(編號):長整形,主鍵 book_name,book_author,book_price(貨幣),book_press,book_date(日期) 建立此數據庫的DSN,取名qhbook,帳號和密碼為:internet 用Select選取所有記錄: 格式:Select [Top N] 字段列表 From 數據表名(*表示所有字段,多字段用,隔開) 1. Select * from bookitem 2. Select book_name,book_author,book_price from bookitem 3. Select * from bookitem where book_name=’孤獨羊’ Select * from bookitem where book_name like ‘%原理%’(通配符%和_,其中%代表任意多個,_代表一個。) Select * from bookitem where book_price between 20.00 and 23.00 Select * from bookitem where book_price>=20.00 and book_price<=23.00 Select * from bookitem where book_price between 12.00 and 20.00 and book_name like ‘%系統%’ Select * from bookitem where book_date>=#2000/3/1# and book_name like’%原理%’ Where后的條件表達式可以用邏輯、比較、like,between…and,in/not,in,isNull/Is not Null等運算符來構成各種篩選。 Select [Top N] 字段列表 From 數據表名 Where 條件表達式 4. Select [Top N] 字段列表 From 數據表名 Where 條件表達式 Order By 字段列表[Desc]降序排列: Select * from bookitem Order By book_date Desc,book_price Desc Select * from bookitem Where book_date>=#2000/3/1# Order By book_name Select Top 4 * from bookitem where book_date>=#2000/3/1# 插入記錄: 格式一:Insert Into 數據表名[(字段名列表)] Values (字段值列表) 格式二:rs.Open SQL,conn,2,3 Addnew 為各字段賦值 Update(此法最常用,特別是和表單結合時,通過表單添加記錄) 如: Insert Into bookitem(book_name,book_author,book_price) Values (‘書名’,’作者’,’價格’) 刪除記錄: 格式一:Delete from 數據表名 Where 條件表達式(SQL語言的刪除) 格式二:rs.Open SQL,conn,2,3(記錄集的刪除方法) rs.MoveLast rs.Delete rs.Update(常用的一種方法) 如:Delete from bookitem where book_author=’寡人’ 修改記錄: rs.Open SQL,conn,3,3 rs.MoveLast rs(“book_author”)=”朕” rs.Update |