ASP & lËp tr×nh m¸y chñ
B¹ch Hng Nguyªn
M¹ng m¸y tÝnh ngµy nay ®· trë thµnh mét thµnh phÇn quan träng trong ngµnh truyÒn th«ng vµ cuéc sèng hµng ngµy. Song song víi viÖc ph¸t triÓn cña m¹ng lµ sù ph¸t triÓn cña mét híng míi trong lËp tr×nh, ®ã lµ lËp tr×nh m¹ng. Víi sù bïng næ th«ng tin trªn toµn cÇu, sù ra ®êi cña WWW( world wide web), ®Æt ra yªu cÇu ph¶i xö lý th«ng tin mét c¸ch nhanh chãng, chÝnh x¸c gi÷a c¸c web server víi client. §Ó gi¶i quyÕt vÊn ®Ò nµy mét trong nh÷ng c«ng cô lËp tr×nh m¸y chñ phæ biÕn hiÖn nay lµ ASP. Bµi viÕt kh«ng ®i vµo chi tiÕt c¸c thñ thuËt lËp tr×nh mµ cung cÊp cho b¹n ®äc mét c¸i nh×n tæng qu¸t , nguyªn lý vÒ ASP còng nh sÏ so s¸nh nã víi mét sè ng«n ng÷ lËp tr×nh m¸y chñ kh¸c nh Perl, Rexx,Python.
ASP lµ g× ?
Microsoft Active Server Pages (ASP) kh«ng h¼n lµ mét ng«n ng÷ lËp tr×nh , Microsoft gäi nã lµ m«i trêng server-side scripting, m«i trêng nµy cho phÐp t¹o vµ ch¹y c¸c c¸c øng dông Web server ®éng , t¬ng t¸c vµ cã hiÖu qu¶ cao. §Ó lµm viÖc trong m«i trêng nµy , c¸c ASP coder thêng sö dông VBScript hoÆc JavaScript, c¶ hai lo¹i nµy ®Òu tù ®éng hç trî ASP.
Trong c¸c HTML, mçi tag ®îc b¾t ®Çu vµ kÕt thóc bëi cÆp "< />" , ASP còng t¬ng tù nh vËy. §Ó ®¸nh dÊu n¬i nµo ASP script b¾t ®Çu vµ kÕt thóc dïng cÆp lÖnh "<% %>".
C¸c ®o¹n ASP script cã thÓ xuÊt hiÖn ë mäi n¬i trong trang HTML, ASP & HTML cã sù g¾n bã chÆt chÏ víi nhau. Víi ASP ta cã thÓ chen c¸c script thùc thi ®îc vµo trùc tiÕp c¸c file HTML . Khi ®ã viÖc t¹o ra trang HTML vµ xö lý script trë nªn ®ång thêi, ®iÒu nµy cho phÐp t¹o ra c¸c t¬ng t¸c cña Web site mét c¸ch linh ho¹t uyÓn chuyÓn , cã thÓ chen c¸c thµnh phÇn HTML ®éng vµo trang Web tïy vµo tõng trêng hîp cô thÓ.
VBScript lµ ng«n ng÷ mÆc ®Þnh cña ASP, nÕu muèn sö dông mét ng«n ng÷ kh¸c th× chóng ta cÇn ph¶i ®Þnh nghÜa ng«n ng÷. T¹i ®Çu trang thªm dßng :
<%@LANGUAGE=Tªn ng«n ng÷%>
VBScript dÔ häc vµ rÊt tiÖn lîi nÕu chóng ta ®· häc qua VB, c¸c vÝ dô trong bµi b¸o nµy ®Òu viÕt b»ng VBScript.
C¸c ASP script ®îc viÕt vµ ®Æt trong c¸c file cã phÇn më réng lµ .asp . Khi cho script ch¹y, vÝ dô nh :
http://msdn.microsoft.com/default.asp th× mäi qu¸ tr×nh xö lý cña file default.asp sÏ diÔn ra trªn server thay v× ch¹y ë client , Web server cña sÏ lµm mäi c«ng viÖc cÇn thiÕt ®Ó t¹o ra mét trang kÕt qu¶ d¹ng HTML(Hypertext Markup Language) , nh thÕ kh«ng cÇn ph¶i bËn t©m r»ng c¸c Web browser cã thÓ xö lý trang Web hay kh«ng v× server ®· lµm mäi viÖc.C¸c tÝnh chÊt vµ u ®iÓm cña ASP
C¸c ASP script th«ng thêng ch¹y trªn c¸c server cµi IIS ( Microsoft Internet Information Server). Nhng ASPvÉn cã thÓ lµm viÖc víi ®a sè c¸c Web server trªn NT (Netscape, Oreilly ) sö dông ChiliSoft ASP, cã thÓ trªn mét sè hÖ ®iÒu hµnh kh¸c nh Linux, Sun
Solaris. Quy tr×nh thùc hiÖn mét cña ASP nh sau : khi mét user th«ng qua tr×nh duyÖt web göi yªu cÇu tíi mét file .asp ë server th× script chøa trong file ®ã sÏ ®îc ch¹y trªn server vµ tr¶ kÕt qu¶ vÒ cho browser ®ã. Khi Web server nhËn ®îc yªu cÇu tíi mét file .asp th× nã sÏ ®äc tõ ®Çu tíi cuèi file .asp ®ã, thùc hiÖn c¸c lÖnh script trong ®ã vµ tr¶ kÕt qu¶ vÒ cho Web brower lµ mét trang HTML. Thùc ra th× qu¸ tr×nh t¹o trang HTML vµ thùc thi script lµ hai qu¸ tr×nh riªng biÖt, script sÏ ®îc ASP engine dÞch vµ thùc thi tríc khi chuyÓn kÕt qu¶ cho Web server, tíi giai ®o¹n nµy c¸c m· HTML vµ kÕt qu¶ sÏ kÕt hîp ®Ó t¹o nªn mét trang Web. ViÖc nhóng HTML vµ script chØ ®Ó lµm ®Èy nhanh tèc ®é ph¸t triÓn øng dông mµ th«i.
Do m«i trêng ho¹t ®éng lµ m¹ng nªn mét script ASP khi ®îc viÕt ra cã thÓ sö dông ®îc ë mäi n¬i, kh«ng cÇn tr×nh biªn dÞch hay kÕt nèi. C¸c ASP script ®îc viÕt dùa trªn c¸c ng«n ng÷ híng ®èi tîng nªn rÊt tiÖn lîi, s½n cã c¸c object ®i kÌm nh: Request, Response, Application, Server, Session. TËn dông ®îc c¸c ActiveX components nh : Database access , Content linking, Collaboration Data Object, Browser capabilities,File Access, ... H¬n n÷a nã còng cã thÓ tËn dông ®îc components tõ c¸c nhµ ph©n phèi kh¸c, cung cÊp díi d¹ng c¸c file .dll
Nh÷ng tÝnh chÊt trªn ®em ®Õn cho ta nh÷ng lîi Ých x¸c thùc, cho phÐp t¹o ra c¸c øng dông Web th¬ng m¹i cã t¬ng t¸c chø kh«ng chØ ®¬n thuÇn lµ phæ biÕn c¸c néi dung tÜnh. VÝ dô nh ®Ó lu gi÷ l¹i th«ng tin vÒ c¸c kh¸ch hµng ®· ghÐ th¨m qua web site cña m×nh, c¸c web builder cã thÕ dïng asp ®Ó t¹o ra c¸c file c¬ së d÷ liÖu kh¸ch hµng lu trªn m¸y chñ, khi cÇn cã thÓ tiÖn tra cøu.
C¸c Objects & Components c¬ b¶n
Object lµ nh÷ng ®o¹n ch¬ng tr×nh cã kh¶ n¨ng thùc hiÖn nh÷ng c«ng viÖc c¬ b¶n nµo ®ã. Mçi object lµ mét kÕt hîp gi÷a lËp tr×nh vµ d÷ liÖu mµ cã thÓ xö lý nh mét ®¬n vÞ thèng nhÊt. C¸c ASP object cho phÐp chóng ta giao tiÕp t¬ng t¸c víi c¶ m¸y chñ lÉn tr×nh duyÖt, th«ng thêng chóng ta dïng vµi object trong c¸c scripts. C¸c object nµy ®· s½n cã nªn ta chØ cÇn nhí c¸ch sö dông chóng.
Request Object
Request object cho phÐp lÊy th«ng tin th«ng qua mét HTTP request. Chóng ta
cã thÓ dïng Request object ®Ó ®äc URL, truy cËp th«ng tin tõ mét
form, ®äc cookies vµ c¸c HTTP header.
Response Object
Ressponse object lµ ch×a khãa ®Ó göi th«ng tin tíi user, lµ ®¹i diÖn
cho phÇn th«ng tin do server tr¶ vÒ cho Web browser. Chóng ta cã thÓ viÕt
lªn mµn h×nh, t¸i ®Þnh híng c¸c trang, t¹o c¸c cookies sö dông
Response object.
Application Object
Sö dông Application object chóng ta cã thÓ ®iÒu khiÓn c¸c ®Æc tÝnh
liªn quan ®Õn ®Õn viÖc khëi ®éng vµ dõng øng dông, còng nh viÖc
lu tr÷ c¸c th«ng tin cã thÓ ®îc truy nhËp bái c¸c øng dông nãi
chung.
Server Object
Server object cho phÐp thùc thi mét chuçi c¸c t¸c vô ch¼ng h¹n nh ¸nh
x¹ mét ®êng dÉn ¶o tíi mét ®êng dÉn vËt lý vµ t¹o mét instance
cña mét componnet.
Session Object
Sö dông object nµy chóng ta cã thÓ lu th«ng tin liªn quan tíi tõng
user ®· truy nhËp vµo site cña b¹n.
Kh¸c víi c¸c object, c¸c ASP components lµ c¸c ®iÒu khiÓn ActiveX ghÐp nèi víi ASP ®Ó ®¬n gi¶n ho¸ c¸c thñ tôc th«ng thêng. Chóng ta sÏ lít qua sè components thêng ®îc sö dông.
Browser Capabilities
Component nµy cho phÐp x¸c ®Þnh tr×nh duyÖt cña user lµ g× vµ nh÷ng
tÝnh n¨ng nµo ®îc hç trî bëi tr×nh duyÖt ®ã.
Collaboration Data Objects (CDO)
CDO ®îc liªn kÕt chÆt chÏ vãi IIS SMTP server, CDO hç trî chóng ta göi
vµ nhËn email. VÝ dô víi CDO chóng ta cã thÓ xö lý mét form mµ kh«ng
cÇn nhËn biÕt ®ã lµ Perl script hay CGI.
Database Access
Mét trong nh÷ng tµi s¶n lín nhÊt mµ ASP cã ®îc lµ kh¶ n¨ng th©m
nhËp vµo c¸c c¬ së d÷ liÖu. ASP thêng lµm viÖc víi hai ngêi b¹n
®ång nghiÖp lµ Access vµ hÖ c¬ së d÷ liÖu SQL.Component rÊt h÷u Ých
gióp chóng ta cã thÓ kÕt nèi vµo mét c¬ së d÷ liÖu b»ng c¸ch sö dông
ActiveX Data Object ®Ó viÕt néi dung lªn mµn h×nh tr×nh duyÖt vµ t¹o
lËp hoÆc cËp nhËt c¸c file c¬ së d÷ liÖu.
File Access
File Access component chøa ®ùng c¸c ph¬ng thøc vµ thuéc tÝnh cã thÓ
sö dông ®Ó truy cËp vµo c¸c file trªn m¸y tÝnh. Th«ng qua component nµy
ta t¹o ra mét object lµ FileSystemObject gióp ta thùc hiÖn mèt sè c«ng
viÖc nh t¹o,®äc file,...
Ngoµi ra cßn cã nh÷ng components ®îc cung cÊp miÔn
phÝ hoÆc ph¶i mua tõ c¸c nhµ ph©n phèi kh¸c nh :
Microsoft ASP Component Catalog
(
Mét vÝ dô vÒ ASP script
C¸c phÇn trªn ®· gióp b¹n cã mét nh×n nhËn c¬ b¶n, môc nµy sÏ ®a ra mét vÝ dô ®¬n gi¶n ®Ó h×nh dung râ h¬n c¸ch viÕt m· lÖnh vµ thëng thøc h¬ng vÞ søc m¹nh cña ASP. Mét ®iÒu cÇn lu ý lµ ®Ó test ch¬ng tr×nh chóng ta cÇn ph¶i cµi bé IIS (Internet Information Server) hoÆc bé PWS ( Personal Web Server) , sau ®ã m¸y tÝnh cña chóng ta sÏ trë thµnh mét local server. HoÆc chóng ta upload c¸c file test lªn mét server nµo ®ã cho phÐp ch¹y c¸c asp script. Trong hai bé nµy ®Òu cã phÇn help híng dÉn ta vÒ c¸c hµm vµ lÖnh, nÕu c¸c hµm trong vÝ dô nµy b¹n cha n¾m ®îc th× cã thÓ tra cøu trong ®ã.
Cã mét ®iÒu g©y khã kh¨n cho chóng ta khi muèn t×m kiÕm c¸c m· lÖnh ASP ®ã lµ khi truy nhËp vµo mét site dïng ASP vÝ dô
http://msdn.microsoft.com/default.asp chóng ta kh«ng thÓ xem m· nguån cña nµy ®îc. Sù thùc nh÷ng th«ng tin b¹n xem trªn browser ®· ®îc default.asp xö lý vµ tr¶ vÒ m· Html. Mét vÝ dô kh¸c, nÕu b¹n thªm dßngCßn b©y giê chóng ta h·y më mét tr×nh so¹n th¶o nµo ®ã, Notepad ch¼ng h¹n vµ viÕt nh÷ng m· lÖnh sau:
<HTML>
<HEAD>
<TITLE>VÝ dô 1 vÒ ASP Script</TITLE>
</HEAD>
<BODY>
<% Response.Write "Chµo b¹n" %>
<BR> B©y giê lµ <%= Time %>
</BODY>
</HTML>

Sau khi viÕt xong ghi file nµy tªn lµ vd1.asp vµ ch¹y, trªn mµn h×nh browser sÏ xuÊt hiÖn dßng "Chµo b¹n B©y giê lµ ..." . Trong vÝ dô nµy ta dïng object Response vµ hµm Time cña VBScript ®Ó ®a th«ng tin ra mµn h×nh cña user. Chóng ta cã thÓ thÊy râ lµ asp ®· ®îc xö lý trªn server mét c¸ch dÔ dµng b»ng c¸ch chØnh l¹i ®ång hå m¸y tÝnh cña b¹n vµ ch¹y l¹i script trªn th× vÉn b¸o giê chuÈn v× giê ë ®©y lÊy ë m¸y chñ chø kh«ng lÊy giê ë m¸y client. VÝ dô trªn chØ lµ mét minh häa rÊt th« s¬ cho ASP, b¹n cã thÓ viÕt c¸c ch¬ng tr×nh kh¸c phøc t¹p h¬n nhiÒu.
Nh÷ng bµn luËn kh¸c vÒ ASP
PhÇn nµy chóng ta sÏ so s¸nh ASP mét sè ng«n ng÷ lËp tr×nh m¸y chñ kh¸c nh Perl, Python ,... Theo quan ®iÓm c¸ nh©n th× t«i thÝch ASP v× rÊt dÔ häc, m· lÖnh t¬ng tù nh VisualBasic , dÔ thùc hµnh thÝ nghiÖm. So víi häc Perl th× chóng ta mÊt Ýt thêi gian h¬n nhiÒu ®Ó häc ASP. Cã nhiÒu chuyªn gia cho r»ng ASP cã ®é b¶o mËt kÐm h¬n CGI, theo t«i cã thÓ lÝ gi¶i ®iÒu nµy lµ do ASP ch¹y trªn c¸c server víi hÖ ®iÒu hµnh m¹ng cña Microsoft, mµ Microsoft vÉn cã tiÒn lÖ lµ tÝnh b¶o mËt hÖ thèng kÐm, kh«ng thÓ b× ®îc víi UNIX. Nhng mÆt kh¸c ASP l¹i cã tÝnh n¨ng truy cËp c¬ së d÷ liÖu tuyÖt vêi , nhÊt lµ c¸c ®èi víi c¸c SQL server, nÕu so víi CGI th× ASP h¬n h¼n mÆt nµy. Thªm vµo ®ã mét trong nh÷ng u ®iÓm lín nhÊt cña ASP lµ nã ®· më ra mét cuéc c¸ch m¹ng vÒ ph¸t triÓn øng dông nhanh trªn nÒn Web (RAD), cho phÐp ngêi thiÕt kÕ cã thÓ ph¸t triÓn c¸c trang Web cã kh¶ n¨ng thùc thi mét c¸ch nhanh chãng vµ trùc quan mµ kh«ng cÇn ph¶i viÕt c¸c ch¬ng tr×nh CGI phøc t¹p n÷a. §i theo xu híng nµy ngµy nay cã mét sè c¸c ng«n ng÷ míi ®îc ®¸nh gi¸ cßn hay h¬n ASP nhiÒu nh lµ ColdFusion, Php3 (trªn Unix) vµ ch¹y æn ®Þnh h¬n rÊt nhiÒu, cßn tÝnh n¨ng truy nhËp c¬ së d÷ liÖu còng hay kh«ng kÐm ASP. ASP ®óng theo tªn cña nã lµ Active Server Pages cã nghÜa lµ hoµn toµn thùc thi trªn server, chø kh«ng trªn client, do ®ã tÊt c¶ c¸c lçi xÈy ra chØ cã thÓ bëi server hoÆc trong trang Web cã chøa c¸c script client (JavaScript,VBscript) mµ chØ mét sè lo¹i client nhÊt ®Þnh míi hiÓu ®îc ..
KÕt :
Trong ph¹m vi mét bµi b¸o kh«ng thÓ nªu ®Çy ®ñ mäi mÆt cña mét hÖ thèng nh ASP, hy väng qua bµi viÕt sÏ gióp c¸c b¹n míi t×m hiÓu biÕt thªm nhiÒu ®iÒu. Díi ®©y lµ mét sè tµi liÖu tham kh¶o rÊt tèt vÒ ASP mµ c¸c b¹n cã thÓ t×m ®äc
[1] MSDN Library / Active Server Pages & VisualBasic Scripting
[2]
http://www.developer.com[3]
http://www.activeserverpages.com[4]
http://www.zdnet.com/developer/[5]
http://www.builder.comPcLeHoan
1996 - 2002
Mirror :
http://www.pclehoan.com
Mirror :
http://www.lehoanpc.net
Mirror :
http://www.ktlehoan.com