top
Loading...
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
北斗有巢氏 有巢氏北斗