Professional Documents
Culture Documents
Tim Hieu ASP
Tim Hieu ASP
1. Khaùi nieäm:
ASP laø moät ngoân ngöõ kòch baûn duøng ñeå xaây döïng caùc
öùng duïng treân moâi tröôøng internet. Nhö teân goïi cuûa noù, ASP
giuùp ngöôøi xaây döïng öùng duïng web taïo ra caùc trang web coù
noäi dung linh hoaït. Vôùi caùc ngöôøi duøng khaùc nhau khi truy
caäp vaøo nhöõng trang web naøy coù theå seõ nhaän ñöôïc caùc
keát quaû khaùc nhau. Nhôø nhöõng ñoái töôïng coù saün(Built_in
Object) vaø khaû naêng hoå trôï caùc ngoân ngöõ script nhö
VBScript vaø Jscript, ASP giuùp ngöôøi xaây döïng öùng duïng deã
daøng vaø nhanh choùng taïo ra caùc trang web chaát löôïng.
Nhöõng tính naêng treân giuùp ngöôøi phaùt trieån öùng duïng
nhanh choùng tieáp caän ngoân ngöõ môùi, ñieàu naøy laø moät öu
ñieåm khoâng nhoû cuûa ASP.
Trang ASP ñôn giaûn laø moät trang vaên baûn vôùi phaàn môû
roäng laø.asp, goàm coù 3 phaàn :
Khi theâm 1 ñoaïn script vaøo HTML , ASP duøng daáu phaân
caùch (delimiters) ñeå phaân bieät giöõa ñoaïn HTML vaø ñoaïn ASP.
<% baét ñaàu ñoaïn script vaø %> ñeå keát thuùc ñoaïn script. Coù
theå xem trang ASP nhö moät trang HTML coù boå sung caùc ASP
Script Command
2
<html>
<body>
Baïn baét ñaàu vôùi trang ASP naøy ngaøy :<%=Now%>
</body>
</html>
3. Moâ hình öùng duïng web qua coâng ngheä ASP
Thao taùc giöõa client vaø server trong moät öùng duïng web coù
theå ñöôïc theå hieän khaùi quaùt nhö sau:
O
Trình HTTP O
D
duyeät LE
ASP A
D
B DBMS
WEB D
B
C SQL
O Server
Client
DB
Web Server Server
Moâ hình öùng duïng Web theå hieän qua coâng ngheä ASP
Khi moät trang ASP ñöôïc yeâu caàu bôûi web browser, web server
seõ duyeät tuaàn töï trang ASP naøy vaø chæ dòch caùc script ASP.
Tuøy theo ngöôøi xaây döïng trang web naøy quy ñònh maø keát
quaû do web server dòch seõ traû veà laàn löôït cho trình duyeät
cuûa ngöôøi duøng hay laø chæ traû veà khi dòch xong taát caû
caùc script. Keát quaû traû veà naøy maëc ñònh laø moät trang theo
caáu truùc cuûa ngoân ngöõ HTML
3
Öu ñieåm :
ASP boå sung cho caùc coâng ngheä ñaõ coù töø tröôùc nhö CGI
(Common Gateway Interface), Giuùp ngöôøi duøng xaây duïng
caùc öùng duïng web vôùi nhöõng tính naêng sinh ñoäng. Tuy
nhieân, khaùc vôùi CGI, caùc trang ASP khoâng caàn phaûi hôïp
dòch.
Deã daøng töông thích vôùi caùc coâng ngheä cuûa MicroSoft.
ASP söû duïng ActiveX Data Object (ADO) ñeå thao taùc vôùi cô
sôû döõ lieäu heát söùc tieän lôïi.
Vôùi nhöõng gì ASP cung caáp, caùc nhaø phaùt trieån öùng duïng
web deã daøng tieáp caän coâng ngheä naøy vaø nhanh choùng
taïo ra caùc saûn phaåm coù giaù trò. Ñieàu naøy heát söùc coù
yù nghóa trong ñieàu kieän phaùt trieån nhö vuõ baûo cuûa tin
hoïc ngaøy nay. Noù goùp phaàn taïo neân moät ñoäi nguõ laäp
trình web lôùn maïnh.
ASP coù tính naêng môû. Noù cho pheùp caùc nhaø laäp trình
xaây döïng caùc component vaø ñaêng kyù söû duïng deã daøng.
Hay noùi caùch khaùc ASP coù tính naêng COM(Component
Object Model)
Khuyeát ñieåm :
ASP chæ chaïy vaøtöông thích treân moâi tröôøng Window ñieàu
naøy laøm ASP bò haïn cheá raát nhieàu.
Duøng ASP chuùng ta seõ gaëp khoâng ít khoù khaên trong vieäc
can thieäp saâu vaøo heä thoáng nhö caùc öùng duïng CGI.
4
ASP khoâng ñöôïc söï hoå trôï nhieàu töø caùc haõng thöù ba.
Caùc öùng duïng ASP chaïy chaäm hôn coâng ngheä Java Servlet.
Tính baûo maät thaáp. Khoâng gioáng nhö CGI hay Java servlet,
caùc maõ ASP ñeàu coù theå ñoïc ñöôïc neáu ngöôøi duøng coù
quyeàn truy caäp vaøo web server. Coù leõ ñaây laø lyù do quan
troïng nhaát ñeå ngöôøi duøng khoâng choïn coâng ngheä ASP.
1. Application Object
Ñoái töôïng Application duøng chia seû thoâng tin cho moïi
ngöôøi duøng. Bôûi vì thoâng tin trong ñoái töôïng application ñöôïc
duøng chung cho moïi ngöôøi duøng neân noù caàn moät phöông
thöùc ñeå baûo ñaûm tính thoáng nhaát cuûa döõ lieäu.
Cuù phaùp :
Application.Method
Nhöõng vaán ñeà caàn quan taâm khi söû duïng ñoái
töôïng application:
Cuù Phaùp :
Application.Contents( Key )
5
Ví duï: Baïn coù theå duøng voøng laëp ñeå nhaän taát caû item
trong application
• Lock: phöông thöùc lock ngaên chaën caùc client khaùc thay ñoåi
giaù trò cuûa bieán duøng chung trong ñoái töôïng applicaton.
Neáu phöông thöùc UnLock khoâng ñöôïc goïi thì server töï ñoäng
thöïc hieän leänh naøy khi xöû lyù xong caùc script hoaëc time
out.
<%
Application.Lock
Application("NumVisits") =
Application("NumVisits") + 1
Application.Unlock
%>
söï kieän Sesion_OnStart. Trong söï kieän naøy chæ toàn taïi
ñoái töôïng application vaø session.
Cuù phaùp :
<SCRIPT LANGUAGE=ScriptLanguage
RUNAT=Server>
Sub Session_OnEnd
...
End Sub
Sub Session_OnStart
...
End Sub
</SCRIPT>
2. Session
Session laø ñoái töôïng ñöôïc web server töï ñoäng taïo khi moät
trang web ñaàu tieân trong öùng duïng ñöôïc ngöôøi duøng goïi.
Session raát tieän lôïi cho ngöôøi phaùt trieån öùng duïng web trong
vieäc löu laïi thoâng tin cuûa caùc ngöôøi duøng. Ñoái töôïng session
seõ toàn taïi cho ñeán khi session bò huûy hoaëc heát hieäu
löïc(time out). Khi muoán löu item trong ñoái töôïng session thì phaûi
yeâu caàu ngöôøi duøng cho pheùp löu cookies(enable cookies)
trong trình duyeät web.
Cuù phaùp :
Nhöõng vaán ñeà caàn quan taâm khi söû duïng ñoái töôïng session:
• Contents: Chöùa taát caû nhöõng item maø chuùng ta thieát laäp
cho ñoái töôïng session maø khoâng duøng tag <OBJECT>.
Cuù Phaùp :
Session.Contents( Key )
Ví duï: Baïn coù theå duøng voøng laëp ñeå nhaän taát caû item
trong Session
Next
%>
• SessionID: Laø moät con soá kieåu long ñöôïc phaùt sinh
bôûi web server khi session ñöôïc taïo. Moãi ngöôøi duøng
seõ coù moät sessionID khoâng gioáng nhau. Khi web server
bò stop vaø start trôû laïi thì nhöõng sessionID do web
server phaùt sinh laàn sau coù theå seõ truøng vôùi laàn
tröôùc ñoù. Do ñoù chuùng ta khoâng theå duøng ID ñeå
taïo khoùa chính cho moät öùng duïng cô sôû döõ lieäu.
• Timeout: Thôøi gian maø ñoái töôïng Session coøn toàn taïi.
Giaù trò naøy ñöôïc tính baèng phuùt . Neáu ngöôøi duøng
khoâng refresh hoaëc yeâu caàu moät trang web cuûa öùng
duïng trong khoaûng thôøi gian lôùn hôn thôøi gian timeout
thì session seõ keát thuùc. Giaù trò maëc ñònh laø 20 phuùt
hieän haønh seõ ñöôïc saép trong moät haøng ñôïi chôø
xoùa. Server seõ xöû lyù taát caû caùc script vaø sau ñoù
xoùa caùc doái töôïng trong haøng ñôïi naøy.
Cuù phaùp:
Session.Abandon
Ví duï:
<% Se sesion.Abandon
Session("MyName") = "Mary"
Reponse.Write(Session("MyName"))
%>
ÔÛ trang naøy thì bieán Myname vaãn coøn toàn taïi
vaø seõ bò huûy khi caùc leänh script thöïc hieän
xong.
Cuù phaùp :
10
<SCRIPT LANGUAGE=ScriptLanguage
RUNAT=Server>
Sub Session_OnEnd
...
End Sub
Sub Session_OnStart
...
End Sub
</SCRIPT>
3. ObjectContext Object
Ñoái töôïng naøy ñöôïc söû duïng cho caùc thao taùc transaction.
ObjectContext ñöôïc ñieàu khieån bôûi phaàn meàm quaûn lyù giao
taùc Microsoft Transaction Server (MTS). Khi moät trang ASP chöùa
chæ thò @TRANSACTION, trang naøy seõ ñöôïc thöïc hieän trong
moät transaction vaø chæ chaám döùt xöû lyù khi taát caû caùc giao
taùc thöïc hieän xong.
Cuù phaùp:
ObjectContext.Method
Method:
Cuù phaùp:
ObjectContext.SetComplete
• SetAbort: Phöông thöùc naøy khai baùo taát caû caùc thao
taùc ñöôïc thöïc hieän trong transaction seõ khoâng ñöôïc
11
Cuù phaùp:
ObjectContext.SetAbort
3. Request Object
Ñoái töôïng Request nhaän taát caû giaù trò maø trình
duyeät cuûa cuûa client gôûi ñeán server thoâng qua
moät yeâu caàu HTTP (HTTP request)
Cuù phaùp:
Request[.collection|property|method](variable)
Nhöõng vaán ñeà caàn quan taâm khi söû duïng ñoái
töôïng Request:
Cuù phaùp:
Request.ClientCertificate( Key[SubField] )
Cuù phaùp:
Request.Cookies(cookie)[(key)|.attribute]
Neáu hai cookie truøng teân ñöôïc trình duyeät cuûa client gôûi
cho server thì caâu leänh Request.Cookies seõ traû veø cookie coù
caáu truùc saâu hôn. Ví duï, neáu hai cookie truøng teân nhöng coù
ñöôøng daãn laø /www/ vaø /www/home/, client coù theå gôûi caû
13
hai cookie naøy cho server nhöng leänh Request.Cookies seõ chæ
traû veà cookie thöù 2.
<%
If Request.Cookies(“MyCookie”).Haskeys Then
For Each key In Request.Cookies
Response.Write item &”=”
Response.Write
Request.Cookies(“MyCookie”)(key) & “<br>”
Next
End If
%>
• Form: collection naøy nhaän giaù trò cuûa nhöõng thaønh
phaàn trong form ñöôïc gôûi baèng phöông thöùc POST
thoâng qua moät HTTP request.
Cuù phaùp:
Request.Form(element)[(index)|.Count]
<HTML>
<HEAD>
</HEAD>
<BODY>
<OPTION>Vanilla </OPTION>
<OPTION>Strawberry </OPTION>
<OPTION>Chocolate </OPTION>
<OPTION>Rocky Road</OPTION>
</SELECT><br>
</FORM>
</BODY>
</HTML>
<HTML>
<HEAD>
15
</HEAD>
<BODY>
Welcome: <%=Request.Form(“firstname”)%>
</FORM>
</BODY>
</HTML>
Cuù phaùp:
Request.QueryString(Teân bieán)[(chæ
muïc)].Count
4. Response Object:
Cuù phaùp:
Response.collection|property|method
16
Nhöõng vaán ñeà caàn quan taâm khi söû duïng ñoái
töôïng Request:
• Cookies: collection naøy duøng ñeå thieát laäp giaù trò cho
bieán cookies. Neáu cookies khoâng toàn taïi thì web server
seõ taïo moät cookies môùi treân maùy client. Ngöôïc laïi, giaù
trò cuûa cookies laø giaù trò môùi thieát laäp. Moät löu yù khi
söû duïng cookies laø giaù trò cookies phaûi laø nhöõng thoâng
tin ñöôïc gôûi veà ñaàu tieân cho trình duyeät cuûa client.
Cuù phaùp:
Response.Cookies(cookie)[(key)|.attribute] = value
• Buffer: laø moät bieán kieåu boolean. Neáu thuoäc tính naøy
laø true thì web server chæ traû keát quaû cho client khi taát
caû caùc script ñöôïc xöû lyù hoaëc phöông thöùc Flush hay
End ñöôïc goïi. Giaù trò maëc ñònh laø False.
• CacheControl: qui ñònh proxy server coù ñöôïc löu keát quaû
do trang ASP naøy phaùt sinh hay khoâng. Giaù trò maëc ñònh
laø khoâng(private).
• ContentType: qui ñònh daïng döõ lieäu do web server traû veà
cho client. Giaù trò maëc ñònh laø text/HTML.
Ví duï:
• Expires: chæ ñònh thôøi gian Cookies trang löu treân trình
duyeät cuûa client.
• Clear: xoùa taát caû döõ lieäu chöùa trong vuøng ñeäm.
Muoán duøng phöông thöùc naøy phaûi chæ ñònh giaù trò
Response.Buffer = TRUE.
• End: Khi goïi phöông thöùc naøy, server döøng xöû lyù caùc
script vaø traû veà cho client caùc keát quaû ñaõ thöïc hieän
ñöôïc. Muoán duøng phöông thöùc naøy phaûi chæ ñònh giaù
trò Response.Buffer = TRUE.
• Flush: gôûi taát caû döõ lieäu trong vuøng ñeäm cho client.
Muoán duøng phöông thöùc naøy phaûi chæ ñònh giaù trò
Response.Buffer = TRUE.
5. Server object:
19
Ñoái töôïng Server cung caáp caùc phöông thöùc vaø thuoäc
tính duøng cho truy caäp server.
Nhöõng vaán ñeà caàn quan taâm khi söû duïng ñoái
töôïng server:
Ví duï:
20
• MapPath: phöông thöùc naøy cho bieát thoâng tin veà ñöôøng
daãn vaät lyù cuûa moät thö muïc aûo treân web server.