明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

ASP入門者參考

[摘要]ASP初學者參考常見縮略詞全寫及中文含義WWW----World Wide Web(萬維網)URL----Uniform Resource Locator(統(tǒng)一資源定位符)HTTP----Hyper Text Transfer Protocol(超文本傳輸協(xié)議)HTML----Hyper Text...

ASP初學者參考常見縮略詞全寫及中文含義

WWW----World Wide Web(萬維網)
URL----Uniform Resource Locator(統(tǒng)一資源定位符)
HTTP----Hyper Text Transfer Protocol(超文本傳輸協(xié)議)
HTML----Hyper Text Markup Language(超文本標記語言)
XML----Extensible Markup Language(可擴展標記語言)
ODBC----Open DataBase Connectivity(開放數(shù)據(jù)庫連接標準)
DLL----Dynamic Link Library(動態(tài)鏈接庫)
DAO----Data Access Objects(數(shù)據(jù)連接對象)
RDO----Remote Data Objects(遠程數(shù)據(jù)對象)
ADO----Microsoft ActiveX Data Objects(動態(tài)數(shù)據(jù)對象)
SQL----Structured Query Language(結構化查詢語言)
CGI----Common Gateway Interface(公共網關接口)
API----Application Programming Interface(應用程序編程接口)
ASP----Active Server Pages(動態(tài)服務頁面)
PHP----Personal HomePage(個人主頁)
JSP----Java Server Pages
ColdFusion
SSI----Server-Side Include(服務器端包含)
DOM----Document Object Model(文檔對象模型)
IIS----Internet Information Server(網絡信息服務)
IP----Internet Protocol(網際協(xié)議)
TCP----Transmission Control Protocol(傳輸控制協(xié)議)
IE----Internet Explorer(瀏覽器)
CSS----Cascading Style Sheet(層疊式樣式表)
VBScript----Microsoft Visual Basic Script Edition
ISDN----綜合業(yè)務數(shù)字網
Web
FTP
SMTP
MMC----管理控制臺










