Giáo trình bao gồm 5 chương, mỗi chương đều có phần kiến thức lý thuyết và câu hỏi nghiên cứu cụ thể.
Chương 1 Giới thiệu chung
Chương 2 Lập trình Web với ngôn ngữ đánh dấu siêu văn bản
Chương 3 Ngôn ngữ kịch bản trong lập trình Web
Chương 4 Lập trình Web động với công nghệ ASP
Chương 5 Kết nối CSDL trong lập trình Web động với ASP
Tài liệu tham khảo
122 trang |
Chia sẻ: tlsuongmuoi | Lượt xem: 2026 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Đại cương thiết kế Web, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
HTTP.
g. Ph−¬ng thøc:
BinaryRead: §äc d÷ liÖu tõ th©n HTTP göi ®Õn server .
VÝ dô:
-------------------File1.html-----------------
94
Name:
Age:
Sex:
-------------------File2.asp------------------
<%
Dim ByteCount,BinRead
ByteCount = Request.TotalBytes
BinRead=Resquest.BinaryRead(ByteCount)
Response.Write("ByteCount = " & ByteCount & " bytes")
%>
KÕt qu¶:
Tïy thuéc vµo d÷ kiÖn ®−îc nhËp t¹i form, vÝ dô nÕu Name=Bill, Age=56,
and Sex=male. Th× ta sÏ cã kÕt qu¶ lµ:
ByteCount = 39 bytes
4.6.3 §èi t−îng Response
§−îc sö dông ®Ó truy xuÊt c¸c ®¸p øng mµ server t¹o ra ®Ó göi vÒ cho user
TËp hîp Thuéc tÝnh Ph−¬ng thøc
Cookies Buffer
Charset
ContentType
Expires
ExpiresAbsolute
Status
AddHeader
AppendToLog
BinaryWrite
Clear
End
Flush
Redirect
Write
Có ph¸p:
Response. tËp hîp|thuéc tÝnh|ph−¬ng thøc
a. TËp hîp:
Cookies: X¸c ®Þnh gi¸ trÞ cña cookie göi cho browser . C¸c thµnh phÇn cña
tËp hîp nµy ®Òu lµ gi¸ trÞ chØ ghi.
Request object cho phÐp chóng ta ®äc th«ng tin cña cookies khi cã 1 yªu cÇu
®−îc göi ®Õn. Cßn Response object cung cÊp kh¶ n¨ng ®Æt hoÆc thay ®æi c¸c gi¸ trÞ
cña cookies tr−íc khi göi tr¶ l¹i cho client.
95
VÝ dô:
Dßng lÖnh sau ®©y sÏ thªm 1 cookie vµo cookie cña client nÕu nã ch−a ®−îc
®Æt hoÆc thay ®æi gi¸ trÞ cña cookie nµy nÕu nã ®· tån t¹i.
Chó ý: ViÖc thay ®æi cookie víi Response object cÇn ®−îc lµm tr−íc khi viÕt
m· v¨n b¶n hoÆc HTML ®Ó göi tíi client, nÕu kh«ng sÏ g©y ra lçi.
b. Ph−¬ng thøc :
Ph−¬ng thøc ý nghÜa
AddHeader Thªm phÇn ®Çu HTTP víi mét gi¸ trÞ cô thÓ ®Ó göi l¹i cho
browser
AppendToLog Thªm mét chuçi v¨n b¶n vµo môc nhËp nhËt ký m¸y chñ cho
yªu cÇu tõ m¸y kh¸ch hiÖn thêi
Binarywrite ViÕt th«ng tin trùc tiÕp tíi néi dung tÝn hiÖu ®¸p mµ kh«ng
chuyÓn ®æi ký tù nµo
Clear Xo¸ bé ®Öm
End Dõng viÖc xö lý 1 trang vµ tr¶ l¹i kÕt qu¶ hiÖn t¹i
Flush Göi nh÷ng d÷ liÖu cã trong bé ®Öm tíi browser ngay lËp tøc
Redirect ChØ cho browser kÕt nèi ®Õn mét URL kh¸c
Write Göi text trùc tiÕp tíi tr×nh duyÖt phÝa user
AddHeader: Response.AddHeader Name, Value
§Æt tªn header HTML: Ph¶i ®−îc gäi tr−íc khi output ®−îc göi cho client trõ
khi response.buffer ®−îc ®Æt lµ true.
VÝ dô:
<%
Response.AddHeader "MyHeader", "ERROR"
%>
AppendToLog : Response.AppendToLog(String)
Thªm x©u vµo cuèi môc log Web server cho yªu cÇu nµy. String lín nhÊt lµ
80 ký tù
VÝ dô:
<%
Response.AppendToLog("Error in Processing")
%>
§Çu ra ®−îc chÌn vµo cuèi file IIS log:
10.78.176.37, - , 03/20/97, 7:55:20, W3SVC, SALES1, 10.78.176.37, Error
in Processing
Clear: Response.Clear
Xãa toµn bé output HTML ®ang ë trong buffer, kh«ng xãa header, chØ xãa
phÇn th©n (body). NÕu buffer kh«ng ®−îc thiÕt ®Æt sÏ g©y ra lçi. Ph¶i ®Æt
Response.Buffer=True (mÆc ®Þnh trong phiªn b¶n 3.0)
96
VÝ dô:
End: Response.End
KÕt thóc xö lý file .asp vµ tr¶ l¹i kÕt qu¶ hiÖn t¹i
VÝ dô:
<%
Response.Write "Hello World"
Response.End
Response.Write "Is this the End?"
%>
KÕt qu¶:
Hello World
Flush: Response.Flush
Göi th«ng tin trong buffer ra ngay lËp tøc
Response.buffer=true
VÝ dô:
Redirect: Response.Redirect(URL)
KÕt thóc xö lý file .asp hiÖn t¹i, chuyÓn tr×nh duyÖt tíi mét URL kh¸c.
VÝ dô:
--------------File1.asp---------------
<%
Response.Write "This is File1.asp and switching to File2.asp"
Response.Redirect "File2.asp"
Response.Write "This line is not written to the file"
%>
--------------File2.asp-----------------
<%
Response.Write "This is File2.asp"
%>
KÕt qu¶:
File1 ®−îc thùc hiÖn sau ®ã tr×nh duyÖt sÏ t¶i File2 lªn:
------------File1.asp------------------
This is File1.asp and switching to File2.asp
------------File2.asp-------------------
This is File2.asp
Write: Response.Write(Variant)
Ghi th«ng tin d−íi d¹ng x©u vµo output HTTP hiÖn thêi.
VÝ dô:
<%
Response.Write "Hello World"
Response.Write ""%>
97
KÕt qu¶:
Hello World
c. Thuéc tÝnh:
Thuéc tÝnh ý nghÜa
Buffer X¸c ®Þnh xem mét trang cã sö dông bé ®Öm ®Ó chøa c¸c
kÕt qu¶ ®−îc t¹o bëi Script hay ®−îc göi ngay tíi
browser khi tõng dßng ®−îc t¹o ra vµ nhËp vµo d¶i
HTML. Gi¸ trÞ ngÇm ®Þnh lµ False
ContentType X¸c ®Þnh kiÓu néi dung HTTP ®−îc tr¶ vÒ. KiÓu ngÇm
®Þnh lµ Text/HTML
Expires Kho¶ng thêi gian 1 trang Web ®−îc l−u gi÷ trªn browser
ExpiresAbsolute Ngµy vµ thêi gian 1 trang Web ®−îc l−u gi÷ trªn browser
Status Gi¸ trÞ cña dßng tr¹ng th¸i HTTP tr¶ l¹i bëi server
Charset §Æt d¹ng ng«n ng÷ sö dông cho client browser vµo phÇn
cuèi cña ®o¹n ®Çu ContentType
Buffer
• Buffer: n¬i l−u gi÷ t¹m thêi tr−íc khi chuyÓn cho tr×nh duyÖt
• ChØ ra output cña trang cã ®−îc l−u trong buffer hay kh«ng
• SÏ kh«ng cã sù göi l¹i cho tr×nh duyÖt cho ®Õn khi tÊt c¶ c¸c script
®−îc xö lý xong, hoÆc cã lêi gäi ph−¬ng thøc Flush hay End.
Thuéc tÝnh nµy kh«ng thÓ thay ®æi khi server ®· göi th«ng tin cho tr×nh duyÖt
vµ ph¶i ®−îc ®Æt ë dßng ®Çu tiªn trong file .asp
VÝ dô:
<%
Response.Buffer = TRUE
x=0
Do
x = x+1
Response.Write x & ""
Loop
%>
Response.CacheControl
Cã cho phÐp m¸y chñ proxy ®−îc cache output cña trang .asp hay kh«ng.
M¸y chñ proxy dïng ®Ó ®Èy nhanh tèc ®é truy nhËp tíi trang Web nµo ®ã
b»ng c¸ch l−u l¹i mét b¶n cña trang Web trong cache.
• NÕu CacheControl ®−îc ®Æt lµ “Public”, th× cho phÐp cache.
• NÕu CacheControl ®Æt lµ “Private”, th× kh«ng cho phÐp cache.
VÝ dô:
98
Charset: Response.Charset
Thªm tªn cña tËp ký tù vµo trong header content-type
MÆc ®Þnh lµ ISO-LATIN-1
VÝ dô:
Trong vÝ dô nµy, nÕu header lµ: content-type: text/html
Th× header sÏ trë thµnh:
content-type: text/html; charset = MS_Kanji
ContentType : Response.ContentType
ChØ ra kiÓu néi dung HTTP ®Ó tr¶ l¹i. MÆc ®Þnh lµ text/HTML
VÝ dô:
Expires
X¸c ®Þnh kho¶ng thêi gian tr−íc khi mét trang ®−îc cache hÕt h¹n
VÝ dô:
• Tr−êng hîp 1: bÊt kú khi nµo gäi tíi trang ®ã, nã lu«n lu«n ®−îc
refresh.
• Tr−êng hîp 2: NÕu trë l¹i trang ®ã tr−íc 15 phót, trang hiÓn thÞ sÏ lµ
trang ë trong cache.
Response.ExpiresAbsolute
X¸c ®Þnh ngµy vµ thêi gian chÝnh x¸c mét trang sÏ hÕt h¹n.
VÝ dô:
Response.IsClientConnected
• X¸c ®Þnh xem client ®· ngõng kÕt nèi víi server tõ Response.Write
cuèi cïng.
• Thuéc tÝnh nµy ®Æc biÖt cã ý nghÜa ®Ó server kh«ng ph¶i tiÕp tôc thùc
hiÖn chuyÓn nh÷ng th«ng tin client kh«ng yªu cÇu.
VÝ dô:
<%
'Check to see if the client is connected.
If Not Response.IsClientConnected Then
'Get the sessionid to send to the shutdown function.
Shutdownid = Session.SessionID
'Perform shutdown processing.
Shutdown(Shutdownid)
End If
%>
99
Response.Status
Dßng tr¹ng th¸i do server tr¶ l¹i
VÝ dô:
<%
IPAddress = Request.ServerVariables("REMOTE_ADDR")
If IPAddress "208.5.64.223" Then
Response.Status = "403 Access Forbidden"
Response.Write Response.Status
Response.End
End If
%>
You have accessed this page through the IP Address of
208.5.64.223.
KÕt qu¶ sau sÏ ®−îc tr¶ vÒ nÕu ®Þa chØ IP trªn m¸y Client lµ 208.5.64.223:
You have accessed this page through the IP Address of 208.5.64.223.
Ng−îc l¹i nÕu ®Þa chØ IP cña Client kh«ng ph¶i lµ 208.5.64.223 th× kÕt qu¶
sau sÏ tr¶ vÒ:
403 Access Forbidden
4.6.4 §èi t−îng Server
Cho phÐp truy nhËp tíi c¸c ph−¬ng thøc vµ thuéc tÝnh trªn m¸y chñ.
TËp hîp Thuéc tÝnh Ph−¬ng thøc
ScripTimeOut
CreateObject
HTMLEncode
MapPath
URLEncode
Có ph¸p:
Server.Thuéc tÝnh|Ph−¬ng thøc
a. Thuéc tÝnh:
ScriptTimeout: Server.ScriptTimeout
thêi gian tèi ®a ®Ó trang script ch¹y trªn m¸y chñ. NÕu kh«ng ®Æt gi¸ trÞ cho
thuéc tÝnh nµy th× gi¸ trÞ mÆc ®Þnh cña nã lµ 90 gi©y.
NÕu script nhËp vµo mét vßng lÆp v« h¹n th× server sÏ kÕt thóc script ®ã ®Ó
tr¸nh bÞ overload bëi viÖc ch¹y liªn tôc c¸c tiÕn tr×nh sinh ra. Thêi gian tr−íc khi
script bÞ kÕt thóc ®−îc ®Þnh nghÜa bëi thuéc tÝnh nµy.
Ta cã thÓ lÊy ®−îc gi¸ trÞ cña thuéc tÝnh ScriptTimeout b»ng c¸ch:
100
b. Ph−¬ng thøc
Ph−¬ng thøc ý nghÜa
CreateObject T¹o mét thÓ hiÖn cña ®èi t−îng cô thÓ trªn Server
Execute Cho phÐp gọi trang ASP kh¸c trong một trang ASP
GetLastError M« t¶ ®èi t−îng lçi ASP, chØ cã ý nghÜa tr−íc khi file asp
göi néi dung tíi Client
HTMLEncode G¾n mét ®o¹n m· HTML vµo mét x©u ®· ®−îc ®Þnh d¹ng.
MapPath X¸c ®Þnh ®−êng dÉn vËt lý trªn m¸y chñ khi xÐt ®Õt ®−êng
dÉn ¶o.
Transfer Chuyển tíi trang ASP kh¸c tõ mét trang ASP. Th«ng tin
tr¹ng th¸i hiÖn t¹i trong trang ®Çu tiªn sÏ ®−îc chuyÓn tíi
trang thø hai
URLEncode Cho phÐp g¾n mét ®o¹n m· URL
Server.CreateObject(ObjectID)
T¹o mét thÓ hiÖn (instance) cña ®èi t−îng server (®èi t−îng activeX bÊt kú
trªn server), sau ®ã cã thÓ sö dông c¸c ph−¬ng thøc vµ truy cËp tíi c¸c thuéc tÝnh
cña ®èi t−îng ®ã.
ObjectID lµ ®èi t−îng cÇn khëi t¹o.
§o¹n m· sau dïng ®Ó kÕt nèi víi CSDL:
Server.Execute (Path)
• Cho phÐp gäi trang ASP kh¸c trong mét trang ASP. Khi trang ®−îc gäi
tíi hoµn thµnh c¸c c«ng viÖc cña nã, sÏ trë l¹i tiÕp tôc thùc hiÖn trang
ASP gäi tíi nã. HiÖu qu¶ gièng nh− c¸c hµm, thñ tôc (subroutines).
Ph−¬ng ph¸p cã hiÖu qu¶ t−¬ng tù include.
• Ph−¬ng thøc Transfer chuyÓn tíi trang ASP kh¸c kh«ng quay l¹i trang
®· gäi tíi.
• Tham sè Path chØ ®−êng dÉn t−¬ng ®èi hoÆc vËt lý, toµn bé x©u nµy
®−îc ®Æt trong dÊu nh¸y.
VÝ dô:
----------CallingAsp.asp----------
How now cow?
----------CalledAsp.asp----------
<%
Response.Write "pink"
%>
101
KÕt qu¶:
How now pink cow?
Server.GetLastError
Tr¶ l¹i ®èi t−îng ASPError, ®èi t−îng này cã 9 thuéc tÝnh chØ ®äc cung cÊp
th«ng tin chi tiÕt vÒ lçi.
VÝ dô:
<%
Dim objErrorInfo
Set objErrorInfo = Server.GetLastError
Response.Write("ASPCode = " & objErrorInfo.ASPCode)
Response.Write("ASPDescription = " & objErrorInfo.ASPDescription)
Response.Write("Category = " & objErrorInfo.Category)
Response.Write("Column = " & objErrorInfo.Column)
Response.Write("Description = " & objErrorInfo.Description)
Response.Write("File = " & objErrorInfo.File)
Response.Write("Line = " & objErrorInfo.Line)
Response.Write("Number = " & objErrorInfo.Number)
Response.Write("Source = " & objErrorInfo.Source)
%>
Server.HTMLEncode (String)
Ph−¬ng thøc nµy cho phÐp m· ho¸ chuçi thµnh m· HTML ®èi víi x©u ASCII
bÊt kỳ. VÝ dô, ®iÒu nµy cho phÐp hiÓn thÞ thÎ HTML mµ kh«ng xö lý nã nh− nh÷ng
thÎ HTML thùc sù.
VÝ dô:
") %>
KÕt qu¶:
The tag for a table is: <Table>
KÕt qu¶ ë Browser:
The tag for a table is:
Server.MapPath (Path)
¸nh x¹ ®−êng dÉn ¶o, hay t−¬ng ®èi tíi ®−êng dÉn vËt lý. Ph−¬ng thøc nµy
kh«ng kiÓm tra sù tån t¹i thùc sù cña ®−êng dÉn. NÕu b¾t ®Çu b»ng dÊu / hoÆc \ ->
®−êng dÉn ¶o. Cßn kh«ng b¾t ®Çu b»ng ký tù ®ã -> ®−êng dÉn t−¬ng ®èi.
VÝ dô:
The path of this file is <% Response.Write
Server.MapPath("test.asp")%>
The path of the file1 is <% Response.Write
Server.MapPath("\test.asp")%>
The path of the file2 is <% Response.Write
Server.MapPath("test\test.asp") %>
102
The path of the file3 is
KÕt qu¶:
The path of this file is C:\VANBANG2\ASP\Example\test.asp
The path of the file1 is d:\inetpub\wwwroot\test.asp
The path of the file2 is C:\VANBANG2\ASP\Example\test\test.asp
The path of the file3 is d:\inetpub\wwwroot
Server.Transfer (Path)
ChuyÓn tíi trang ASP kh¸c tõ mét trang ASP. Th«ng tin tr¹ng th¸i khëi t¹o
trong trang ®Çu tiªn sÏ ®−îc chuyÓn tíi trang thø hai.
VÝ dô:
----------CallingAsp.asp----------
<%
Application("name") = "Application Maker"
Application("publishdate") = "05/15/01"
Application("author") = "DevGuru"
Set Application("Obj1") =
Server.CreateObject("ADODB.Connection")
Server.Transfer("CalledAsp.asp")
%>
----------CalledAsp.asp----------
<%;
Response.Write "Output from CalledAsp.asp"
For Each Item in Application.Contents
If IsObject( Application.Contents(Item)) Then
Response.Write Item & “is an object.”
Else
Response.Write Item & “=” & Application.Contents(Item) &“”
End If
Next
%>
KÕt qu¶:
KÕt qu¶ tõ CalledAsp.asp
name=Application Maker
publishdate=05/15/01
author=DevGuru
OBJ1 is an object.
Server.URLEncode(String)
ChuyÓn x©u thµnh d¹ng m· ho¸ URL, ®Ó ®¶m b¶o hyperlink trong ASP ®ã ®−îc
®Þnh d¹ng ®óng ®¾n.
103
VÝ dô:
KÕt qu¶:
http%3A%2F%2Fwww%2Eissi%2Fnet
4.6.5 §èi t−îng Application
Mét øng dông bao gåm c¸c file cã thÓ truy nhËp th«ng qua mét th− môc ¶o
x¸c ®Þnh vµ c¸c th− môc con cña nã.
§èi t−îng Application thÓ hiÖn toµn bé mét øng dông ASP. Chóng ta cã thÓ
sö dông øng dông nµy ®Ó chia sÎ th«ng tin cho tÊt c¶ c¸c ng−êi dïng trong mét øng
dông.
§èi t−îng Application ®−îc b¾t ®Çu khi cã mét yªu cÇu ®Çu tiªn mét trang
web bÊt kú tõ th− môc ¶o t¹i Web server vµ tån t¹i cho ®Õn khi Webserver ngõng
ho¹t ®éng.
a. TËp hîp:
Application.Contents(Key)
Chøa danh s¸ch c¸c môc võa ®−îc khëi t¹o và ®−a vào ®èi t−îng
Application.
VÝ dô:
<% Application("name") = "Application Maker"
Application("publishdate") = "05/15/01"
Application("author") = "DevGuru"
Set Application("Obj1") = Server.CreateObject("ADODB.Connection")
For Each Item in Application.Contents
If IsObject( Application.Contents(Item)) Then
Response.Write Item & " is an object."
Else
Response.Write Item & "=" & Application.Contents(Item) & ""
End If
Next
%>
KÕt qu¶:
name=Application Maker
publishdate=05/15/01
author=DevGuru
OBJ1 is an object
Ph−¬ng thøc cña tËp hîp Contents:
• Application.Contents.Remove (Name|Integer)
Lo¹i bá môc nµo ®ã trong collection Application.Contents
Name chØ ra tªn môc sÏ xãa, n»m trong cÆp dÊu nh¸y (“”). Integer chØ ra vÞ
trÝ môc trong collection sÏ ®−îc xãa. Gi¸ trÞ nµy b¾t ®Çu tõ 1.
VÝ dô:
104
<%
Application("name") = "Application Maker"
Application("publishdate") = "05/15/01"
Application("author") = "DevGuru"
Set Application("Obj1") = Server.CreateObject("ADODB.Connection")
Application.Contents.Remove(1)
Application.Contents.Remove("publishdate")
For Each Item in Application.Contents
If IsObject(Application.Contents(Item)) Then
Response.Write Item & " is an object."
Else
Response.Write Item & "=" &Application.Contents(Item) & ""
End If
Next
%>
KÕt qu¶:
author=DevGuru
Obj1 is an object.
• Application.Contents.RemoveAll
Lo¹i bá tÊt c¶ c¸c môc trong collection Application.Contents .
Thªm cÆp dÊu ngoÆc ()
Application.StaticObjects(Key)
Chøa tÊt c¶ c¸c môc ®ã ®−îc t¹o trong øng dông b»ng thÎ <OBJECT.
----------Global.asa-------------
<OBJECT RUNAT=Server SCOPE=Application
ID=MyInfo PROGID="MSWC.MyInfo">
<OBJECT RUNAT=Server SCOPE=Application
ID=MyConnection PROGID="ADODB.Connection">
<OBJECT RUNAT=Server SCOPE=Application
ID=MyADRot PROGID="MSWC.ADRotator">
-----------File.asp----------------
<%
For Each Item In Application.StaticObjects
Response.Write Item & ""
Next
%>
105
KÕt qu¶:
MyInfo
MyConnection
MyADRot
b. Sù kiÖn:
øng víi hai ho¹t ®éng b¾t ®Çu vµ kÕt thóc mét ®èi t−îng Application ta cã hai
sù kiÖn trong ®èi t−îng Application, ®ã lµ:
Application_OnStart (khëi t¹o c¸c th«ng tin phôc vô cho mét øng dông khi
øng dông b¾t ®Çu) vµ Application_OnEnd (®−îc kÝch ho¹t khi øng dông kÕt thóc)
Có ph¸p cña sù kiÖn Application_OnStart:
Sub Application_OnStart
' N¬i chÌn ®o¹n Script cÇn thiÕt cho viÖc khëi t¹o mét øng dông
End Sub
Sub Application_OnEnd
' N¬i chÌn ®o¹n Scipt cÇn thiÕt cho viÖc kÕt thóc mét øng dông
End Sub
Chó ý: Ph¶i khai b¸o ng«n ng÷ script ®−îc sö dông trong c¸c ®o¹n script sù
kiÖn trong dßng ®Çu tiªn cña file global.asa
- C¸c ®èi t−îng cña ASP trong phÇn nµy chØ cã SERVER vµ APPLICATION
-------------------Global.asa--------------------------
Sub Application_OnEnd()
End Sub
Sub Application_OnStart()
Application("NumSession") = 0
Application("NumVisited") = 0
Session.Timeout = 10
End Sub
Sub Session_OnEnd()
Application("NumSession") = Application("NumSession") – 1
End Sub
Sub Session_OnStart()
Application("NumSession") = Application("NumSession") + 1
Application("NumVisited") = Application("NumVisited") + 1
End Sub
-------------------File1.asp----------------------------
Response.Write "You are " & Application("NumSession") & " of "
& Application("NumVisited") & " users."
106
KÕt qu¶:
You are 1 of 1 users.
c. Ph−¬ng thøc:
V× ®èi t−îng Application cã thÓ ®−îc chia sÎ th«ng tin gi÷a c¸c ng−êi dïng
do ®ã ®Ó ®¶m b¶o nh÷ng ng−êi dïng ®ã kh«ng thÓ cïng mét lóc thay ®æi néi dung
cña mét biÕn trong ®èi t−îng Application nã cã hai ph−¬ng thøc lµ Lock vµ
Unlock.
Ph−¬ng thøc ý nghÜa
Lock Ph−¬ng thøc Lock ng¨n c¶n c¸c client kh¸c cïng mét lóc thay
®æi gi¸ trÞ cña mét biÕn do ®èi t−îng Application l−u tr÷
Unlock Ph−¬ng thøc Unlock cho phÐp c¸c client cã thÓ söa ®æi c¸c
thuéc tÝnh cña ®èi t−îng Application .
4.6.6 §èi t−îng Session
§èi t−îng Sesion ®−îc dïng ®Ó l−u tr÷ th«ng tin cÇn thiÕt cho mét phiªn lµm
viÖc cña ng−êi dïng cô thÓ. C¸c biÕn l−u tr÷ trong ®èi t−îng Session kh«ng bÞ mÊt
khi ng−êi dïng truy cËp c¸c trang Web kh¸c trong øng dông. Thay vµo ®ã c¸c biÕn
nµy tån t¹i trong toµn bé phiªn lµm viÖc cña ng−êi dïng.
Khi mét ng−êi dïng míi yªu cÇu mét trang Web tõ øng dông, Web server tù
®éng t¹o mét ®èi t−îng Session vµ server sÏ ph¸ huû ®èi t−îng Session khi phiªn
lµm viÖc kÕt thóc hoÆc bÞ huû bá. Cã thÓ ®Æt thêi gian tån t¹i cho mét phiªn lµm
viÖc tuy nhiªn gi¸ trÞ ngÇm ®Þnh cho mét phiªn lµm viÖc tån t¹i lµ 20 phót.
a. TËp hîp:
Session.Contents(Key)
Chøa danh s¸ch c¸c môc ®· khëi t¹o vµ thªm vµo b»ng ®èi t−îng session.
Kh«ng ph¶i khëi t¹o b»ng thÎ
VÝ dô:
<%
Session("name") = "Application Maker"
Session("publishdate") = "05/01/99"
Session("author") = "ISSI"
Set Session("Obj1") = Server.CreateObject("ADODB.Connection")
For Each Item in Session.Contents
If IsObject( Session.Contents(Item)) Then
Response.Write Item & " is an object."
Else
Response.Write Item & "=" & Session.Contents(Item) & ""
End If
Next
%>
KÕt qu¶:
NAME=Application Maker
107
PUBLISHDATE=05/01/99
AUTHOR=ISSI
OBJ1 is an object.
Session.StaticObjects(Key)
Chøa danh s¸ch c¸c môc võa ®−îc khëi t¹o vµ ®−a vµo ®èi t−îng Session nhê
sö dông thÎ HTML .
VÝ dô:
----------Global.asa-------------
<OBJECT RUNAT=Server SCOPE=Session ID=MyInfo
PROGID="MSWC.MyInfo">
<OBJECT RUNAT=Server SCOPE=Session
ID=MyConnection PROGID="ADODB.Connection">
<OBJECT RUNAT=Server SCOPE=Session ID=MyADRot
PROGID="MSWC.ADRotator">
-----------File.asp-----------------
<%
For Each Item In Session.StaticObjects
Response.Write Item & ""
Next
%>
KÕt qu¶:
MyInfo
MyConnection
MyADRot
b. Sù kiÖn:
Còng nh− ®èi t−îng Application, ®èi t−îng Session cã hai sù kiÖn lµ
Session_OnStart( ®−îc kÝch ho¹t khi mçi khi mét phiªn lµm viÖc b¾t ®Çu) vµ
Session_OnEnd (®−îc kÝch ho¹t khi kÕt thóc mét phiªn lµm viÖc)
Có ph¸p
Sub Session_OnStart
' N¬i chÌn ®o¹n Script cÇn thiÕt cho viÖc khëi t¹o mét phiªn
lµm viÖc
End Sub
Sub Session_OnEnd
' N¬i chÌn ®o¹n Script cÇn thiÕt khi mét phiªn lµm viÖc kÕt thóc
End Sub
108
c. Thuéc tÝnh:
Thuéc tÝnh ý nghÜa
SessionID Tr¶ vÒ gi¸ trÞ nhËn biÕt duy nhÊt tõng phiªn lµm viÖc cña mét
ng−êi sö dông
Timeout Kho¶ng thêi gian ngÇm ®Þnh lµ 20’ cho sù tån t¹i cña mét phiªn
lµm viÖc trong mét øng dông. M¸y chñ Web sÏ duy tr× th«ng
tin phiªn lµm viÖc cña ng−êi sö dông mµ kh«ng ®−a ra yªu cÇu
hay lµm míi l¹i mét trang.
d. Ph−¬ng thøc:
Abandon: Huû bá mét ®èi t−îng Session vµ gi¶i phãng c¸c biÕn trong
®èi t−îng Session.
Session.Contents.Remove (Name|Integer)
Dïng ®Ó xãa tÊt c¶ c¸c môc trong collection Session.Contents
Cã 2 lùa chän tham sè Name hoÆc Integer
• Name chØ tªn cña môc cÇn xãa
• Integer lµ sè chØ vÞ trÝ (b¾t ®Çu tõ 0) cña môc cÇn xãa.
Session.Contents.RemoveAll
Xãa tÊt c¶ c¸c môc trong session.contents
VÝ dô:
Chó ý: Cã thÓ l−u tr÷ c¸c gi¸ trÞ trong ®èi t−îng Session. Th«ng tin l−u tr÷
trong ®èi t−îng Session cã ph¹m vi phiªn lµm viÖc vµ cã thÓ sö dông ®−îc trong
suèt mét phiªn lµm viÖc.
4.7 C©u hái vµ bµi tËp ch−¬ng 4
4.7.1 C©u hái «n tËp
1. ASP lµ viÕt t¾t cña côm tõ nµo?
a. All Standard Pages
b. Active Server Pages
c. Active Standard Pages
d. A Server Page
2. Néi dung cña ®o¹n script ASP ®−îc ®Þnh nghÜa bëi cÆp thÎ nµo d−íi ®©y?
a. ...
b. ...
c. ...
d.
3. IIS lµ g×? Nã ho¹t ®éng nh− thÕ nµo?
4. C¸c b−íc thiÕt lËp th− môc ¶o trong IIS.
5. C¸c lÖnh c¬ b¶n cña ASP.
4.7.2 Bµi tËp vÒ c¸c cÊu tróc ®iÒu khiÓn vµ vßng lÆp.
1. ViÕt ®o¹n m· ch−¬ng tr×nh ASP dïng cÊu tróc Select...Case ®Ó hiÓn thÞ ra
mµn h×nh ngµy hiÖn hµnh trong tuÇn b»ng tiÕng ViÖt.
109
2. ViÕt ®o¹n m· ch−¬ng tr×nh ASP dïng vßng lÆp Do...Loop ®Ó viÕt ra mµn
h×nh 10 dßng ch÷ “Hello world” cã kÝch th−íc t¨ng dÇn.
4.7.3 Bµi tËp vÒ c¸c ®èi t−îng.
1. ViÕt ra mµn h×nh c©u “Hello world”
2. ViÕt mét form lÊy ý kiÕn cña ng−êi sö dông vÒ trang web cña m×nh, råi
hiÓn thÞ c¸c th«ng tin ng−êi sö dông ®iÒn vµo ra mµn h×nh.
3. ThiÕt kÕ vµ cµi ®Æt trang Web hiÓn thÞ m¸y tÝnh tay víi c¸c phÐp to¸n
céng, trõ, nh©n, chia, lòy thõa, c¨n bËc hai, b×nh ph−¬ng, nghÞch ®¶o.
4. ViÕt mét ®o¹n code dïng ®Ó ®Õm sè lÇn truy cËp vµo mét trang Web. Sau
®ã nhóng vµo trang Web ®· lµm ë bµi 2.
5. ThiÕt kÕ vµ cµi ®Æt trang Web hiÓn thÞ lÞch (calendar). Trang Web ph¶i cho
phÐp ng−êi dïng xem lÞch th¸ng cña mét n¨m nµo ®ã, xem lÞch cña c¸c th¸ng tr−íc
vµ sau th¸ng hiÖn t¹i cña n¨m hiÖn t¹i.
6. ThiÕt kÕ vµ cµi ®Æt trang Web hiÓn thÞ hÖ thèng c©y th− môc cña m¸y chñ.
110
Ch−¬ng 5
KÕt nèi c¬ së d÷ liÖu trong lËp tr×nh Web ®éng víi ASP
5.1 Kh¸i niÖm vÒ ADO
ActiveX Data Object lµ líp ®èi t−îng COM (Compenent Object Model) tËp
trung vµo xö lý d÷ liÖu th«ng qua OLEDB cña Windows. ADO thiÕt kÕ cho môc
®Ých truy xuÊt d÷ liÖu tæng qu¸t kh«ng chØ dïng ®Ó truy xuÊt d÷ liÖu thuÇn tuý mµ
cßn xö lý ®−îc c¶ d÷ liÖu file hay bÊt kú lo¹i d÷ liÖu nµo cã hç trî c¬ chÕ cho phÐp
giao tiÕp th«ng qua OLEDB.
M« h×nh kiÕn tróc cña ADO t−¬ng t¸c gi÷a øng dông vµ nguån d÷ liÖu:
H×nh 5.1 M« h×nh kiÕn tróc cña ADO.
5.2 Tr×nh tiªu thô (consumer) vµ tr×nh cung cÊp (provider)
Trong b−íc lËp tr×nh, ch−¬ng tr×nh viÕt ra chÝnh lµ tr×nh tiªu thô d÷ liÖu bëi
nã cÇn truy xuÊt vµo c¸c nguån d÷ liÖu ®Ó xö lý. Cßn tr×nh cung cÊp lµ tËp lÖnh cho
phÐp truy xuÊt vµo nguån d÷ liÖu theo c¸ch ®Æc tr−ng cña chóng. Provider cho phÐp
giao tiÕp gi÷a nguån d÷ liÖu vµ tÇng ®iÒu khiÓn OLEDB. Vµ ADO chØ trao ®æi víi
nguån d÷ liÖu th«ng qua OLEDB mµ kh«ng cÇn quan t©m tíi c¸ch thøc lµm viÖc
cña Provider. §Ó gióp OLEDB biÕt ®−îc Provider nµo cÇn ph¶i giao tiÕp, khi më
kÕt nèi ADO cÇn chØ ®Þnh tr×nh cung cÊp d÷ liÖu Provider t−¬ng øng. Microsoft
cung cÊp s½n mét sè Provider cho phÐp truy xuÊt dÔ dµng vµo c¸c nguån d÷ liÖu
®ang th«ng dông nh−:
• Jet OLEDB 4.0 – C¬ së d÷ liÖu Access
• DTS Packages – DÞch vô chuyÓn ®æi d÷ liÖu trong SQL Server
• ODBC Driver – Provider ch phÐp truy xuÊt nguån d÷ liÖu th«ng qua ODBC
• SQL Server – C¬ së d÷ liÖu SQL Server
• Oracle – C¬ së d÷ liÖu Oracle
• Simple Provider – C¬ së d÷ liÖu d¹ng Text
VC++ VB Script Java
OLEDB
Data Store
E-mail CSDL File
ADO
Application
111
5.3 M« h×nh ®èi t−îng ADO
5.3.1 §èi t−îng kÕt nèi (Connection)
Cho phÐp thùc hiÖn viÖc më kÕt nèi ®Õn nguån d÷ liÖu cÇn truy xuÊt. Th«ng
qua Connection chØ cÇn chØ ®Þnh tr×nh cung cÊp OLEDB Provider sÏ dïng ®Ó tiÕp
cËn d÷ liÖu. C¸c th«ng tin kÕt nèi bæ sung kh¸c nh− username, password, server
name,.. th−êng ®−îc l−u vµo mét chuçi gäi lµ chuçi kÕt nèi (Connection String).
Chó ý: Cã thÓ kÕt nèi vµ truy xuÊt vµo nguån d÷ liÖu mµ kh«ng b¾t buéc ph¶i
dïng ®èi t−îng Connection. C¸ ®èi t−îng kh¸c nh− Command, RecordSet,
Record,... còng cho phÐp më trùc tiÕp kÕt nèi. Tuy nhiªn sö dông ®èi t−îng
Connection sÏ cho phÐp b¹n t¸ch biÖt thao t¸c kÕt nèi vµ thao t¸c truy cËp c¬ së d÷
liÖu. H¬n n÷a ®èi t−îng Connection cßn cung cÊp thªm mét sè chøc n¨ng chuyªn
dông kh¸c nh− cho phÐp thùc thi c©u lÖnh SQL t¸c ®éng vµo d÷ liÖu nh− Insert,
Update, Delete, gäi thñ tôc Procedure Store,... hoÆc kiÓm so¸t giao t¸c transaction
nh− Rollback, commit.
5.3.2 §èi t−îng Command:
§èi t−îng nµy dïng cho môc ®Ých thùc thi c©u lÖnh tèt h¬n Connection. Cho
phÐp b¹n chuyÓn tham sè vµo c¸c lÖnh thùc thi SQL. Tham sè cã thÓ chØ ®Þnh kiÓu
hoÆc gi¸ trÞ t−êng minh. C¸c tham sè cã thÓ nhËn trÞ tr¶ vÒ sau khi thùc
thi..Command cã thÓ dïng cho c¶ 2 môc ®Ých: thùc thi c©u lÖnh SQL kh«ng cÇn
nhËn kÕt qu¶ tr¶ vÒ nh− Insert, Update, Delete, Procedure Store, hoÆc thùc thi c¸c
lÖnh tr¶ vÒ tËp RecordSet nh− lÖnh Select.
5.3.3 §èi t−îng RecordSet:
Lµ ®èi t−îng sö dông th−êng xuyªn trong ADO. Cung cÊp kÕt qu¶ tr¶ vÒ tõ
c©u lÖnh truy vÊn mét tËp c¸c b¶n ghi. Trang ASP cã thÓ dïng vßng lÆp ®Ó duyÖt
qua c¸c b¶n ghi nµy vµ hiÓn thÞ d÷ liÖu kÕt xuÊt ra trang Web phÝa tr×nh duyÖt.
Ngoµi ra RecordSet cßn cho phÐp thùc hiÖn läc d÷ liÖu tõ tËp c¸c b¶n ghi, truy xuÊt
®Õn tong tr−êng cô thÓ cña b¶n ghi th«ng qua ®èi t−îng Field hoÆc danh s¸ch c¸c
tr−êng trong b¶n ghi th«ng qua ®èi t−îng Fields
5.4 KÕt nèi víi nguån d÷ liÖu
Chuçi kÕt nèi ®−îc dïng ®Ó cung cÊp th«ng tin cho ®èi t−îng Connection
biÕt ®Æc ®iÓm cña c¬ së hay nguån d÷ liÖu mµ ADO cÇn truy xuÊt.
5.4.1 T¹o mét ODBC DSN
Tr−íc khi t¹o c¸c Script truy xuÊt c¬ së d÷ liÖu (CSDL), ta cÇn chØ dÉn cho
ADO x¸c ®Þnh nguån d÷ liÖu cÇn truy xuÊt vµ c¸ch thøc liªn kÕt CSDL.
Phæ biÕn vµ ®¬n gi¶n nhÊt ®ã lµ sö dông tªn nguån d÷ liÖu (Data Source
Name-DSN) ®Ó ®Þnh vÞ vµ cÊu h×nh nguån d÷ liÖu t−ong thÝch chuÈn ODBC. Víi
ODBC b¹n cã thÓ lùa chän c¸c kiÓu DNS ®Ó t¹o, ®ã lµ: User, System hoÆc File. C¸c
DNS User vµ System th−êng tró trong registry cña hÖ ®iÒu hµnh WindowsNT.
System DNS cho phÐp tÊt c¶ ng−êi sö dông truy nhËp vµo Server ®ã ®Òu cã thÓ truy
xuÊt mét CSDL, trong khi ®ã User DNS h¹n chÕ ®èi víi mçi ng−êi sö dông ®¨ng
nhËp vµo Server; File DSN sÏ l−u th«ng tin d−íi d¹ng file cho phÐp nhiÒu ng−êi sö
dông truy xuÊt CSDL vµ dÔ dµng chuyÓn tõ Server nµy sang Server kh¸c chØ b»ng
viÖc copy c¸c tÖp DSN. Chóng ta cã thÓ t¹o ra DSN b»ng c¸ch:
• Vµo trong Start\Control Panel, click chuét vµo biÓu t−îng ODBC, chän
112
mét d¹ng DSN.
• Click Add, chän mét tr×nh ®iÒu khiÓn d÷ liÖu(.MDB, SQL)
• Theo c¸c chØ dÉn trªn mµn h×nh ®Ó cÊu h×nh DSN cho CSDL
Sau ®©y lµ mét sè kÕt nèi ®Õn c¸c lo¹i CSDL th«ng dông:
5.4.2 C¬ së d÷ liÖu MS Access
connStr=“Provider=Microsoft.JetOLEDB.4.0; Data Source =
C:\Program Files\Microsoft Visual Studio\VB98\BIBLIO.MDB;
Persist Security Info=False”
set conn=Server.CreateObject(“ADODB.Connection”)
conn.open connStr
5.4.3 C¬ së d÷ liÖu MS Access th«ng qua tr×nh ®iÒu khiÓn ODBC
connStr=“Driver=Microsoft Access Driver (*.mdb); DBQ=C:\
Program Files\Microsoft Visual Studio\VB98\BIBLIO.MDB;”
set conn=Server.CreateObject(“ADODB.Connection”)
conn.open connStr
5.4.4 C¬ së d÷ liÖu MS SQL Server
connStr=“Provider=SQLOLEDB.1;Persist Security Info=False;
User ID=sa;Initial Catalog=AdvWorks;Data Source=localhost”
set conn=Server.CreateObject(“ADODB.Connection”)
conn.open connStr
NÕu nguån d÷ liÖu hç trî OLEDB ta cã thÓ sö dông ADO th«ng qua ODBC
theo c¸ch tæng qu¸t:
connStr="Provider=MSDASQL.1;Persist Security Info=False;
Data Source=Test"
set conn=Server.CreateObject(“ADODB.Connection”)
conn.open connStr
Trong ®ã Test lµ DataSource thiÕt lËp trong System DNS cña ODBC
5.5 Sö dông ®èi t−îng RecordSet
5.5.1 T¹o RecordSet:
set rs=Server.CreateObject(“ADODB.RecordSet”)
§Ó trÝch rót d÷ liÖu tõ mét hoÆc nhiÒu b¶ng nµo ®ã trong c¬ së d÷ liÖu, ta
th−êng kÕt hîp ®èi t−îng Connection vµo c©u lÖnh SQL Select trong ph−¬ng thøc
Open cña RecordSet:
rs.open SQLCommand, Conn
5.5.2 DuyÖt qua c¸c b¶n ghi vµ truy xuÊt c¸c tr−êng cña b¶n ghi:
Do While not rs.eof
Rs.fields](“field_name”)
rs.movenext : di chuyÓn con trá cña RecordSet ®Õn b¶n ghi kÕ tiÕp
loop
rs.close
113
C¸c c¸ch truy cËp hîp lÖ vµ t−¬ng ®−¬ng:
Rs(“field_name”)
Rs.fields(“field_name”)
Rs.fields(“field_name”).value
Rs(1).value
Rs.fields(1).Value
NÕu muèn duyÖt qua tÊt c¶ c¸c tr−êng trong b¶n ghi cã thÓ dïng lÖnh:
For each Fld in rs.fields
Response.write fld.name + “:” + fld.value + “”
Next
5.5.3 Läc qua c¸c b¶n ghi trong RecordSet
Cã thÓ sö dông mÖnh ®Ò Where cña c©u lÖnh Select hoÆc cã thÓ sö dông
thuéc tÝnh Filter cña RecordSet ®Ó chØ ®Þnh ®iÒu kiÖn läc sau khi ®· trÝch xuÊt d÷
liÖu.
VÝ dô:
sqlStr=”Select * from Products”
rs.open sqlStr,conn
rs.filter= “ productCode=‘” & SpecialCode & “’”
Thuéc tÝnh Filter cho phÐp sö dông mÖnh ®Ò läc gÇn gièng víi mÖnh ®Ò
Where
5.5.4 Ph©n trang víi ®èi t−îng RecordSet:
§èi t−îng RecordSet cung cÊp 3 thuéc tÝnh quan träng sau ®Ó sö dông ph©n
trang:
PageSize: KÝch th−íc b¶n ghi trong mét trang
PageCount: Tæng sè trang RecordSet truy vÊn ®−îc
AbsolutePage: ChØ ®Þnh trang hiÖn hµnh ®ang cÇn ®−îc ®äc
§Ó RecordSet cã kh¶ n¨ng ph©n trang, cÇn thiÕt lËp thªm tham sè cho
RecordSet tr−íc khi thùc hiÖn truy vÊn:
Rs.CursorLocation=3 ‘ Cã thÓ sö dông h»ng adUseClient
Rs.PageSize=15 ‘ 15 b¶n ghi trong mét trang
TiÕt theo më ®èi t−îng RecordSet truy vÊn d÷ liÖu víi tuú chän lµ c¸c h»ng
adOpenForwardOnly(0), adLockReadOnly (1) truy cho ph−¬ng thøc Open nh− sau:
Rs.open sqlStr, Conn, 0,1
C«ng viÖc sau cïng lµ ®Þnh vÞ trang th«ng qua thuéc tÝnh AbsolutePage. Ta
l−u l¹i vÞ trÝ hiÖn hµnh cña trang d÷ liÖu th«ng qua gi¸ trÞ chøa trong thÎ <input
hidden>. Gi¸ trÞ nµy sÏ ®−îc chuyÓn vÒ tr×nh chñ mçi khi ng−êi dïng kÝch vµo.
XÐt vÝ dô sau:
<%sqlStr="SELECT * FROM Products "
' page navigate session here ...........
Dim lCurrentPage
Dim lPageCount
lCurrentPage = CLng(Request("page"))
If lCurrentPage < 1 Then
114
lCurrentPage = 1
End If
rs.CursorLocation = 3
rs.PageSize = 15
rs.Open sqlStr, conn, 0, 1 'Const adOpenForwardOnly=0,
adLockReadOnly = 1
lPageCount = rs.PageCount
If lCurrentPage > lPageCount Then
lCurrentPage = lPageCount
End If
if not rs.eof then
rs.AbsolutePage = lCurrentPage
end if
call ShowPageNavigation(lCurrentPage,lPageCount)
Do While rs.AbsolutePage = lCurrentPage And Not rs.Eof
Response.write rs("ProductName")
rs.movenext
loop %>
<%
Sub ShowPageNavigation (lCurrentPage,lPageCount)
If lCurrentPage 1 AND lCurrentPage 0 Then
%>
');
">Previous
Previous
');
">Next
Next
Page
function setValue(page){
115
viewFrm.page.value= page;
viewFrm.submit();
}
5.6 HiÖu chØnh c¸c b¶n ghi
5.6.1 HiÖu chØnh c¸c b¶n ghi dùa vµo RecordSet:
Thªm míi b¶n ghi: §Ó thªm míi vµo b¶ng d÷ liÖu qu¶n lý bëi ph−¬ng thøc
RecordSet sö dông ph−¬ng thøc AddNew
sqlStr=”Select * From Accounts”
rs.open sqlStr,Conn
‘ Thªm tμi kho¶n míi vμo b¶ng Accounts
rs.Addnew
‘g¸n gi¸ trÞ cho b¶n ghi
with rs
.fields(“username”)= ‘New User’
.fields(“password”)=’***’
end with
‘l−u l¹i
rs.update
‘ChØnh söa néi dung trong b¶n ghi hiÖn hμnh:
sqlStr=”Select * From Accounts”
rs.open sqlStr,Conn
with rs
.fields(“password”)=’newpassword’
end with
‘l−u l¹i
rs.update
‘Xo¸ b¶n ghi hiÖn hμnh:
sqlStr=”Select * From Accounts where username= ‘” &mkuser &”’”
rs.open sqlStr,Conn
rs.delete
5.6.2 HiÖu chØnh c¸c b¶n ghi b»ng c©u lÖnh SQL víi ®èi t−îng connection
sqlStr=”delete * from Accounts where username= ‘” &mkuser &”’”
Conn.execute sqlStr
5.7 Sö dông ®èi t−îng Command
5.7.1 T¹o ®èi t−îng Command:
set cmdUpdate=Server.CreateObject(“ADODB.Command”)
5.7.2 Sö dông ®èi t−îng Command:
sqlUpdate=“update accounts set password = ‘abc’ where
username=”‘” & username & “’”
116
cmdUpdate.ActiveConnection=strConn
cmdUpdate.CommandText=strUpdate
cmdUpdate.CommandType=adcmdText
cmdUpdate.Execute
§èi t−îng Command còng ®−îc dïng ®Ó nhËn kÕt qu¶ tr¶ vÒ tõ c©u lÖnh
Select hoÆc tõ mét tªn b¶ng d÷ liÖu, vÝ dô ®Ó lÊy toµn bé néi dung b¶ng d÷ liÖu
Accounts, ta chØ cÇn chØ ra tªn b¶ng vµ më RecordSet dùa vµo ®èi t−îng Command:
cmdTable.ActiveConnection=strConn
cmdTable.CommandText=”Accounts”
cmdTable.CommandType=adCmdTable
rs.open cmdTable
5.8 Bµi tËp ch−¬ng 5
Bµi 1: Chän chñ ®Ò ®Ó thiÕt kÕ website
1. Website vÒ dÞch vô viÖc lµm.
2. Website vÒ dÞch vô nhµ ®Êt (
3. Website b¸o ®iÖn tö ( )
4. Website tr−êng häc.
5. Website dÞch vô gi¶i trÝ nh− ECards, §iÖn hoa, ...
Bµi 2: X©y dùng m« h×nh øng dông b¸n hµng qua m¹ng, dùa trªn c¬ së d÷
liÖu, qua ®ã vËn dông c¸c ®èi t−îng cña ADODB ®Ó cã thÓ kÕt nèi víi c¬ së dù liÖu
sao cho cã thÓ thÓ hiÖn vµ cung cÊp ®−îc th«ng tin cho kh¸ch hµng. Chñ yÕu giíi
thiÖu c¸ch thøc thiÕt kÕ mét øng dông Web cã c¸c chøc n¨ng sau:
• Xem th«ng tin chi tiÕt cña mét mÆt hµng.
• Lùa chän hµng, thªm vµo, bít ra khái giá hµng.
• TÝnh tiÒn.
Bµi 3: Bµi tËp tæng hîp, thiÕt kÕ mét sè Web site theo mÉu:
1. ThiÕt kÕ website theo mÉu sau (
117
2. ThiÕt kÕ website theo mÉu sau (
3. ThiÕt kÕ website theo mÉu sau (
118
4. ThiÕt kÕ website theo mÉu sau (
5. ThiÕt kÕ website theo mÉu sau (
119
Tμi liÖu tham kh¶o
1. §ç mai h−¬ng: X©y dùng Web ®éng dùa trªn c«ng nghÖ ASP
Häc viÖn kü thuËt qu©n sù - 2000.
2. nguyÔn ph−¬ng lan: ASP 3.0/ASP.NET
Nhµ xuÊt b¶n Lao ®éng x· héi - 2003.
3. ph¹m phó tµi: Javascript
Mediaspace Club Ên hµnh néi bé - 2003.
4. nguyÔn thÞ thanh tróc: Gi¸o tr×nh thiÕt kÕ vµ lËp tr×nh Web víi
ASP
§¹i häc quèc gia Tp HCM - 2003.
5. nguyÔn h÷u tuÊn: Gi¸o tr×nh thiÕt kÕ Web
§¹i häc quèc gia Hµ Néi - 2001.
6. Gi¸o tr×nh x©y dùng vµ qu¶n trÞ Website
Trung t©m ®iÖn to¸n vµ truyÒn sè liÖu Khu vùc I - 2003.
7. Nhãm t¸c gi¶ ELICOM: X©y dùng Web ®éng víi ASP
Nhµ xuÊt b¶n Thèng kª - 2000.
8. MICHAEL CORNING: Working with Active Server Page
Que Corporation - 1997.
9. Learning VBScript
XtraNet Communications INC, - 2000
120
Môc lôc
Lêi nãi ®Çu ..........................................................................................................................1
Ch−¬ng 1 Giíi thiÖu chung.....................................................................................2
1.1 M¹ng m¸y tÝnh .............................................................................................................2
1.1.1 §Þnh nghÜa..................................................................................................................2
1.1.2 Ph©n lo¹i ....................................................................................................................2
1.2 Internet..........................................................................................................................3
1.3 C¸c giao thøc Internet .................................................................................................4
1.3.1 Giao thøc ®iÒu khiÓn phiªn truyÒn............................................................................4
1.3.2 Giao thøc Internet......................................................................................................4
1.3.3 Giao thøc gam d÷ liÖu ng−êi dïng............................................................................5
1.3.4 Giao thøc ph©n gi¶i ®Þa chØ .......................................................................................5
1.3.5 Giao thøc hÖ thèng tªn miÒn .....................................................................................5
1.3.6 Giao thøc chuyÓn th− ®¬n gi¶n .................................................................................6
1.3.7 Giao thøc truyÒn tËp tin.............................................................................................6
1.3.8 HTTP - HyperText Transfer Protocol.......................................................................6
1.4 §Þa chØ IP ......................................................................................................................6
1.5 C¸c kh¸i niÖm kh¸c......................................................................................................7
1.5.1 URL.............................................................................................................................7
1.5.2 Hyperlink (siªu liªn kÕt) ............................................................................................7
1.5.3 Web Browser (tr×nh duyÖt web) .................................................................................8
1.5.4 Web Server (m¸y chñ Web) .......................................................................................8
1.5.5 Web Site ......................................................................................................................9
1.5.6 World Wide Web.........................................................................................................9
1.5.7 Ph©n biÖt Inetrnet vµ WWW......................................................................................9
1.5.8 Web page ....................................................................................................................9
1.6 C¸ch thøc tæ chøc vµ x©y dùng mét Web Site...........................................................9
1.7 Ph©n lo¹i Web ............................................................................................................10
1.7.1 Static pages (Web tÜnh ):..........................................................................................10
1.7.2 Form pages (MÉu biÓu): ..........................................................................................10
1.7.3 Dynamic Web (Web ®éng) ......................................................................................10
1.8 C©u hái vµ bµi tËp ch−¬ng 1......................................................................................10
Ch−¬ng 2 LËp tr×nh Web víi ng«n ng÷ ®¸nh dÊu siªu v¨n b¶n ......11
2.1 Kh¸i niÖm ng«n ng÷ HTML .....................................................................................11
2.2 LËp tr×nh web víi ng«n ng÷ HTML.........................................................................11
2.2.1 C¸c thÎ ®Þnh d¹ng cÊu tróc cña HTML..................................................................11
2.2.2 C¸c thÎ ®Þnh d¹ng khèi............................................................................................13
2.2.3 C¸c thÎ ®Þnh d¹ng danh s¸ch ..................................................................................14
2.2.4 C¸c thÎ ®Þnh d¹ng ký tù ...........................................................................................15
2.2.5 C¸c thÎ chÌn ©m thanh, h×nh ¶nh...........................................................................21
2.2.6 ChÌn b¶ng ................................................................................................................25
2.2.7 Sö dông Khung – Frame .........................................................................................26
2.2.8 FORMS.....................................................................................................................30
2.3 DHTML (Dynamic HTML) ......................................................................................33
2.3.1 §Þnh nghÜa: ..............................................................................................................33
2.3.2 §Æc ®iÓm...................................................................................................................33
121
2.3.3 Mét sè hiÖu øng DHTML ........................................................................................34
2.4 C©u hái vµ bµi tËp ch−¬ng 2......................................................................................35
Ch−¬ng 3 Ng«n ng÷ kÞch b¶n trong lËp tr×nh Web..............................37
3.1 JavaScript ...................................................................................................................37
3.1.1 Tæng quan ................................................................................................................37
3.1.2 Sö dông JavaScript ..................................................................................................39
3.1.3 C¸c kiÓu d÷ liÖu trong JavaScript:..........................................................................43
3.1.4 T¹o biÕn trong JavaScript: ......................................................................................43
3.1.5 Lµm viÖc víi biÕn vµ biÓu thøc:...............................................................................44
3.1.6 CÊu tróc ®iÒu kiÖn if – else ......................................................................................46
3.1.7 Hµm vµ dèi t−îng.....................................................................................................49
3.1.8 T¹o ®èi t−îng trong JavaScript ...............................................................................52
3.1.9 Sù kiÖn trong JavaScript .........................................................................................57
3.1.10 Sö dông vßng lÆp trong JavaScript .......................................................................61
3.1.11 Sö dông ®èi t−îng Windows..................................................................................62
3.1.12 Lµm viÖc víi status bar ..........................................................................................64
3.1.13 Më vµ ®ãng c¸c cöa sæ...........................................................................................64
3.1.14 Sö dông ®èi t−îng string .......................................................................................66
3.2 VBScript......................................................................................................................66
3.2.1 VBScript lµ g×? .........................................................................................................66
3.2.2 BiÕn vµ ph¹m vi biÕn................................................................................................66
3.2.3 C¸c kiÓu d÷ liÖu........................................................................................................68
3.3 C©u hái vµ bµi tËp ch−¬ng 3......................................................................................75
3.3.1 C©u hái «n tËp ..........................................................................................................75
3.3.2 Bµi tËp lËp tr×nh víi c¸c ng«n ng÷ kÞch b¶n ..........................................................75
Ch−¬ng 4 LËp tr×nh Web ®éng víi c«ng nghÖ ASP .................................76
4.1 Mét sè kh¸i niÖm c¬ b¶n vÒ ASP ..............................................................................76
4.1.1 Kh¸i niÖm Web ®éng................................................................................................76
4.1.2 ASP lµ g×? .................................................................................................................76
4.1.3 Scripting? .................................................................................................................77
4.1.4 T¹o vµ xem mét file ASP .........................................................................................78
4.1.5 Server-side Includes: ...............................................................................................81
4.2 ¦u ®iÓm cña viÖc sö dông ASP t¹o Web ®éng ........................................................82
4.2.1 §¬n gi¶n, dÔ häc vµ hiÖu qu¶:.................................................................................82
4.2.2 B¶o mËt ®−îc m∙: ....................................................................................................82
4.2.3 B¶o tr× dÔ dµng:........................................................................................................82
4.3 Cµi ®Æt IIS vµ t¹o th− môc ¶o cho øng dông...........................................................83
4.3.1 1. Cµi ®Æt IIS ............................................................................................................83
4.3.2 T¹o th− môc ¶o: .......................................................................................................83
4.4 CÊu tróc vµ c¸c dßng lÖnh c¬ b¶n cña ASP .............................................................85
4.4.1 C¸c thµnh phÇn ®−îc dïng trong trang ASP .........................................................85
4.4.2 BiÕn trong ASP.........................................................................................................85
4.4.3 C¸c lÖnh c¬ b¶n cña ASP ........................................................................................85
4.4.4 Vßng lÆp For: ...........................................................................................................87
4.4.5 C©u lÖnh lÆp kh«ng x¸c ®Þnh: .................................................................................87
4.5 X©y dùng c¸c hµm vµ thñ tôc trong ASP: ...............................................................87
4.6 Sö dông c¸c ®èi t−îng cña ASP ®Ó trao ®æi th«ng tin gi÷a Client vµ Server.......88
122
4.6.1 Giíi thiÖu c¸c ®èi t−îng chÝnh cña ASP: ...............................................................88
4.6.2 §èi t−îng Request....................................................................................................89
4.6.3 §èi t−îng Response .................................................................................................94
4.6.4 §èi t−îng Server ......................................................................................................99
4.6.5 §èi t−îng Application............................................................................................103
4.6.6 §èi t−îng Session ..................................................................................................106
4.7 C©u hái vµ bµi tËp ch−¬ng 4....................................................................................108
4.7.1 C©u hái «n tËp ........................................................................................................108
4.7.2 Bµi tËp vÒ c¸c cÊu tróc ®iÒu khiÓn vµ vßng lÆp. ...................................................108
4.7.3Bµi tËp vÒ c¸c ®èi t−îng..........................................................................................109
Ch−¬ng 5 KÕt nèi cSDL trong lËp tr×nh Web ®éng víi ASP............110
5.1 Kh¸i niÖm vÒ ADO...................................................................................................110
5.2 Tr×nh tiªu thô (consumer) vµ tr×nh cung cÊp (provider) .....................................110
5.3 M« h×nh ®èi t−îng ADO..........................................................................................111
5.3.1 §èi t−îng kÕt nèi (Connection).............................................................................111
5.3.2 §èi t−îng Command: ............................................................................................111
5.3.3 §èi t−îng RecordSet:.............................................................................................111
5.4 KÕt nèi víi nguån d÷ liÖu ........................................................................................111
5.4.1 T¹o mét ODBC DSN..............................................................................................111
5.4.2 C¬ së d÷ liÖu MS Access ........................................................................................112
5.4.3 C¬ së d÷ liÖu MS Access th«ng qua tr×nh ®iÒu khiÓn ODBC ..............................112
5.4.4 C¬ së d÷ liÖu MS SQL Server................................................................................112
5.5 Sö dông ®èi t−îng RecordSet .................................................................................112
5.5.1 T¹o RecordSet:.......................................................................................................112
5.5.2 DuyÖt qua c¸c b¶n ghi vµ truy xuÊt c¸c tr−êng cña b¶n ghi:..............................112
5.5.3 Läc qua c¸c b¶n ghi trong RecordSet ...................................................................113
5.5.4 Ph©n trang víi ®èi t−îng RecordSet:....................................................................113
5.6 HiÖu chØnh c¸c b¶n ghi ............................................................................................115
5.6.1 HiÖu chØnh c¸c b¶n ghi dùa vµo RecordSet: ........................................................115
5.6.2 HiÖu chØnh c¸c b¶n ghi b»ng c©u lÖnh SQL víi ®èi t−îng connection ..............115
5.7 Sö dông ®èi t−îng Command .................................................................................115
5.7.1 T¹o ®èi t−îng Command:......................................................................................115
5.7.2 Sö dông ®èi t−îng Command: ..............................................................................115
5.8 C©u hái vµ bµi tËp ch−¬ng 5....................................................................................116
Tµi liÖu tham kh¶o .........................................................................................................119
Môc lôc............................................................................................................................120
Các file đính kèm theo tài liệu này:
- DCTKWeb.pdf