網頁設計前述
Web(萬維網)提供了一個圖形化用戶界面,一瀏覽Internet上的文檔,這些文檔以及它們之間的鏈接構成了一個龐大的信息網。
Web起源于1989年3月,是由歐洲量子物理實驗室CERN(the Ruropean Laboratory for Particle Physics)開發(fā)的主從結構分布超媒體系統(tǒng)。
Web是信息資源的海洋,三個要素保證了人們能夠方便地在這海洋中遨游:
l  統(tǒng)一的資源命名方案(URL)
l  訪問某一資源的方式,即協(xié)議(HTTP)
l  在資源之間自由訪問的方法,即超文本(HTTP)
Internet發(fā)展到現(xiàn)在,Web技術經歷了3個發(fā)展階段:
l  第一代,提供對靜態(tài)文檔(信息)的管理和訪問(顯示)
l  第二代,與數(shù)據(jù)庫系統(tǒng)相結合,提供對動態(tài)文檔(信息)的訪問和顯示
l  第三代,除動態(tài)文檔生成和訪問之外,還提供基于Web的聯(lián)機事務處理能力。
靜態(tài)網頁存在的不足:
1.  無法支持后臺數(shù)據(jù)庫
2.  無法有效的對站點信息進行及時的更新
3.  無法實現(xiàn)動態(tài)顯示效果
ASP是Microsoft公司在1996年底推出的一種運行于服務器端的Web應用程序開發(fā)技術。ASP既不是一種語言,也不是一種開發(fā)工具,而是一種內含于IIS/PWS之中的易學易用,可以集成Script語言到HTML主頁的服務器端的腳本語言環(huán)境,其主要功能是為生成動態(tài)的,交互的Web服務器應用程序提供一種功能強大的方式和技術。
ASP的特點如下:
1.  ASP可以混用HTML,DHTML,Java小程序,ActiveX,VBScript,JavaScript,并且可以互相嵌套。
2.  不需編譯,純文本格式。
3.  安全性好
4.  面向對象
5.  可擴充服務器端功能
6.  可擴充腳本語言
7.  與瀏覽器無關
8.  ASP提供6個內置的全局對象供開發(fā)者不需聲明就可直接調用
9.  ASP提供5個重要的服務器組件
訪問HTML頁面的過程:
1.  在客戶端瀏覽器地址欄處輸入HTML文件的URL地址,按回車鍵發(fā)送一個網頁請求
2.  瀏覽器發(fā)送網頁請求到IIS/PWS服務器
3.  IIS/PWS服務器接收到請求,通過擴展名.htm或.html判斷是HTML文件的請求
4.  IIS/PWS服務器將對應的HTML文件從磁盤或存儲器中取出并送回瀏覽器
5.  HTML文件由用戶的瀏覽器解釋,結果在瀏覽器的窗口顯示
訪問ASP網頁的過程:
1.  在客戶端瀏覽器的地址欄輸入要請求的ASP文件的URL地址,按回車鍵發(fā)送一個ASP請求
2.  瀏覽器向IIS/PWS服務器發(fā)送ASP網頁請求
3.  IIS/PWS服務器收到請求并根據(jù)擴展名.asp識別出ASP文件
4.  IIS/PWS服務器從磁盤或內存中獲取相應的ASP文件
5.  IIS/PWS服務器將ASP文件發(fā)送到一個類似于發(fā)動機引擎的名為asp.dll的特定文件庫中
6.  asp.dll引擎將ASP文件從頭至尾進行解釋處理,并根據(jù)ASP文件中的命令要求生成相應的動態(tài)HTML頁面
7.  HTML頁面被送回客戶端瀏覽器
8.  用客戶端瀏覽器解釋執(zhí)行HTML網頁,并將結果顯示在客戶端瀏覽器上
與HTML相比,ASP具有3個重要特征:
1.  ASP可以包含服務器端腳本語言,即可以用動態(tài)內容創(chuàng)建網頁
2.  ASP使用內置對象可以使腳本功能更強大
3.  ASP使用組件使用戶可以處理數(shù)據(jù)庫,發(fā)送email或訪問文件系統(tǒng)等
ASP提供的6個內置對象:
1.  Response:發(fā)送信息到瀏覽器
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數(shù)據(jù)庫中讀取或存儲數(shù)據(jù)
2.  File System:提供可用來訪問計算機文件系統(tǒng)的方法和屬性
3.  Content Linking:根據(jù)不同瀏覽器的性能顯示不同的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.  數(shù)據(jù)類型
3.  常量,變量及數(shù)組
4.  條件語句(if….then  end if,  if….then….Else  end if)
5.  循環(huán)語句(for….next, for each….next,  do while…..loop)
6.  過程
7.  基本函數(shù):分為數(shù)學類,字符串類,日期時間類,類型轉換類,格式化類和判斷類。
a)  數(shù)學類:abs(), sqr(),rnd(隨機數(shù)),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)  信息對話框函數(shù):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%>表單個數(shù)。<%=request.form(“name”)%>
2.  QueryString:語法格式:Request.QueryString(variable)[(index) .count]
3.  ServerVariable:語法格式:Request.ServerVariable(服務器環(huán)境變量)
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開始執(zhí)行且出現(xiàn)第一個連接者的時候,終止于若干時間內沒有任何連接者索取過信息,或IIS/PWS關閉時。
4.  兩者都是ASP文件共用的對象。Application對象是所有網頁連接者共用的一個對象,Session對象是每位連接者獨有的對象。
5.  兩者都有OnStart和OnEnd事件代碼,但它們發(fā)生的時間不同。當一個Application應用程序與一個Session應用程序同時啟動時,ASP會先執(zhí)行Application_OnStart,接著才執(zhí)行Session_OnStart;若在結束一個Session的同時結束Application應用程序,則會先執(zhí)行Session_OnEnd,然后才執(zhí)行Application_OnEnd.
Global.asa文件與應用程序的初始化:
Global.asa文件:
網站計數(shù)器或統(tǒng)計在線人數(shù)等
Server對象、ODBC與ADO組件:
Server語法格式:Server.屬性 方法
Server屬性:ScriptTimeout
Server方法:CreateObject,HTMLEncode,URLEncode,MapPath
Server的CreateObject方法是ASP中最實用,最強大的功能,它可以創(chuàng)建已注冊到服務器上的ActiveX組件實例,是建立ActiveX對象的源頭。
Server.CreateObject(“組件名或組件注冊名”)
Set Myconn=Server.CreateObject(“ADODB.connection”)連接對象實例
Set MyAds=Server.CreateObject(“MSWC.AdRotator”)廣告對象實例
ODBC:是連接數(shù)據(jù)庫的通用接口,是由Microsoft公司開發(fā)并倡導的數(shù)據(jù)庫連接標準。
ADO:是ASP服務器內置組件及實現(xiàn)Web數(shù)據(jù)庫操作的一個十分重要的組件。
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 “連接數(shù)據(jù)庫信息字符串”[;用戶帳號][;用戶密碼]。該方法用于打開一個數(shù)據(jù)庫并與其建立連接。有兩種方法:
a)  用DSN方法打開數(shù)據(jù)庫:該方法先用ODBC建立對應數(shù)據(jù)庫的數(shù)據(jù)源名(DSN),然后通過數(shù)據(jù)源名打開對應數(shù)據(jù)庫。如下代碼就可以打開數(shù)據(jù)源名qhbook所對應的數(shù)據(jù)庫book.mdb。<% Set Conn=Server.CreateObject(“ADODB.Connection”) Conn.Open”qhbook;mydata;zhxing”%>
b)  用全路徑DSN方法打開數(shù)據(jù)庫。如果在連接數(shù)據(jù)庫前沒有建立ODBC數(shù)據(jù)源,也可以采用直接指定ODBC驅動程序名稱的方法建立與數(shù)據(jù)庫的連接。此時的“連接數(shù)據(jù)庫信息字符串”必須以driver開始,變?yōu)椤盌river={ODBC驅動程序名};dbq=”&Server.MapPath(“數(shù)據(jù)庫名”).如下:
<% 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(數(shù)據(jù)表名)。
如下:
<% SQL=”Select * from bookitem” Set rs=Conn.Execute(SQL) %>或:
<% Set rs=Conn.Execute(“bookitem”)%>
4.  BeginTrans
5.  CommitTrans
6.  RollbackTrans
Recordset組件:
前面的Conn.Open方法知識打開并連接了相應的數(shù)據(jù)庫,數(shù)據(jù)庫通常是由一個或多個表組成,所以要存取其中的數(shù)據(jù)表還必須建立Recordset對象后,才能對其進行各種操作。
1.  建立Recordset對象
方法由以下幾種:
Set Recordset對象名=Server.CreateObject(“ADODB.Recordset”)
Set Recordset對象名=Connection.Execute(“數(shù)據(jù)表名”)
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:只讀,當前數(shù)據(jù)記錄只能向下移動
1:只讀,當前數(shù)據(jù)記錄可以自由移動
  2:可讀寫,當前數(shù)據(jù)記錄可以自由移動
  3:可讀寫,當前數(shù)據(jù)記錄可以自由移動(注)
鎖定類型:1:默認值,用于打開只讀的數(shù)據(jù)記錄
          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集合:
輸出數(shù)據(jù)表表頭:
For I=0 to rs.fields.count-1
Response.write”<td>”&rs.fields(i).name&”</td>”(注釋:前面的有獲取表單元素個數(shù)的,和此差不多。Request.form.count)
Next
輸出表中各個記錄的值:
for I=0 to rs.fields.count-1
response.write”<td>”&rs.fields(i).value&”</td>”
next
用ADO與SQL查詢數(shù)據(jù)庫
建立數(shù)據(jù)庫與數(shù)據(jù)源:
本例用Microsoft Access 2000建立一個圖書管理數(shù)據(jù)庫,數(shù)據(jù)庫名為book.mdb,其中的數(shù)據(jù)表是bookitem,只有一個表。
bookitem表的結構:
book_id(編號):長整形,主鍵
book_name,book_author,book_price(貨幣),book_press,book_date(日期)
建立此數(shù)據(jù)庫的DSN,取名qhbook,帳號和密碼為:internet
用Select選取所有記錄:
格式:Select [Top N] 字段列表 From 數(shù)據(jù)表名(*表示所有字段,多字段用,隔開)
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 ‘%系統(tǒng)%’
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 數(shù)據(jù)表名 Where 條件表達式
4.  Select [Top N] 字段列表 From 數(shù)據(jù)表名 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 數(shù)據(jù)表名[(字段名列表)] Values (字段值列表)
格式二:rs.Open SQL,conn,2,3
Addnew
        為各字段賦值
        Update(此法最常用,特別是和表單結合時,通過表單添加記錄)
如:
Insert Into bookitem(book_name,book_author,book_price) Values (‘書名’,’作者’,’價格’)
刪除記錄:
格式一:Delete from 數(shù)據(jù)表名 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