You are on page 1of 124

Chng I Gii thiu Internet v Intranet........................................................................

3
1.1. Kin trc logic mng my tnh.........................................................................................3 1.1.1. Khi nim c bn v kin trc my tnh...................................................................3 1.1.2. Kin trc Peer-to-Peer v cc h thng tnh ton.....................................................4 1.1.3 Kin trc khch/ch c in.......................................................................................5 1.1.4. Kin trc khch ch da Web.................................................................................10 1.2. Nn tng ca cc Cng ngh mng................................................................................12 1.2.1. S tng tc vi Webserver....................................................................................12 1.2.2. X l thng tin phn tn trn nn tng c cc chng trnh d bin i................15 1.2.3. Truy xut ti c s d liu qun h........................................................................23

Chng II Ngn ng HTML........................................................................................27


2.1 Khi nim v ngn ng HTML.......................................................................................27 2.2 Lp trnh Web vi ngn ng HTML...............................................................................27 2.2.1 Cc thnh phn c bn ca html..............................................................................27 2.2.2 Cu trc tp HTML..................................................................................................28 2.3 Cc tag c bn trong HTML...........................................................................................28 2.3.1. Th gii thch..........................................................................................................28 2.3.2 Cc th nh dng vn bn.......................................................................................28 2.3.4 Mt s k t c bit trong HTML...........................................................................31 2.3.5 Cc tag dng thit k bng.......................................................................................32 2.3.6 Cc tag to Frame....................................................................................................33 2.3.7 Cc tag dng to Form.............................................................................................33

Chng III Cascading style sheets...............................................................................35


2.1 Cn bn v CSS (Cascading style sheets).......................................................................35 2.2 C php CSS...................................................................................................................35 2.2.1 Phn t chn Seclector..........................................................................................35 2.2.2 Cc phn t la chn lp gi ng..........................................................................39 2.2.3 Thuc tnh, miu t, qui tc......................................................................................41 2.3 B sung CSS vo ti liu HTML...................................................................................44 2.4. Cc m hnh trc quan...................................................................................................45

Chng IV Ngn ng kch bn Javascript...................................................................48


4.1. Gii thiu ngn ng kch bn Javascrip.........................................................................48 4.2. Ngn ng kich ban JavaScript.......................................................................................50 4.2.1 Kiu d liu..............................................................................................................50 4.2.2 Khai bo bin...........................................................................................................50 4.2.3. Cac toan t JavaScript ............................................................................................51 4.2.4. Cac cu lnh re nhanh va lp..................................................................................53 4.2.3. Cac i tng trong JavaScript...............................................................................59 4.2.4. Ham.........................................................................................................................66 4.2.5. Lp trinh hng i tng trong JavaScript...............................................................68 4.2.5.1 Tao mt i tng.................................................................................................68 4.2.6. Lp trnh vi cc i tng ca trnh duyt............................................................69 4.2.7. HTML Forms..........................................................................................................75

Chng V Active Server Pages...................................................................................89


5.1.Gii thiu cng ngh ASP...............................................................................................89 5.2 C php v thao tc c bn.............................................................................................89 5.2.1. Cch chn cc on m VBScript vo trong trang web..........................................89 5.2.2. Ch thch.................................................................................................................90 5.2.5. Cc ton t..............................................................................................................91 5.2.4. Hng v bin...........................................................................................................91 1

5.3. Cc cu lnh...................................................................................................................92 5.3.1. Lnh r nhnh..........................................................................................................92 5.3.2. Lnh lp xc nh....................................................................................................93 5.3.3. Vng lp khng xc nh........................................................................................94 5.4 Hm v th tc................................................................................................................96 5.4.1. Hm.........................................................................................................................96 5.4.2. Th tc....................................................................................................................96 5.4.3. V d s dng hm v th tc (Gia phng trnh bc 2 mt n s).......................96 5.4.2. MT S HM THNG DNG TRONG VBSCRIPT......................................97 5.4.3. ON M DNG CHUNG..................................................................................99 5.5. Tp cu hnh GLOBAL.ASA.......................................................................................100 5.5.1. Cc s kin............................................................................................................100 5.5.2. Khai bo i tng................................................................................................100 5.5.3. Mt file cu hnh Global.asa n gin..................................................................101 5.5.2. TP HP (COLLECTION) TRONG ASP..........................................................101 5.5.2.1. Khi nim...........................................................................................................101 5.5.2.2. Cch truy cp cc phn t trong tp hp............................................................102 5.6. X l cc FORM d liu............................................................................................103 5.6.1. M u..................................................................................................................103 5.6.2. S dng phng thc GET...................................................................................103 5.6.3. S dng phng thc POST.................................................................................104 5.7. Cc i tng ci sn trong ASP.................................................................................106 5.7.1. Cc i tng ASP................................................................................................106 5.7.2. i tng REQUEST...........................................................................................106 5.7.3. i tng RESPONSE.........................................................................................109 5.7.4. i tng APPLICATION...................................................................................110 5.7.5. I TNG SESSION.......................................................................................112 5.7.6. I TNG SERVER........................................................................................114 5.8. COOKIES....................................................................................................................117 5.8.1. Khi nim COOKIES............................................................................................117 5.8.2. Thit lp COOKIES..............................................................................................117 5.8.3. Ly gi tr ca COOKIES.....................................................................................117 5.8.4. Th mc COOKIES..............................................................................................117 5.8.5. Kim tra xem COOKIES c dng kha khng.....................................................118 5.9 Gii thiu ADO v cc kt ni c s d liu................................................................118 5.9.1 Gii thiu...............................................................................................................118 5.9.2 K ni vi c s d liu.........................................................................................118 5.9.3 Cc i tng ca ADO.........................................................................................119

Chng I Gii thiu Internet v Intranet


1.1. Kin trc logic mng my tnh
1.1.1. Khi nim c bn v kin trc my tnh
Vi s pht trin khng ngng v qui m v phc tp ca cc m hnh mng my tnh dn n s phc tp trong cng ngh vn hnh ca cc mng ny, v hiu c s phc tp ny l yu t cn thit cho php t chc bo v hiu qu ngun ti nguyn thng tin. Cng ngh vn hnh ca bt k h thng no u ph thuc vo kin trc miu t cc thnh phn ca cng ngh, cc chc nng v mi quan h ca chng. Rt kh hiu v phn tch kin trc ca h thng phc tp mt cch trn vn. gim phc tp ca s phn tch, mt kin trc s c cn nhc cc mc khc nhau. iu ny rt c ch xem xt mi mc vi cc chc nng tru tng n i hit tit ca s thc thi cc thnh phn ca kin trc. Khi nghin cu kin truc cua cac mang may tinh, vic phn bit gia nhng kin truc vt ly va kin truc logic rt cn thit. Kin truc vt ly miu ta cu truc, chc nng va nhng mi quan h trung gian gia cc giao thc thc thi tai tng di va cac tng gia trong m hinh phn lp chun cua s tng tc mang (m hinh tham chiu OSI, mt cch c th giao thc ca tng vt l, lin kt d liu, mng, giao vn v tng phin). Vi vy, kin truc vt ly khng chi phu thuc vao kin truc, chc nng va mi quan h qua lai cua phn cng mang, ma con phu thuc s thc thi phn mm cua cac giao thc tai tng thp va tng gia cua m hinh OSI. c th phn tich chi tit v kin trc vt l, cn phi xem xt ti tt c cc mc, tng ng vi tng vt l, lin kt d liu, mng, giao vn v phin ca m hnh phn lp chun.

Hnh. 1.1: Mi quan h gia lp OSI v kiu kin trc mng

Kin truc logic miu ta cu truc, nhim vu va mi quan h ca phn mm thc thi cac giao thc tng trn, c bit cac giao thc tng trinh din va tng ng dung. Kin trc ny mang li cng ngh tch hp v hp nht ca mng my tnh v c th xy dng cc mc tru tng khc nhau ca kin trc vt l. Hin nay, c mt vi loi kin trc mng logic nh sau:

Kin truc ngang hang Kin truc khach/chu c in Kin truc khach chu da vao Web

S xut hin cua cc m hinh u lin quan n cac giai oan khac nhau cua s phat trin h thng mang may tinh. S la chon chinh xac m hinh cho kin truc logic cua mang may tinh cho phep nha thit k mang ap ng nhng yu cu v tinh hiu qua, tin cy bao v nhng ngun tai nguyn mang, s uyn chuyn thit lp mang va hn na o la chi phi nho nht cho vic xy dng va quan tri.

1.1.2. Kin trc Peer-to-Peer v cc h thng tnh ton


Bc u tin trong s tin trin cc h thng tnh ton xut hin t nm 1940 n 1970,v trong thc t, n quay tr li ngay sau khi chic my tnh u tin c pht minh ra. Theo nguyn tc, mi mt h thng tnh ton ti thi im ny u da vo vic s dng chia s ca my tnh a ngi dng, khi m my tnh cha xut hin. Kin trc ca nhng h thng tnh ton ny, vn hnh trong ch t tr, c tp trung vi cc thit b u cui kt ni n my tnh trung tm (Hnh. 1.2).

Hnh. 1.2: Kin trc u tin ca h thng tnh ton Tuy nhin, nu cc my tnh c kt ni bi cc lin kt truyn thng to thnh mt mng, mng nh vy c mt kin trc ngang hng, trong khng c cc my tnh tn hin cung cp ton b ngun ti nguyn ca chng cho cc my tnh khc trong mng s dng chung. V vy, kin trc tp trung thuc v danh mc ca mt h thng tnh ton t tr da trn vic s dng chia s mt my tnh ngi dng, trong khi kin trc ngang hng thuc v danh mc mng my tnh bao gm cc my tnh c vai tr nh nhau, khng tn ti my tnh tn hin cp ngun ti nguyn ca chng cho vic s dng chung. 4

Trong kin trc tp trung, tt c cc ngun ti nguyn ca h thng tnh ton, bao gm thng tin, c tp trung trong my tnh trung tm, c bit nh l my tnh ln (my tnh ln l mt thnh phn tp trung ca h thng my tnh). Cc thit b u cui c kt ni n my tnh tp trung bng cp c s dng nh phng tin chnh truy cp n nhng ngun ti nguyn thng tin. V mt thit b u cui l mt thit b tng i n gin, n khng i hi bt k thao tc c bit no thit lp hay yu cu cu hnh phn mm c thc hin bi ngi dng cui, khi m khng c phn mm c lu tr trong thit b u cui. Vic iu khin cc thit b u cui c thit lp ch yu (cetrally) t my tnh ln, v tt c thit b u cui u c cng kiu. V vy, m bo c chng trnh chy trn mt thit b u cui bt k c th chy trn tt c cc thit b u cui trong cng mt cch. V mt lu tr d liu va bao mt x ly d liu, s thun li chinh cua kin truc tp trung o la mi quan h n gian cua vic xy dng va quan tri h thng bao mt thng tin. iu nay dn ti s tp trung ngun tai nguyn, vi iu o mang lai s d dang bao v rt nhiu i tng nu nhng i tng nay c xac inh mt ni hn la chung c phn b nhng vi tri khac nhau Mc du co nhiu thun li, nhng h thng tinh toan u tin co s iu han ch nh thiu s uyn chuyn h thng, khng thun li s dung i vi ngi s dung cui va chi phi cao. Khi s dung nhng h thng tinh toan vi kin truc tp trung bt u mt dn i tm quan trng, mng ngang hng tr nn ph bin hn, bi v chi ph ca cc mng ny kh thp. Tuy nhin, cc mng ngang hng hin nay kt ni cc PC hn nhng my tnh a ngi dng. V vy, mt thuc tnh chnh ca mng ngang hng l thiu vng cc my tnh tp trung cung cp ngun ti nguyn ca chnh n cho vic s dng chung. Nhng nhc im quan trng ca nhng mng ngang hng l s thc th, bo mt v s an ton mc thc ca chng, cng nh s phc tp trong qun tr. Thm vo , nhng nhc im ny tng ln khi s lng cc my tnh trong mng tng. V vy, kin trc mng ngang hng thch hp cho vic kt ni s lng my tnh t vi yu cu v s an ton v kh nng x l d liu thp.

1.1.3 Kin trc khch/ch c in


Nhng nhc im ca h thng my tnh tp trung v cc mng my tnh ngang hng gn y c loi b bi cu trc ca cc h thng my tnh da trn kin trc khch/ch. Kin trc ny xut hin t khong nm 1980, nh du giai on 2 trong tin trnh cng ngh tnh ton. c trng ca ca giai on ny l s phn quyn kin trc ca h thng my tnh t tr v s tng kt ca chng trong cc mng my tnh ton cu. Kin trc phn quyn kt hp vi nhng h thng tnh ton u tin c th l kt qu ca s xut hin cc my tnh c nhn, khc vi cc thit b u cui n, nhng my tnh c nhn c th thc hin rt nhiu cc chc nng m trc y do my tnh trung tm m nhim. Kt qu ca s phn quyn ny l c th to nn cc h thng my tnh ton cu hoc cc b phn tn bao gm cc my tnh c nhn v cc my tnh cung cp ti nguyn ca n cho cc my tnh khc trong mng dng chung. Cc my tnh cung cp ti nguyn ca n c gi l my ch cn nhng my tnh s dng ti nguyn c chia s gi l my khch. Theo kin trc h thng my tnh phn tn nh vy c bit n nh l kin trc khch/ch (Hnh. 1.3). Cc my tnh c nhn c vai tr my khch cng c gi l cc trm lm vic ca mng.

Hnh. 1.3: Kin trc khnh ch Mt my ch c trng c miu t bi loi ti nguyn m n qun l. V d, nu ngun ti nguyn l c s d liu th my ch c coi nh l my ch c s d liu, mc ch chnh ca n l phc v cc truy vn ca my trm cho vic x l d liu. Nu ngun ti nguyn l mt h thng tp, my ch c bit n nh l my ch tp. v mc ch ca n l chuyn cc tp ti cc my trm. Ni chung, cc my ch c kh nng cung cp cc ngun ti nguyn s dng chung, bao gm c s d liu, cc h thng tp v mt s dch v khc c thc hin bi s cc chng trnh my ch. Thm vo , cc my ch c th cung cp truy cp ti cc thit b ngoi vi (v d, my ch in n c th cung cp vic chia s truy cp n mt my in). Chng ta phn bit gia cc m hnh kin trc khch, mi m hnh ny tng ng s phn loi thch hp ca cc thnh phn ca kin trc phn mm bn trong cc my tnh mng. Cc thnh phn phn mm phn phi c phn bit bi chc nng m chng c kh nng cung cp. Cc chc nng ca bt k mt ng dng phn mm no c th c chia thnh 3 nhm sau y:

Cc chc nng lin quan ti u vo (input) v u ra (output) Cc chc nng ng dng, c th ti tng vng kin thc (mt vng chuyn gii quyt mt vn no ) ca ng dng Cc chc nng qun l d liu Data mining

Bt k mt ng dng phn mm hin nay c th c biu din bi mt cu trc bao gm 3 thnh phn sau:

Cc thnh phn trnh din, m n thc thi giao din ngi dng Cc thnh phn ng dng, thc thi cc chc nng ng dng Cc thnh phn cung cp truy cp ti cc ngi ti nguyn thng tin, thng tin

Cc m hnh ca kin trc khch ch di y c xc nh, tng ng vi cc phng thc phn phi ca 3 thnh phn phn mm chnh gia cc trm lm vic v my ch mng:

Ch c d liu c lu tr trn my ch (Hnh. 1.4). 6

Hnh. 1.4: M hnh truy cp n d liu t xa

B sung d liu, nh qun l ti nguyn c xc nh trn my ch, v d mt h qun l c s d liu (Hnh. 1.5).

Hnh. 1.5: M hnh my ch iu khin d liu

D liu, qun l ti nguyn, v cc thnh phn ng dng c tp trung trn my ch (Hnh. 1.6).

Hnh. 1.6: M hnh khch/ch hai lp

Cc thnh phn ng dng c lu trn my ch, trong khi d liu v qun l ta nguyn c lu trong my ch khc (Hnh. 1.7).

Hnh. 1.7: M hnh khch/ch ba lp M hnh ca kin trc khch ch u tin lu tr d liu trn my ch, khng cung cp tnh nng hiu qu cao, v thng tin c x l trn cc my trm v cc tp cha thng tin ny phi c truyn cho vic x l t my ch trn ton b mng. Vic truyn khi lng ln d liu trn ton mng dn ti s trao i thng tin vi tc thp. Tip theo, iu ny c th 7

dn ti qu ti trn mng. Chnh v l do ny, m hnh truy xut d liu t xa ch c th c s dng cho cc mng kh nh, vi vic x l s lng d liu t. Hnh 1.5 ch ra m hnh th 2 ca kin trc khch ch, trong thng tin c lu tr trn my ch, l h thng qun l ti nguyn (v d DBMS). y l m hnh my ch iu khin d liu. Cc thnh phn trnh din v ng dng c kt hp v thc thi trn my trm, h tr cc chc nng hin th v d liu u vo cng nh cc chc nng ng dng. Theo quy c, vic truy cp n cc ngun ti nguyn thng tin c cung cp vi cc thao tc ca ngn ng c bit (v d, SQL trong trng hp ca cc c s d liu) hoc gi cc chc nng cha trong cc th vin chng trnh chuyn dng. Cc cu truy vn to ra cc ngun ti nguyn thng tin c gi ti cc trnh qun l ti nguyn. Trnh qun l ti nguyn x l cc truy vn v tr v cc khi d liu cho my trm. u im ca m hnh my ch iu khin d liu so vi m hnh truy cp d liu t xa l thng tin t c truyn trn mng hn. l nh c vic la chn cc n v thng tin c yu cu t cc tp khng c thc hin trn my trm m c thc hin trn my ch. Ni chung, ti thi im hin ti, c rt nhiu cng c pht trin, cung cp pht trin ng dng nhanh, s dng mt giao din chun, thao tc vi DBMS hng SQL. iu ny cung cp s thng nht, s thao tc gia cc thnh phn, v rt nhiu s la chn cc cng c pht trin phn mm. Nhc im chnh ca m hnh iu khin d liu l khng c danh gii r rng gia thnh phn trnh din v thnh phn ng dng. iu ny dn n cn tr s pht trin tip theo ca h thng tnh ton c kin trc xy dng da vo m hnh ny. Hn th na, s thay i mt thnh phn yu cu s thay i ca ton b h thng Ton b nhng thun li v bt li ca m hnh my ch iu khin d liu c lit k trn, c th kt lun rng da vo m hnh ny l ph hp nht xy dng nhng h thng tnh ton hng x l ni dung thng tin va phi, m ni dung thng tin ny khng tng theo thi gian. V vy, phc tp ca cc thnh phn p dng ng dng s khng cao. So vi m hnh my ch iu khin d liu, m hnh khch ch hai lp thun tin hn iu hnh. M hnh ny c pht trin vi gi thuyt rng, vic thc hin x l trn my trm c gii hn i vi cc chc nng trnh din, trong khi cc chc nng ng dng v truy cp d liu c thc hin pha my ch. Nhng chc nng ng dng c th c thc hin trong cc chng trnh ring r hoc trong cc th tc lu tr, c bit n nh l cc th tc c s d liu. Nhng th tc ny c lu tr trong c s d liu v c thc hin trn my ch, ni thnh phn iu khin truy xut d liu, tng ng nhn ca DBMS cng hot ng. Ngc li vi m hnh my ch iu khin d liu, li ch ca my ch tch hp rt r rng: n gin, hiu qu cao, qun tr tp trung, v v vy gim bt vic s dng cc ngun ti nguyn mng. T nhng li ch ny, c th i n mt kt lun l m hnh my ch tch hp l ti u cho cc mng ln hng v x l s lng ln thng tin, hoc s l m hnh mong i trong thi gian ti. Khi cc thnh phn ng dng ngy cng phc tp v s dng nhiu ngun ti nguyn, mt my ch ring bit (my ch ng dng) c th c s dng. Chnh t nhu cu ny em li m hnh ba lp ca kin trc khch ch. Lp u tin chnh l my trm, lp th l my ch ng dng, v lp ba chnh l my ch iu khin d liu. Kin trc khch ch l hai lp khi cc thnh phn ng dng c t trn my trm cng vi thnh phn trnh din (Hnh. 1.4, Hnh. 1.5), hoc trn my ch cng vi trnh qun l ti nguyn v d liu (Hnh. 1.6). 8

Bn trong khung ca my ch ng dng, mt vi chc nng ng dng c th c thc hin, mi chc nng thit lp mu cc dch v ring bit, cung cp mt vi chc nng cho bt k chng trnh c th v mun s dng chng. C mt vi my ch ng dng, mi my ch hng v tp cc dch v xc nh. Bt ki mt chng trnh no s dng dch v u c xem nh l my ch. Chi tit thc hin cc chc nng ng dng trn my ch ng dng c n i i vi my trm. Cc truy vn nhn t cc ng dng ca my trm c t trong hng i kt hp vi cc my ch x l ng dng, tch v truyn truy vn cho vic x l theo ch u tin. My trm c th c nhiu hn mt thnh phn trnh din. Thnh phn trnh din c th h tr giao din cho ngi dng cui (ti thi im , n hot ng nh thnh phn trnh din); n c th cung cp chuyn d liu t cc thit b; v c th l my ch ng dng. Cui cng cho php thchin cc h thng ng dng, bao gm cc my ch ng dng ca vi mc. Kin trc ca h thng nh vy c th c xem nh l mt nhn bao xung quanh bi cc vng ng tm. Nhn bao gm cc my ch ng dng, m cc chc nng ng dng c bn c thc hin. Tp biu tng nhn ca cc my ch ng dng hot ng nh cc my trm lin quan n my ch ca mc trong. Khng c s gii hn s cc mc ca cc my ch ng dng. S hin din ca cc ng rnh gii gia cc thnh phn ca my ch phn mm trong kin trc khch/ch v s phn phi cn bng ca cc thnh phn trong cc my tnh ca mng cho php mc nh vy mm do khng c hiu lc trong kin trc ngang hng. Nh vy, ngun ti nguyn dnh mc cao ca s thc thi v kh nng m rng v ci tin chc nng ca h thng c th c thc hin. Kin trc mng khch/ch, xut hin giai on hai ca s tin trin cc cng ngh mng my tnh cn c gi l kin trc khch/ch c in. Sau y l mt s m t chc nng ca m hnh ny:

My ch khng sinh ra thng tin cui cng m l d liu, d liu ny tuy thuc vo s bin dch bi cc my trm Cc thnh phn ca h thng n dng c phn tn trong cc my tnh trn mng. Cc giao thc ring, khng tng thch vi TCP/IP, c th c s dng gia cc my trm v my ch. Mi my tnh mng c hng thc thi cc chng trnh cc b.

Chc nng cui cng ny sinh l bo mt thng tin. Khi ch cc chng trnh cc b c thc hin trn my tnh, s di chuyn cc chng trnh trn mng trong sut qu trnh x l cc truy vn c thc hin bi my trm n my ch khng xut hin. Kh nng thc hin cc chng trnh gy tc hi hoc s ly nhim my tnh s gim i V mt lu tr d liu v x l bo mt, kin trc khch/ch c s bt li sau:

Phn phi vt l ca cc thnh phn ca cc chng trnh ng dng v s hn lon, khng tun th qui tc ca cc h thng tnh ton lm phc tp xy dng v qun tr h thng bo mt Mt phn bo v ti nguyn thng tin lu trn my tnh c nhn c miu t bi v ph thuc tng im yu. Vic s dng cc giao thc ring cho vic chuyn i d liu gia cc my tnh yu cu vic pht trin cc cng c bo mt ring nh vy dn n tng chi ph.

Vi vic mt cc thit lp phn mm ca cc my trm, thc hin cc th tc phc tp cho vic kt ni li v phi hp my tnh ny vi phn cn li ca h thng l cn thit, dn n s tng thi gian phc hi li.

1.1.4. Kin trc khch ch da Web


C rt nhiu iu bt li i vi cc mng my tnh da theo kin trc khch ch c in, nhng bt li ny c th c loi b bi bng cch kt hp cc c tnh tt nht ca cc h thng tp trung v cc h thng khch ch c in. Kin trc mi ca cc mng my tnh c gi l kin trc Intranet. N cn c gi l kin trc Web hay l kin trc khch ch da vo cng ngh Web. Kin trc ny l kt qu nghin cu trong thi gian di v pht trin trong lnh vc p dng Internet vo trong mng cc b. S xut hin ca kin trc Intranet trong nm 1993 c cn nhc cho vic bt u ca giai on 3 trong s tin trin ca cc h thng mng my tnh. Chc nng chnh ca kin trc Intranet chnh l cc chc nng b loi b trong m hnh my tnh trung tm trong giai on hai ca s tin trin cc h thng tnh ton. Nn tn ca kin trc mi ny l cng ngh. Cng ngh Web cn c gi l cc vn bn Web, m cc vn bn ny c lu trn my ch v c bin dch v hin th bi chng trnh duyt hot ng trn my trm workstations (Hnh. 1.8). Cc chng trnh duyt c gi l trnh duyt Web.

Hnh. 1.8: Kin trc khc/ch da vo cng ngh Web Ni cch khc, mt ti liu Web biu din cc ti liu siu media, bao gm cc trang Web c ni vi nhau bi cc lin kt. Mi mt trang Web c th cha cc i tng v cc lin kt ti cc trang Web khc. Theo qui lut nh, mt trang Web c biu din bi mt tp vn bn, vi nh dng xc nh m ch r cc lin kt ti cc i tng khc v cc vn bn Web, c xc nh trn cc host mng khc nhau. Thc ra, v bn cht mt vn bn Web cha ch mt trang Web nhng hp l nht l n c th bao gm s lng ln cc trang, m cc trang ny thuc v cc vn bn Web khc nhau. Mt trang Web c th cha vn bn v hnh nh. Khng ging nh vn bn giy, trang Web c th l tng tc vi cc chng trnh my tnh v c th cha cc lin kit n nhng i 10

tng khc. Bt k link no cha trong mt trang Web c nh du bi mu v/hoc du gch chn. H thng cc siu lin kt dnh c da vo yu l cc vng la chn ca ti liu, c biu din bi text, nh, hot ng nh cc lin kt n cc i tng c kt ni logic n chng. V vy cc i tng lin kt c th c lu tr ti v tr bt k no trn mng Mt trang Web c th cha lin kt n mt s kiu i tng sau:

Cc phn khc ca mt ti liu Web Cc ti liu Web hoc cc ti liu c nh dng khc (v d ti liu bng tnh, son tho), m cc ti liu ny c th c xc nh trn bt k my tnh no trn mng Cc i tng Multimedia, bao gm cc nh, m thanh v video. Mt chng trnh s c thc thi trn my ch sau kch vo lin kt Mt chng trnh c truyn ti cho my trm bng trnh duyt t my ch v c bin dch v thc thi trn my trm Cc dch v khc, bao gm e-mail, sao chp cc tp thng qua mng, tm kim thng tin vv..

T nhng nh ngha v ti liu Web, d dng cho cc chng trnh iu hng, thc hin trn cc my trm , khng b hn ch hin th cc trang Web v thc hin truyn ti cc i tng khc. Chng trnh iu hng c th l chng trnh thc s trn my ch v thng dch hoc chy cc mdun c kh nng thc thi lin quan ti ti liu Web trn my trm Vic truyn cc ti liu v cc i tng t my ch n my trm sau khi cc yu cu t trnh duyt c x l bi mt chng trnh hot ng trn my ch, chng trnh ny c gi l my ch Web. nhn c cc ti liu hoc cc i tng t my ch Web, trnh duyt gi mt truy vn thch hp t cho my ch. Nu c quyn hn, mt kt ni logic c thit lp gia my trm v my ch. Sau , my ch x l truy vn, truyn kt qu v cho trnh duyt Web v hy b kt ni. My ch Web hot ng nh l b tp trung thng tin lm nhim v truyn thng tin t cc ngun ti nguyn khc nhau v biu din chng cho ngi s dng trong mt cch thc ng nht. Trnh duyt cho php ngi s dng xem thng tin m khng ph thuc vo nh dng ca thng tin. kt ni kiu d liu phn tn v kiu d liu khc, cc ti liu Web cho php cn nhc thng tin vi yu cu y chi tit, lm n gin ha phn tch cc ni dung thng tin. iu ny rt hp l tp trung quan tm ti kha cnh quan trng ca d liu, v nghin cu ti nguyn la chn mt cch chi tit. Kin trc Intranet c mt vi u im: The following distinctive features of Intranet architecture should be emphasized:

Thng tin cui cng dnh hin th cho ngi dng xem bng chng trnh duyt c to trn my ch Tt c nhng ngun ti nguyn v h thng ng dng c tp trung trn my ch Cc giao thc ca b giao thc TCP/IP s c s dng cho vic trao i d liu gia my ch v cc my trm iu khin tp trung khng ch trn my ch m cn cho my trm rt thun li, v chng c chun v mt phn mm Cc my trm c th thc thi cc chng trnh t nhng my tnh khc trn mng 11

Tt ca nhng chc nng nay, loai tr chc nng cui cung, tr giup giai quyt vn bao mt thng tin. S tp trung tt ca ngun tai nguyn thng tin va cac h thng ng dung trn may chu lam n gian trong vic xy dng va quan tri cua h thng bao mt va bao v cac i tng cung mt ni se c thc hin mt cach d dang hn so vi kin truc phn tan. Vic s dung chun m TCP/IP cho vic trao i thng tin gia cac may tinh trong mang dn n vic thng nht cac phng thc tng tac gia cac tram lam vic va may chu. iu nay khng mang lai li ich giai quyt vn cua vic cung cp trong i thng tin an ton gia cc ng dng my ch trn cc my tnh. Gii php cho an ton tng tc pht trin cho tng mnh tnh s thch hp i vi tt c ng dng. S thun li ca iu khin tp trung ca cc my trm t my ch lm gim cc li khng mong i c th xy do ngi dng, iu hnh, v qun l. Nhng li nh vy l mt trong s e da chnh i vi n ton thng tin, dn n s ph hoi. V d, vic nhp d liu u vo khng chnh xc gy ra ngng chy chng trnh. Nhng li ny to ra ch yu c th b khai thc. Trong kin trc Intranet, gi x cc chng trnh x l thng tin phn tn vn c s dng t my ch c th c thc hin trn my trm. H thng nh vy ca vic x l phn tn cho php tp trung tt c cc h thng ng dng trn my ch. Tuy nhin, kh nng cc chng trnh thc hin t my ch trn my trm sinh ra nhiu s e da mi t an ton thng tin (v d, s e a l thay th chng trnh truyn t my ch [1,14]. V vy, kh nng di tr cc chng trnh b sung thm nhiu yu cu duy tr bo mt trn mng.

1.2. Nn tng ca cc Cng ngh mng


1.2.1. S tng tc vi Webserver
1.2.1.2 Miu t tng qut
Ngy nay, hu ht cc phng thc ph bin tng tc vi Webserrver chnh l kin trc khnh/ch, da vo cng ngh Web. Vic x l trao i thng tin c s dng trong cc cng ngh Web khng khc so vi vic x l trong kin trc khnh/ch chun, m chng trnh my ch iu khin vic x l cc cu truy vn t cc chng trnh khch. Trong vic x l trao i thng tin s dng trong cc cng ngh Web, cc chng trnh khch c thc thi trong cc chng trnh nh hng Web m c tm thy trn cc my trm, cng nh cc chng trnh ph tr hot ng nh cc trm. Cc trnh duyt Web c s dng bin dch v hin th cc ti liu Web c lu tr trn my ch, cng nh truy cp ti cc dch v c bit khc (Hnh. 1.9), nh: Sao chp cc tp t my ch v my trm v ngc li (FTP) Cung cp mt phin o trn my ch (Telnet) Truy cp thc n a cp ti cc ngun ti nguyn my tnh (Gopher)

12

Hnh. 1.9: Lc tng qut ca s tng tc gia trnh duyt v my ch Vic truy cp ti cc dch v c bit ny l kh thi, v trn thc t, ngay t u, cc chng trnh nh hng Web c thit k nh l cc chng trnh a giao thc m c th cung cp mt giao din chung cho php truy cp n rt nhiu cc ngun ti nguyn mng. Hin ny, cc chng trnh nh hng Web ph bin nht hin nay l Firefox, Internet Explorer, Opera, Mozilla, Netscape navigator, Cc chng trnh Web ph tr c s dng thu c d liu thng k t my ch Web cho vic nh ch s thng tin cha trong my ch Web, hoc cho mc ch cp nht cc c s d liu cho cc c ch tm kim. Trong lc tng tc vi cc cng ngh Web, my ch Web hot ng nh mt chng trnh my ch chnh. Chng trnh ny c chy trn my ch v thc hin x l cc truy vn n t cc trm Web. S tng tc gia cc trm Web v cc my ch Web c thit lp theo tp cc lut c xc nh bi giao thc truyn siu lin kt (HTTP). Khi thc thi, my ch Web iu khin mt cng logic trn mng, m cng ny c gn mc nh bng 80, v coi nh bt k cc thng bo no gi ti cng ny c chuyn ti my ch Web. Khi nhn c mt truy vn t Web client, my ch Web thit lp truyn thng s dng TCP/IP v trao i thng vi Web client theo giao thc HTTP. Nu Web client yu cu truy cp thng tin c bo v trn my ch Web, my ch Web c th yu cu nh danh ngi dng v mt khu. Cc ti liu Web c bo v s ch hin th i vi nhng ngi dng c cc quyn truy cp thch hp. Cc ti liu nhn c bi trnh duyt t my ch Web tng ng vi cc tp vn bn c vit bng ngn ng c bit, gi l ngn ng nh du siu vn bn (HTML). Ngn ng ny bao gm tp cc qui nh v nh dng vn bn (trong bt k mt ngn ng no) v cch hin th trong ca s ca trnh duyt Web. Vic nh du xc nh nh dng, cng nh iu khin cch lin kt ti bt k i tng v ha s c hin th. Cng vi ngn ng nh du, cc chng trnh c vit bng ngn ng kch bn JavaScript v VBSCript c th c chn vo bn trong ti liu Web v trnh duyt Web s bin dch khi np v hin th ti liu Web. truy cp ti thng tin m my ch khng th x l trc tip (v d: truy cp c s d liu), mt h thng cng phn mm s c s dng. Cng phn mm, nhn truy vn t my ch Web, x l truy vn, hoc hot ng nh proxy gia my ch Web v my ch khc (v d: my ch DBMS). Cng phn mm pht trin theo cc chun c bit xc nh cc phng thc my ch c th gi cc ng dng hoc cc hm t cc th vin lin kt ng,v hn 13

th na cch thc ca trao i thng tin vi i tng chng trnh. Giao din cng chung (CGI-Common Gateway Interface) l mt trong nhng cc chun ph bin ny.

1.2.1.2 X l truy vn t Web Client


Cc bc x l bi my ch khi x l truy vn nhn c t Web Client: 1. Trnh duyt Web hoc Web client khc, gi truy vn n my ch Web, yu cu ti nguyn thng tin. Truy vn ny c gi trong nh dng HTTP, trong khi a ch ca ngun ti nguyn yu cu c xc nh trong nh dang URL 2. Sau khi nhn c truy vn t my trm, my ch Web xc nh s tn ti ca cc ngun ti nguyn c yu cu trong ngun ti nguyn cc b, c ngha l trong ngun ti nguyn m my ch iu khin. 3. Nu ngun ti nguyn yu cu c sn, my ch Web kim tra quyn truy cp vo ngun ti nguyn ny v nu quyn truy cp khng vi phm, my ch Web tr v ni dung ca ngun ti nguyn n cho Web client. 4. Nu yu cu ca Web client can thip cc quyn truy cp ti nguyn, my ch Web t chi truy vn v tra v cnh bo thch hp cho client. 5. Nu ngun ti nguyn yu cu khng nm trong ngun tai nguyn cc b trn my ch Web, my ch xc nh thng tin v v tr ngun ti nguyn t cc tp cu hnh ca n, k c vic xy dng li (Hnh. 1.10).

Hnh. 1.10: nh hng truy vn 6. Nu may chu Web h tr cy ao cua nhng may chu Web khac, vic tim kim se c inh hng ti ngun tai nguyn cn thit. 7. Nu may chu Web c s dung nh may chu uy quyn, mt mt no hoat ng nh la may chu Web cho cac may tram gi truy vn ti, mt khac no hoat ng nh tram Web, gi truy vn ti cac may chu (Hnh. 1.11).

14

Hnh. 1.11: S dng my ch Web nh my ch proxy 8. Sau khi tra v thng tin yu cu cho may tram, may chu Web huy bo kt ni. May chu Web co th c s dung giai quyt cac vn ln. in hinh, cac chc nng sau c h tr trn cac may chu:

H tr c s d liu vn ban phn cp, x ly truy vn va iu khin truy cp ti thng tin t cac chng trinh phia client Tin x ly d liu trc khi tra li mt truy vn Tng tac vi cac chng trinh m rng va cac may chu khac, vi du, cac c ch tim kim

Phn ln cac m hinh may chu Web nh Netscape's Enterprise Server, Microsoft's Internet Information Server b sung giao thc ma hoa Secure Socket Layer (SSL), duy tri s ring t, tnh toan ven, tinh xac thc cua d liu truyn trn mang. Giao thc SSL cung c b sung trong cac trinh duyt Web. Chc nng nay cung cp mt mi trng an toan cho vic s dung cng ngh Web trong cac mang may tinh.

1.2.2. X l thng tin phn tn trn nn tng c cc chng trnh d bin i


Mt trong cac chc nng quan trong cua kin truc Intranet o la vic x ly thng tin phn tan trn nn tng ca nhng chng trinh d bin i. Chng trinh hng Web chay trn may tram khng ch hin thi cac trang Web va thc hin cac chuyn tip ti cac ngun tai nguyn khac m no co th kich hoat cac chng trinh trn may chu, thng dich va thc thi chung, khi ti liu Web c thc thi nhng i hi. Cac chng trinh nay c truyn cung vi tai liu t may chu. Kiu x ly thng tin phn tan nay am bao rang bc cua toan b h thng ng dung trn may chu Co 3 kiu chng trinh chinh co th c kt hp vi tai liu Web va truyn ti may tram thc thi:

Java applet c thc thi bi cng ngh Java Cac chng trinh c vit bng cac ngn ng kich ban nh JavaScript, VBScript, VRML Cac thanh phn ActiveX, lin quan ti cng ngh ActiveX

15

Thc t l, tn ti mt vi loi chng trnh d bin i c th c miu t bi cc kh nng chc nng khc nhau ca chng, v hn th na bi s cnh tranh gia cc cng ty trong lnh vc chng trnh v cc cn ngh mng nh Sun Microsystems, Netscape v Microsoft corporations, v cc cng ty khc.

1.2.2.1 Cng ngh Java


Java c thit k bi Sun Microsystem vao nhng nm 1990, p ng i hi cc chng trnh my tnh hng mi trng mng v tch hp cng ngh Web. ng lc pha sau cng ngh Java a ra cc yu cu kt hp ca s d bin i, c lp phn cng v cc nn tng, an ton v tin cy trong vic x l thng tin. Java l ngn ng lp trnh hng i tng da vo nn tng ca ngn ng C++, loi b i nhng chc nng khng cn thit, b sung thm chc nng cung cp s an ton v tin cy ca thao tc in ton phn tn. C rt nhiu chc nng trong Java vay mn t ngn ng i tng C v Samlltalk. gim phc tp lp trnh v s li trong m, Java a ra s chnh xc ca kiu d liu, hng i tng mt cch cht ch. Tt c phn t d liu c lu trong cc i tng, v tt c hm bao gm cc phng ca vi i tng. Kiu n v thng tin chnh xc cho php pht hin li kt ni kiu d liu khng tng thch ti bc bin dch. Hng tip cn module i vi thit k chng trnh, thc thi trong ngn ng v s n gin ca ngn ng, khng nhng cho php pht trin nhanh cc chng trnh mi m cn cp nht ng dng c vit trc v kim tra trong Java. Hn th na, Java a ra vic cp nht hiu qu cho cc chng trnh c c vit bng ngn ng lp trnh khc. Vic b sung cc phn t ngn ng chun, Java bao gm s cc th vin, t c th xy dng cc h thng tnh ton vi mi phc tp. Tp hp cc chun th vin c th c b sung lin tc vi cc hm mi. My o Java, n thc th cc chng trnh Java thng qua b thng dch, c lp phn cng v h iu hnh. X l thng tin mt cch an ton v tin cy c tch ring khi my o. Kin trc my o, s trnh din ca cc mc d liu v h thng cu lnh c xc nh B vi x l Java o cung cp mi trng y cho vic thc thi mt chng trnh Java. V th, tt c chng trnh Java phi p ng cc c t ca b vi x l tru tng, b vi x l tru tng xc nh tp cc ch th c lp my tnh ca n, kiu d liu, v cc thanh ghi c x dng. Ngun ca chng trnh Java c dch thnh m c lp my gi l m byte, sau c c bin dch bi b vi x l tru tng, c thc hin bi b vi x l Java o Bin dch chng trnh Java dnh cho s thc thi trn my trm trong mi trng ca trnh duyt gi l applet Java hoc n gin hn l applet. Theo bn cht ca applet, mi applet i din chng trnh nh, trong mt vi chc nng bt buc s c xc nh. Applet c np t my ch thng qua mng v c thc thi trong trnh mi trng trnh duyt (Hnh. 1.12). Cc lin kt n applet c xc nh trong ti liu Web, nhng applet khng cha trong thnh phn ti liu Web. Thay vo , applet c lu tr tp ring bit trn my ch.

16

Hnh. 1.12: Truyn v thc thi cc chng trnh Java c lp my S c lp ca m byte Java i vi phn cng v h iu hnh c kh nng thc hin c bi s thc hin chng trnh ca b vi x l Java o. iu ny dng cho thng dch cc applet cho tng nn tng M byte ca cc chng trnh Java c mt s chc nng sau:

M d dng thng dch trc tip m my cho bt k nn tng phn cng no. Chiu di trung bnh ca cu lnh trong m byte ngn ti thiu, v th gim phc tp v kch c ca applet Java khi so snh vi cc chng trnh thc thi bnh thng Mi m byte ca chng trnh cha thng tin y chng trnh cho php m ny c kim tra mt cch an ton cho vic thc thi.

M byte c pht trin lm gim chiu di trung bnh ca chng trnh mt mc hp l nht. B vi x l Java o c kin trc ngn xp v thnh ghi nh v thng x dng nh a ch gin tip. V th, phn ln cc cu lnh chim byte n. Ni chung, cc b vi x l Java c tp cc ch th cho tng kiu d liu. Do vy, chiu di trung bnh ca cu lnh Java ch c 6 byte. Chiu di trung bnh ca cu lnh cho b vi x l RISC sp x 4 byte. Hai chc nng quan trng c quy nh cho tc cao thc thi an ton v tin cy ca applet

Kim tra m byte m bo s ton vn v hp thc ca cc ch th trc khi thc thi. iu khin vo kha cc thao tc trong sut thi gian thng dch m byte

Vic np v kim tra cc m byte thc hin bi chc nng u tin, qun l bo mt ca b vi x l Java o thc hin bi chc nng th hai. Qun l bo mt truy cp ti cc tp v nhm thit b ngoi v bng applet v thc hin cc chc nng h thng nh cp pht b nh. Vi x l Java o cung cp s thc th v cc chc nng khc tc ng tin cy x l thng tin, v d tp hp d liu v ngha tng ng vi vic gii phng b nh. Ni chng, Java bm gm cc chc nng c ch i vi cc thao tc chnh xc cho cc i tng v ngun ti nguyn trong cc tnh hung khng mong i. Chu k phn mm applet tng t nh cc chng trnh vit bng ngn ng khc. Tin trnh thc hin applet khc vi tin trnh ca cc chng trnh thng thng khc (Hnh. 1.13).

17

Hnh. 1.13: Chun b v thc thi Applet Java V applet v cc thnh phn khc ca h thng ng dng c lu trn my ch, h thng h tr vic qun tr mt cch d dng hn. V th, m bo s dng lu di cc chng trnh cp nht hng ngy. Khng ch cc applet i din cc chng trnh lun bin i c th c vit bng ngn ng Java cc chng trnh ng dng cng c th c vit bng Java. Tuy nhin dnh c mc thc thi cao, m ngun ca chng trnh nn c bin dch, khng thnh m byte nhng m c lp vi my cho php thc hin trc tip bi cc b vi x l my trm. Hin nay, c rt nhiu cng c pht trin cho applet v ng dng Java, bao gm Microsoft Visual J++, Symantec Cafe, Borland Jbuilder, Sun Microsystems Java Workshop, v mt s cng c khc.

1.2.2.2 Cc cng ngh da vo s dng cc ngn ng kch bn


Nhng cng ngh cho pht trin v ng dng ca cc chng trnh bin i da vo s dng nhng ngn ng kch bn xut hin xong xong vi cng ngh Java. S khc bit quan trong gia cng ngh kch bn v Java chnh l s thng dch theo dng lnh ca chng trnh kch bn, thc hin bin dch thnh m byte trc khi thc thi. ( thc thi, cc chng trnh Java di ng phi c bin dch thnh m byte.) Chc nng ca b bin dch chng trnh di ng vit bng cc ngn ng kch bn c thc hin bi trnh duyt Web. Bn cht ca ngn ng kch bn (hay cn gi ngn ng macro) d dng g ri v pht trin chng trnh. Cc ngn ng kch bn chnh hin thi dnh cho vit chng trnh bin i bao gm:

Ngn ng kch bn JavaScript, c pht trin bi Netscape v Sun Microsystems, v ngn ng VBSCript ca Microsoft. Ngn ng m t thc t o (Virtual Reality Modeling Language), c pht trin bi Silicon Graphics.

18

Ban u, JavaScript xut hin trong trnh duyt Netscape Navigator 2.0 di ci tn LiveScript. Sau , Netscape loi b tn ny v bt u lm vic vi Sun Microsystems v i n ng s dng Java. JavScript khng i din ngn ng Java, hai ngn ng ny c mt vi im chung, c kh nng gi ln nhau. (Bng 1.1). Bng 1.1: Cc c t ca Java v JavaScript JavaScript

Java

Chng trnh phi c dch thnh m byte Chng trnh c thng dch pha thc thi pha client client ngay khi khi to Hng i tng. Applets bao gm cc i Da i tng. Khng c lp cho c ch tng miu t s dng cc lp cng vi tnh tha k tha k Cc Applet c gi t cc trang Web, nhng Chng trnh c gi t cc trang c lu tr ring trong cc tp (nm ngoi Web, nhng c xy dng bn trong ti vn bn Web) liu Web Tt c kiu d liu v bin phi c miu ta Cc kiu d liu v bin khng cn phi trc khi x dng. khai bo Rng buc tnh. Cc lin kt i tng phi Rng buc ng. Cc lin kt i tng tn ti ti bc bin dch c kim tra trong xut qu trnh thc thi Khng th ghi vo a hoc thc hin cc Khng th ghi vo a hoc thc hin chc nng h thng cc chc nng h thng Javascript l ngn ng thng dch, n gin, da vo cc hm hng i tng. S d dng l nguyn nhn Bn cht hng i tng ca Javascript c chng t bi kh nng ca hot ng vi cc ca s trnh duyt, thanh trng thi v cc n v khc ca giao din trnh duyt v cc i tng mng trong h ng cp. Javascript khng phi phong ph nh ngn ng Java, nhng n thun li hn, hiu qu hn cho mt s cc tc v lin quan n x l cc ti liu Web v cho s tng tc vi ngi dng khi hin th cc tc v . y l ngn ng vi s lng ln v cu lnh v chc nng c xy dng sn. Cc chng trnh c viets bng Javascript c th cung cp cc hp i thoi, thc hin cc php ton hc, chi c cc tp video, audio, to ra cc ti liu, x l cc i tng button trong form v rt nhiu i tng khc. Cng vi s tr gip ca JavaScript, c th thit lp cc thuc tnh va c tnh ca nhng th vin nh phn Java, v hn th na l cc m dun chng trnh c b sung vo trong trnh duyt Cc cu lnh JavaScript c vit trc tip trong trang Web, v c thc hin bi trnh duyt trong khi trang ny c np, hoc trong khi cc thao tc m ngi dng thc hin tng tc vi trang Web (v d, khi click vo cc i tng bng chut, v tr ca con tr chut ti v tr lin kt, hoc nhp d liu trong cc trng ca mu HTML). Cng nh bt k cng ngh hay ngn ng no c s dng trong mng my tnh, x l thng tin an ton l yu tin hng u. Mc d Javascript khng c xem l ngn ng c tnh bo mt cao, n p ng c phn ln cc yu cu ny. Mt vi chc nng dn n vic d b tn cng khng tn ti trong ngn ng Javascript, chnh v vy cung cp tnh bo mt theo mt cch thc khng trc tip. Cc chng trnh c vit trong JavaScript, cng nh trong Java, b ngn cm thc hin cc thao tc i vi cc tp cc b. V vy, mt chng trnh khng c kh nng thay i hoc dnh c quyn truy cp ti d liu ca ngi dng. Ni chung, JavaScript khng h tr cc chc nng mng. V d, mt chng trnh khng th m cng TCP/IP, v ch c kh nng np cc i tng ti a ch cho v to ra d liu truyn n my ch Web. Cc trnh duyt cho php ngi dng thit lp cc mc an ton v iu khin 19

cc mc ny, v vy cc chng trnh c vit bng JavaScript ch c th tp trung vo mt vng xc nh thng tin. Nhng bt li ca Javascript l tc thc th tng i thp, bi v bn cht thng dch ca ngn ng. Bt li ny cng chnh l c tnh ca cc ngn ng lp trnh bin dch. Mt vn quan trng cn ch l phin bn ca Netscape v Microsoft l khc nhau. S khc nhau c th dn ti s khng tng thch. V vy, khi vit cc ng dng trong Javascript, cn kim tr s tng thch dch v trong mi trng ca chng trnh Microsoft VBScript tng t nh Javascript trong rt nhiu kha cnh. VBScript l tp con ca ngn ng Visual Basic, hng ti lp trnh cho cc trang Web. C th pht trin rt nhiu i tng bao gm cc thnh phn chng trnh ca cc ngn ng khc, trong trang Web trong khi s dng VBScript. V d, applet Java v cc iu khin ActiveX c th c lu trong trang Web, d dng tng tc vi ngi s dng Khng ging nh Javascript v VBScript, ngn ng VRML, c thit k bi Silicon Graphics, c nh hng c th tr gip to ra cc chng tnh thng dch gi lp th gii o 3D. Cc trnh thng dch VRML c gn vo bn trong trnh duyt, tng t nh cc m dun chng trnh. Cc m ngun ca chng trnh trong ngn ng VRML c lu trong tp VRML ring v c gi bi lin kt t vn bn Web khi n c xem trong trnh duyt. Kch vo lin kt nh vy dn ti m ca s ring, cho php ngi dng thng thc chng trnh.

1.2.2.3 Cng ngh ActiveX


ActiveX la tp hp cac cng ngh cua Microsoft tp trung vao vic b sung, tich hp va thng nht cac phng thc biu din va x ly thng tin hin thi trong mang may tinh. Cng ngh nay c xy dng sn phu hp vi kin truc Web. tng ca cc cng ngh ActiveX nm cch thc ging nhau ca vic truy cp ti tt c cc ngun ti nguyn thng tin (hnh 1.14). Cng ngh Web c la chn nh l nn tng cho cch thc ng nht ca vic truy cp.

Hnh. 1.14: Truy cp ng b n cc ngun ti nguyn thng tin mng

20

Theo trit l ActiveX, trnh duyt Web s tr thnh mt phn khng th thiu ca h iu hnh. Hn th na, cc phng thc dnh c truy cp n bt k thng tin trn my tnh ca ngi dng, trn my ch ca mng cc b hoc trn Internet s l ging nhau, trong sut i vi ngi dng. Khi nim ny c thc hin trong phin bn trnh duyt Internet Explorer 4.0 V mt pht trin cc chng trnh hay bin ng, mt mt tp cc cng ngh ActiveX l s la chn thay th cng ngh Java v JavaScript, mt khc n l phn b sung thit yu cho cc cng ngh Java v Javascript. ActiveX khng nhng cung cp s pht trin v thc thi ca cc chng trnh di ng, m cn thc hin nhiu kh nng b sung nh gi cc hm xem v sa Word, Excel, PowerPoint t mi trng Web. ActiveX to ra tp hp cc hm API ( Application programming Interface - thc hin c pha trm v ch) c hiu lc vi cc nh lp trnh v tc gi ca ti liu Web. ActiveX h tr cc kiu chng trnh di ng sau, m c th c gn vo ti liu Web v truyn n my trm thc thi (hnh 1.1.5)

Cc iu khin ActiveX Java applets Cc chng trnh c vit trong cc ngn ng kch bn nh JavaScript, VBScript v VRML

Hnh. 1.15: S di chuyn ca cc chng trnh trong khi s dng cng ngh ActiveX Nhng cng ngh cho vic pht trin v s dng cc iu khin ActiveX, v ngoi ra cc chng trnh c vit trong ngng ng Macro VBScript c pht trin bi Microsoft. H thng rng ln phn mm ca Microsoft hot ng trn my ch m bo tnh hiu qu ca cc cng ngh ActiveX, c bit trn h iu hnh Windows NT v IIS. S tng tc my ch Web IIS vi cc ng dng, h thng qun l c s d liu (DBMS) c cung cp thng qua giao din ISAPI (Internet server API) v CGI (Common gateway Interface) thc thi trong IIS. iu khin ActiveX miu t cc chng trnh c kh nng thc thi, m cc chng trnh ny c th c np t my ch thc hin trn my trm. Cng nh cch dng Java applet, cc lin kt n cc chng trnh c xc nh trong vn bn Web. iu khin ActiveX khng cha cc thnh phn cu to ti liu Web. Chng c lu tr trong tp ring trn my ch. 21

S khc bit ca cc thnh phn iu khin ActiveX so vi Java applets:


Cc chng trnh ActiveX Controls bao gm m c kh nng thc thi, ph thuc vo nn tng phn cng-h iu hnh). M byte ca Java applet c lp nn tng. Cc n v np ca ActiveX Controls gi nguyn trn h thng my trm, ngc li, n c np mi khi Java applet c yu cu. Khi cc chng trnh ActiveX Controls khng lm theo cch thc tng t nh Java applets di iu khin ca vic qun l bo mt, cc chng trnh c th dnh c truy cp ti a v thc hin cc chc nng khc cho cc ng dng

V cc chng trnh ActiveX Control l cc ng dng c lp trnh, cc ng dng ny c th c pht trin v c th thc hin cc thao tc cng vi s tr gip ca bt k ngn ng lp trnh no. V mc ch ny, cc cng c pht trin nh Visual C++, Visual Basic, Delphi, Visual J ++ v mt s ngn ng khc c th c s dng. Microsoft pht trin mt gi cng c c gi l Microsoft ActiveX Developent Kit (MADK) Cc thnh phn ActiveX, cng nh cc chng trnh c vit bng ngn ng Javascript v VBScript c th gi cc hm API AcitveX biu din s dch v nh sau:

To ra tnh hiu qua a phng tin cht lng cao M v xa i cc ti liu in t, bng vic gi cc ng dng h tr chun nhng v lin kt i tng (OLE- Object linking, and embedding) Truy xut ti h iu hnh ti u cc tham s thc thi ca chng trnh dnh c t my ch

Nhng chng trnh c vit bng JavaScript v VBScript c th t ng tng tc gia nhiu i tng, bao gm Java applets, thnh phn ActiveX v cc chng trnh khc trn my trm, cho php cc i tng lm vic vi nhau nh l mt phn ca s tch hp, khng gian Web ng. C th to ra ngn ng macro ty bit, v b sung b thng dch vo trnh duyt IE, cng vi s tr gip ca th vin lin kt ng (DLL). So snh vi Java, cng ngh ActiveX c nhng im li v bt li. im bt li chnh l mc bo mt thp v mt x l thng tin phn tn. Cc thnh phn ActiveX np trong my trm c th truy cp ti bt k phn no ca h thng, tng t nh i vi cc ng dng thng thng. Trong framework ActiveX, Microsoft thc hin bo v s ring t da trn s chng nhn s. Nhng chng nhn ny cung cp tnh xc thc xc nhn cc thnh phn chng trnh c np t mng. Tuy nhin, vic xc nhn tnh xc thc khng c ngha l xc nhn tnh bo mt. V kha cnh bo mt , lc bo mt ca Activ c th khng hiu qu khi ngi dng np thnh phn ActiveX t Internet, c bit nu cc thnh phn ny khng r ngun gc. Cng vo thi im , khng ging nh Java applets, cc thnh phn ActiveX cho php thc hin cc hm ph hp pht trin chng trnh ng dng. Chc nng ny l im li cho mng cng ty, vi iu kin phi gii hn tnh bo mt thch hp c thit lp (v d, ng cho php np cc iu khin ActiveX t my ch cng ty) V mt thc thi, v Java l ngn ng thng dch, Java applet c thc hin trn my o ca h thn my trm vi tc thp hn so vi cc iu khin ActiveX Controls. Nhng, v kha cnh khc, Java applets rt c ng, v th n c np rt nhanh. Np cc iu khin ActiveX yu cu nhiu thi gian hn. Cn phi rng cc chng trnh Activex Control lu li trong h thng my trm, ngc li np tt cc Java applet mi ln mi. Lin quan n

22

an ton, thuc tnh ny l mt bt li, khi n phn tn s tp trung ca h thng ng dng. Nhng nu quan tam v kh nng thc hin, l li th ca ActiveX so vi Applet V c lp vi phn cng v OS, ActiveX v tr th hai i vivi cng ngh Java. Mc du pht biu ca Microsoft l ActiveX cung cp a nn h tr cho Macintosh, Windows, v cc h iu hnh Unix, cng ngh ActiveX hot ng trn cc nn tng Windows tt nht, bi v chng c pht trin cho vic s dng cc hm xy dng trong cc h iu hnh Windows. Do , ActiveX c th c x dng i vi ton b khu vc trong hot ng mng di s iu khin ca cc h iu hnh Windows.

1.2.3. Truy xut ti c s d liu qun h


Trong kin truc khach/chu da vao cng ngh Web, may chu Web ong vai tro nh trung tm thng tin, cung cp thng tin t nhiu ngun ma sau o, no se trinh ti ngi dng theo mt cach thng nht, vi s tr giup cua trinh duyt. S tich hp ngay thng tin khng ng nht c thc hin trong thi gian mng tng va bin dich cac tai liu Web. Cac thu tuc nay c thc hin bi trinh duyt trong thi gian tng tac vi may chu Web, cung nh vi may chu khac cho vic trinh cac ngun tai nguyn thng tin. S tng tac ca trinh duyt vi may chu cua h thng quan ly c s d liu (DBMS server) co th c thit lp trong 2 cach sau:

Truy cp n may chu DBMS thng qua may chu Web Truy cp trc tip ti may chu DBMS

1.2.3.1 Truy xut ti my ch DBMS thng qua my ch Web


trinh duyt co th truy cp ti may chu DBMS thng qua may chu Web, h thng cac cng chng trinh c s dung (Hnh. 1.16). Cac cng chng trinh nhn truy vn t may chu Web, hoat ng nh may chu uy quyn gia may chu Web va may chu DBMS. Cac cng chng trinh a c phat trin da vao cac chun c bit xac inh cach thc goi cac ng dung hoc cac ham DLL bi may chu Web, hn na xac inh cach thc trao i thng tin vi cac tng chng trinh nay. Mt trong chun ph bin nht cua kiu nay o la Common Gateway Interface (CGI), FastCGI

23

Hnh. 1.16: Truy xut n DBMS thng qua chng trnh CGI

1.2.3.2 Giao din CGI


Mt chng trinh CGI thich hp phuc vu nh mt cng chng trinh gia may chu Web va may chu DBMS, rt co ich cho s truy cp cua trinh duyt n may chu DBMS thng qua may chu Web, theo cac chun CGI. Cac ng dung CGI hoat ng ng lp vi may chu Web va thc hin nh li goi t vic x ly cua cac vn ban Web bi trinh duyt Web. Chng trinh CGI tng tac vi may chu Web bng cach trao i cac bin mi trng ca 2 phia thng qua cac knh vao/ra cua cac ng dung a inh sn. Vi cac chng trinh CGI lam vic c lp, co giao din ph bin va n gian, cac nha phat trin vn ban Web co kha nng tao cac chng trinh CGI trong bt ki ngn ng h tr cac thao tac vao/ra tp chun. Hn th na, cung vi vic phat trin ng lp, CGI co th tao cac n dung co th d dang truyn t may chu Web ti may chu khac. c bit, co cac chng trinh CGI c thit k cho s tng cac cua cac may chu Web vi cac DBMS khac (vi du, chng trinh WebDBC) Cac form HML cho phep ngi dung truy vn ti c s d liu, c s dung nh la giao din gia trinh duyt va may chu DBMS. Cac form nay cha trong cac tai liu Web. Chng trinh CGI thu c thng tin t may chu Web thng qua cac bin mi trng hoc u vao chun. iu nay phu thc vao phng thc truy cp c s dung tai thi im d liu truyn gia trinh duyt va may chu Web. Sau o, chng trinh CG truy cp may chu DBMS thng qua trinh iu khin Open Database Connectivity (ODBC) va tra v cu tr li n truy vn may chu Web, thng qua u ra chun Trinh iu khin ODBC cung cp mt phng thc duy nht truy cp ti cac DBMS khac nhau bng ngn ng truy vn chun (SQL). Bi cac ng dung chun ODBC, trinh iu khin ODBC chi co th s dung SQL va tng tac vi DBMS hn hp. Khng th truy xut ti DBMS nu khng c trnh iu khin ODBC, nhng trong trng hp ny, chng trnh CGSI s c hng iu hnh DBMS xc nh trn my ch. Vi vy, cac nha phat trin ng dung CGI khng cn thit bit v t chc cua mt may chu Web. Hn th na, iu nay khng cn thit s dung cac ngn ng phc tap nh C++. 24

Chng trinh CGI co th c vit bng ngn ng ph bin nh Perl. Yu cu chinh o la tun thu theo quy inh chun CGI. Mt trong nhc im cua chun CGI la kha nng x ly truy vn qua chm trong khi s oi hoi ngay cang ln. Mi ln chng trinh CGI c goi, no phai c nap vao ia (tng ng vi mt ln chay mi) va iu nay lam anh hng ti kha nng thc thi cua chung. Sau khi chng trinh kt thuc, no se giai phong cac ngun tai nguyn no a s dung trc o.

1.2.3.3 Giao din FastCGI v API


tranh gp phai cac vn lin quan ti tc cua CGI, rt nhiu nha cung cp may chu Web a b sung thm cc API thich hp. Hng Microsot phat trin giao din ISAPI (Internet Server API), cn hng Netscape a ra giao din NSAPI (Netscape Server API) Nhng giao din nay c tich hp vao trong may chu Web, cho phep ngi dung theo di, qun l truy cp i vi d liu v tin trnh c s dng lin tc. Nhng chng trnh c giao din ISAPI c bin dch trong tp DU. Cc tp ny c np trong b nh trong lc gi cc tp ny ln u tin v s khng cn thit sinh ra mt tin trnh mi cho ln gi tip theo ca nhng chng trnh ny. Cc hm giao din NSAPI c np trong khong trng tin trnh ca my ch. Do vy, vo lc gi ti cc hm ny, khng c tin trnh no c sinh ra. Do l giao din API, chng trnh s dng n c th loi b tin trnh m kt ni ti DBMS, v vy truy vn tip theo ti c s d liu khng phi mt thi gian ch i m v ng mt kt ni Tuy nhin, s dng cc giao din API ca cc my ch Web rt t im li. Phn ln cc ng dng khng th chuyn t mt API ny sang API khc, v him kh nng chuyn cc ng dng ti cc nn tng khc. Hn th na, phn ln cc ng dng my ch Web vn c pht trin cho giao din CGI, v vy vic chuyn sang cc ng dng da vo API l mt quyt nh ng n v phng din ti chnh. gii quyt vn CGI, c th s dng c t FastCGI. c t ny xut pht t yu t l ng dng s dng ch tham s v truyn d liu c s dng trong CGI nhng khng xa b nh v gi nguyn lu tr trong khi x l u vo Chnh v vy, nhng ng dng da vo FastCGI, cc chng trnh ging CGI, lm vic khng quan tm n my ch Web, v c chy thng qua cc lin kit chun trong nhng ti liu Web. Nhng, ging nh nhng chng trnh da vo API, nhng chng trnh FastCGI hot ng lin tc. Khi mt chng trnh hon thnh x l truy vn tip theo, n vn duy tr m v i truy vn mi. Khi mt trnh duyt dnh c truy cp n c s d liu quan h thng qua giao din CGI, mt lc c to ra trong 3 my ch c s dng: my ch Web, chng trnh FastCGI v my ch c s d liu. My ch Web nhn truy vn t trnh duyt, truyn truy vn ti chng trnh CGI, chng trnh CGI truy xut ln lt ti my ch c s d liu. Kt qu tr v thng qua ng dn tr v.

1.2.3.4 Truy xut ti my ch DBMS


truy xut trc tip t trnh duyt ti my ch DBMS, c th s dng Java k sinh (Hnh. 1.17) (Java Applets), nhng iu khin ActiveX (Hnh. 1.18), v nhng mdun chng trnh chuyn dng kt ni n trnh duyt (plugin) For direct access from the Web browser to the DBMS server, you can use both Java applets and ActiveX controls and specialized program modules connected to the browser (plug-ins). 25

Hnh. 1.17: Truy xut n DBMS cng vi s tr gip ca Appet

Hnh. 1.18: Truy xut n DBMS cng vi s tr gip ca ActiveX control Giao din kt ni c s d liu Java (JDBC) c pht trin s dng cc Java applet truy cp ti my ch DBMS khc nhau. Vic a ra giao din c nh hng h tr tng tc vi my ch DBMS, khng ch cho Java applet thc th trn my trm ch m cho php chng trnh Java thc thi trn my ch Truy cp t trnh duyt ti my ch DBMS cng c th c thc hin bi kiu khin ActiveX, cng nh trng hp s dng Java applet, truy vn v truyn chng trnh thch hp trn my trm, v c thc th trn my trm. Trong trng hp ny, s tng tc vi my ch DBMS s c thc hin thng qua giao din ODBC. s dng cc mdun chng trnh chuyn dng kt ni n trnh duyt (plugin) cho php truy cp t trnh duyt Web n my ch DBMS, cn ci t chng trnh thch hp trn my trm. Sau , s tng tc my ch DBMS s nhn ra phn mm ci t v dnh c iu khin t trnh duyt Web, trong khi x l li gi thch hp trong ti liu Web. trnh s khng tng thch, s tng tc ca cc mdun chng trnh kt ni vi my ch DBMS cng nh vi cc thnh phn ActiveX nn c thc hin thng qua giao din ODBC.

26

Chng II Ngn ng HTML


2.1 Khi nim v ngn ng HTML
HTML (Hypertext Markup language) l ngn ng nh dng siu lin kt,cho php nh dng vn bn, b sung hnh nh, v video, cng nh lu tt c vo mt trong tp tin di dng vn bn hay di dng m ascii. Tn gi ngn ng dnh du siu vn bn phn nh ng thc cht ca cng c ny Markup : HTML l ngn ng ca cc th nh du - Tag. Cc th ny xc nh cch thc trnh by on vn bn tng ng trn mn hnh. Language : HTML l mt ngn ng tng t nh cc ngn ng lp trnh, tuy nhin n gin hn. N c c php cht ch vit cc lnh thc hin vic trnh din vn bn. Cc t kho c ngha xc nh c cng ng Internet tha nhn v s dng. V d b = bold, ul = unordered list, ... Text : HTML u tin v trc ht l trnh by vn bn v da trn nn tng l mt vn bn. Cc thnh phn khc nh hnh nh , m thanh, hot hnh .. u phi "cm neo" vo mt on vn bn no . Hyper : HTML cho php lin kt nhiu trang vn bn ri rc khp ni trn Internet. N c tc dng che du s phc tp ca Internet i vi ngi s dng, c th c m khng cn bit n vn bn nm u, xy dng phc tp nh th no. S pht trin c tnh bng n ca Internet trong thi gian va qua mt phn ln l nh vo WWW. Hyperlink: dng lin kt cc ti liu ny n ti liu khc hoc lin kt i vi bt k i tng no trn Web nh vn bn, hnh nh, m thanh. Ch cn click chut vo siu lin kt, ti liu c lin kt s c hin th

2.2 Lp trnh Web vi ngn ng HTML


2.2.1 Cc thnh phn c bn ca html
Th (tag): l mt tp cc k hiu c nh ngha trong HTML c ngha c bit. Th bt u bng k hiu < v kt thc bi k hiu > C php <tnth thuctnh=gitr,>Ni dung</tnth> V d: <bg clear = left> Ni dung</bg>

Phn t (element): c 2 loi phn t trong HTML Phn t cha ni dung: bao gm th ng v th m o V d: <p>Ni dung </p> Phn t rng: bao gm 1 th o V d: <br>

27

Thuc tnh(properties): mi th bao gm mt hoc nhiu thuc tnh i km. Thuc tnh c nhp vo ngy trc du ngoc ng(>) ca th. C th s dng nhiu thuc tnh trong mt th. Thuc tnh ny k tip thuc tnh khc, phn cch nhau bi khong trng. V d: <table border=1> Gi tr: Ngoi cc thuc tnh khng c gi tr cn c cc thuc tnh ca tag c gi tr. V d: thuc tnh CLEAR ca tag <BR> c ba gi tr la chn: left,right, all. Th lng nhau: dng chnh sa cch trnh by ni dung trong mt trang Web. Trt t sp xp ca nhng tag lng nhau l th c m u tin s l th ng sau cng V d: <H1> Phn <I>Ni dung</I><H1> Khong trng: Trnh duyt b qua cc khong trng. Tn tp tin: phi t tn tp tin vi phn m rng l .htm hoc .html iu ny gip trnh duyt nh ra loi ti liu khi duyt. to mt trang Web, chng ta c th s dng bt k mt trnh son tho no to ra mt trang Web

2.2.2 Cu trc tp HTML


Mt trang Web lun bt u bng th <HTML> v kt thc bi th </HTML> Cc trang Web c chia thnh 2 phn Phn u: c t gia hai th <HEAD> v th </HEAD> - nh ra tiu , ni dung ca tiu . Phn thn: t gia 2 th <BODY> v </BODY> - cha ni dung ca trang Web V d:
<html> <head> <title>Tiu trang Web</title> </head> <body> Xin cho mng n vi kha hc HTML </body> </html>

2.3 Cc tag c bn trong HTML


2.3.1. Th gii thch
Tc dng: Gii thch hoc ch thch cc dng lnh. Trnh duyt s khng hin th ni dung nm gia cc th ghi ch C php: <! Ni dung ch thch-->

2.3.2 Cc th nh dng vn bn
inh dang ch Cu phap <FONT Face = fontname1,fontname2,..></Font> Trong o: o fontname1 l phng ch c chn o fontname2 c s dng khi trn my ngi dng khng tn ti fontname1 o V d: <font face = Arial, Time new roman, bold> nh dng kch thc ch: dng nh kch thc cho ton b vn bn 28

C php: <Basefont size = n> n mang gi tr t 1 n 7. Gi tr mc nh l 3. nh mu cho vn bn C php: <Font color = Gi tr></Font> Color: l mu dng cho ch. Gi tr mu c th g bng ch hoc h s hexa (16) V d: <Font color=red> Lp lp trnh Web </font> <Font color=#FF000> Lp lp trnh Web</font> nh dng ch Th <B>ni dng</B> hoc <Strong>Ni dung</Strong> Th <I>ni dng</i> hoc <em>ni dng</em> nh dng ch s trn m di Ch s trn: <SUP></SUP> V d: AX2+BX+C =0 AX<SUP>2</SUP>+BX+C=0 Ch s di: <SUB></SUB> - V d: C+02=C02 C+O<SUB>2</SUB>=CO<SUB>2</SUB> Phn on vn bn C php <P thuc tnh=gi tr> Thuc tnh align: canh on vn bn. Align c th nhn cc gi tr sau Left: ni dng trong on c canh tri Righ: ni dung trong on c canh phi Center: ni dung trong on c canh gia Th phn cp mc: Trong HTML cho php s dng 6 cp mc trong trang Web C php: <Hn>Ni dung</Hn> vi n mang gi tr t 1 ti 6 V d: <H1> Gim c </H1> <H2> Ph gim c </H2> <H3> Nhn vin </H> Chn hnh nh vo trang Web C php: <IMG SRC= tn tp tin cha hnh nh> Tn tp tin cha hnh nh c c ng dn th mc. Nu tp tin hnh nh c t cng th mc vi th mc cha trang Web th khng cn ng dn th mc V d <IMG SRC=images/anh1.jpg> Thm ng vin xung quanh hnh nh C php: <IMG SRC=tn file Border=n> Vi n l dy ca ng bin nh, tnh bng pixel V d <IMG SRC=images/anh1.jpg border=2> Canh chnh hnh nh C php: <IMG align=gi tr>Ni dung Gi Tr: o left: hnh nh nm bn tri mn hnh o right: hnh nh nm bn phi mn hnh o center: hnh nh nm gia mn hnh o V d <image src="IBM.jpg" align=left">Xin cho Thm ch xung quanh hnh nh C php: <IMG SRC=tn file align=gi tr> Ni dung Gi tr 29

o Top: v tr vn bn nm phi trn hnh nh o middle: v tr vn bn nm gia hnh nh o bottom: v tr vn bn nm di hnh nh Chn nh nn <html> <body background="background.jpg"> <h3>Look: A background image!</h3> <p>Both gif and jpg files can be used as HTML backgrounds.</p> <p>If the image is smaller than the page, the image will repeat itself.</p> </body> </html> ng k ngang trang Web Th <HR>: dng k ng ngang trn trang Web, gip trang Web r rng hn. C php: o <HR size=n width=w align=gi tr> Size: dy/mng ca ng k tnh bng pixel Width: chiu rng ca ng k tnh bng pixel Align: canh ng k. C 3 gi tr left,right, center nh mu nn cho trang Web nh mu nn cho trang Web, b sung thuc tnh bgcolor vo trong th BODY C php <BODY bgcolor=color> Color l mu cn nh cho trang Web nh nh nn cho trang Web Dng hnh nh lm nn cho ton trang Web thy v s dng mu nn C php <BODY background=tn tp> Tn tp l tn tp tin hnh nh cn lm nn cho trang Web Xung dng trong trang Web C php <BR> To danh sch theo th t C php <OL Type = X START=n> <LI> Ni dung mc 1 <LI> Ni dung mc 2 .. <LI> Ni dung mc N </OL> Trong X nh kiu k hiu s c s dng trong danh sch o A l ch hoa o a danh sch c anh theo th t ch thng o I,I,1 o N l gi tr bt u ca danh sch To dm trn (bullet) cho danh sch C php <UL Type=kiu chm trn> <LI> Ni dung mc 1 <LI> Ni dung mc 2 .. <LI> Ni dung mc N 30

</UL> Trong kiu chm trn mang mt trong 3 gi tr sau: o disc: kiu du chm trn m o Circle: kiu du chm trn rng o Square: kiu du chm vung c To danh sch nh ngha: l loi danh sch c dng mt t hay mt cm t km theo ni dung di, rt thch hp gii thch ngh ca ni dung C php: s dng cc th <DL>, <DT>, <DD> o <DL>: to danh sch nh ngha o <DT> :nh du thut ng c nh ngha trong danh sch o <DD>: gii thch thut ng trn V d <DL> <DT><B>Hng cng ngh phn mm></B> <DD> o to ra nhng lp trnh vin, p ng nhu cu cn thit ca x hi </DD> </DL>

2.3.3 To lin kt (link)


Lin kt l c trng WWW, cho php ngi dng chuyn t mc ny sang mc khc trong cng mt trang hoc chuyn sang mt trang Web ny sang mt trang Web khc a. Lin kt trong cng mt trang Web: cho php lin kt n cc mc bn trong mt trang Web. Cc bc thc hin To mt im neo (bookmark) o C php: <a name=tn im neo cn to>NDung</A> To lin kt n im neo o C php: <a href=#tn im neo cn lin kt n</A> o Du # bo cho trnh duyt bit lin kt ny l ni b V d: ` b.To lin kt n cc trang Web khc C php <A href=URL>Ni dung</A> o V d <a herf=http://www.vimaru.edu.vn>DHHH</A> o Thuc tnh Target=gi tr: m lin kt v tr no?ph thuc gi tr _blank:np lin kt vo mt ca s trng mi _parent: np lin kt vo ca s cha gn nht ca trang Web hin thi _self: np lin kt vo cng ca s vi trang Web hin hnh _top: np lin kt vo ca s cao nht

2.3.4 Mt s k t c bit trong HTML

31

HTML dng cc k t < v > m v ng 1 th, do khng th hin cc k t c bit ny. V vy cn c mt nhm k t thay th

2.3.5 Cc tag dng thit k bng


C php: <Table ></Table>: Bt u mt bng mi vi cc thuc tnh i km Thuc tnh: o Bgcolor: nh mu nn cho bng o Border: nh dy, mnh ca ng vin o Bordercolor: nh mu cho ng vin o Bordercolordark: nh mu sm cho phn ht bng ca ng vin o Cellpadding: nh khong cch gia ni dung v ng vin o Cellspacing: nh khong cch gia cc o Frame: hin th ng vin ngoi o Height: nh chiu cao bng o Width: nh chiu rng bng o Rules: hin th ng vin trong <TR>Ni dung</TR> bt u mt hng mi trong bng vi cc thuc tnh: o Align/valigh: canh chnh ni dung hng theo phng ngang/dc o Bgcolor: thay i mu nn ca bng <TH></TH>,<TD></TD>: bt u mt mc mi cho bng vic c thuc tnh sau o Align/valigh: canh chnh ni dung hng theo phng ngang/dc o Bgcolor: thay i mu nn ca o Colspan: m rng qua nhiu ct o Rowspan: ko di xung nhiu hng o Nowrap: gi ni dung nm trn mt dng 32

o Width, height: nh chiu rng, cao cho To khung vin cho bng o <Table border=n> Thay i mu khung o <Table bordercolor=mu> Thit lp rng o <table width = gi tr> Thit lp tiu cho bng o <caption>Ni dung</caption>

2.3.6 Cc tag to Frame


Khung (Frame) l thnh phn c bn ca Web, mt trang Web c th c chia thnh nhiu khung, mi khung s cha mt trang Web ring a. To Frame c dng hng C php: <Frameset rows=a,*,b> <frame name=tn frame src=tn tp tin s hin th> <frame name=tn frame src=tn tp tin s hin th> </Frameset> Trong : o a: chiu cao frame u tin o *:chiu cao ca frame th 2 l khong trng cn li o b:chiu cao ca frame th 3 b.To Frame c dng ct C php: <Frameset cols=a,*,b> <frame name=tn frame src=tn tp tin s hin th> <frame name=tn frame src=tn tp tin s hin th> </Frameset> o Scorlling = yes/no: n/hin thanh cun o Frameboder=yes/no: n/hin vin khung o Border=n: chnh dy/mng ca vin khung o Noresize: khng cho thay i kch thc ca khung

2.3.7 Cc tag dng to Form


Form l thnh phn giao tip c bn gia ngi duyt Web vi ngi to Web. D liu c nhp vo Form thng qua cc hp iu khin. C php: <FORM></FORM> To Textbox o C php: <input type = text name= name value = value size = n maxlength = n> o Trong : name l chui k t nhn din d liu nhp vo, value l d liu u tin hin th trong Textbox v c gi n my ch khi ngi duyt 33

khng g thng tin g, size nh kch thc ca Textbox, maxlength gii hn s k t nhp vo Textbox To Textboxx vi vng vn bn cha nhiu dng o C php: <textarea name = name rows = n, cols = m wrap><textarea> o Trong name l chui k t nhn din d liu nhp vo, n l chiu cao ca vng vn bn tnh bng dng (mc nh = 4), m l chiu rng ca vng vn bn tnh bng k t (mc nh = 40). To nt Radio button: Radio l nt ch c hn mt trong s , khng th chn la hai nt cng lc o C php <input type = radio name = name value = data checked> To chn (checkbox): khc vi Radio, checkbox cho php chn nhiu nt trong mt nhm. o C php <input type = checkbox name = set value = value checked> To nt Push button (nt nhn) o C php<input type = button value = nhn> o to nt nhn khi ngi dng nhn vo, d liu ca cc iu khin khc u c t gi tr mc nh lc khi to, c th ch nh thuc tnh type =reset trong tag <input>. To nt nhn kt thc vic nhp d liu ca mt Form, ta ch nh thuc tnh type = submit trong th <input> To Dropdown Listbox: l danh sch cha nhiu mc o C php

34

Chng III Cascading style sheets


2.1 Cn bn v CSS (Cascading style sheets)
CSS l mt chun nh dng cc trang Web. CSS m rng ngn ng HTML truyn thng vi hn 70 thuc tnh v kiu dng c th p dng cho cc th HTML.Vi CSS, cc nh lp trnh Web c thm nhiu la chn v mu sc, khong cch, v tr, bin, l, con tr. V d: <html> <span style=cursor:hand;> Chuyn con tr thnh bn tay </span> </html>

2.2 C php CSS


C php ca CSS c to nn bi 3 thnh phn: - Phn t chn (thng l mt th HTML) (Selector) - Thuc tnh (Property) - Gi tr (Value) C php ca CSS c th hin nh sau: Selector { Thuc tnh 1: gi tr; Thuc tnh 2: gi tr; Thuc tnh n: gi tr; } Selector thng l cc th HTML m bn mun nh ngha thm. Property l thuc tnh m bn mun thay i; mi mt thuc tnh cn phi c mt gi tr. Mt thuc tnh v gi tr ca n c phn cch nhau bi du hai chm (:). Hai cp thuc tnh-gi tr c phn cch nhau bi du chm phy (;). Ton b cc cp thuc tnh-gi tr ca mt th HTML c t trong cp du ngoc nhn ({}).

2.2.1 Phn t chn Seclector


a. Dng cc phn t HTML lm phn t chn: l cch tuyt vi p dng CSS nu mun tt c cc phn t thuc mt kiu no xut hin vi cng mt nh dng. Cch lm ny l cng nhc nht trong 3 cch nhng n l cch tt nht m bo tnh nht qun ca vic nh dng sut ti liu. Mt trong nhng cch dng HTML lm phn t chn thng uc dng l nh dang cc siu lin kt trong ti liu. <STYLE TYPE=text/css> <!-A {text-decoration:none;} --> </STYLE>

35

V d body{color: black} /*Phn ch trong th body s c mu en*/ hay: p {text-align: center} /*tt c cc th <P> trong trang HTML s c canh gia.*/ hay nh ngha nhiu thuc tnh: p { text-align: center; color: red; font-family: arial } Style sheet gii thiu mt s ty chn cc nh thit k c thm quyn iu khin style cho cc phn t a. Dng CLASS lm phn t chn Bng vic to ra cc lp, c th nh ngha nhiu kiu th hin khc nhau cho cng mt th HTML v p dng mi lp vo mt v tr cn thit trn trang web. C 2 cch thc dng CLASS: Cc CLASS gn vi 1 th c th V d: Trn trang web c 3 loi on vn: on vn canh l tri, on vn canh l gia v on vn canh l phi. Khi c th nh ngha 3 lp ring bit cho 3 loi on vn ny nh sau: p.trai {text-align: left} p.phai {text-align: right} p.giua {text-align: center} Tip theo, trong trang HTML s dng nh sau: <p class="trai">on vn ny c canh l tri.</p> <p class="phai">on vn ny c canh l phi.</p> <p class="giua">on vn ny c canh l gia.</p> Ch : - CSS phn bit ch hoa v ch thng ging nh C++ do khi vit cn phi cn thn trong vic s dng ch hoa, ch thng. - Trong trang HTML, ch c php khai bo 1 th thuc duy nht mt lp. Tri iu ny mc d trnh duyt khng bo li nhng cc lp s khng hot ng c. V d v s dng lp sai: <p class="trai" class="phai">y l on nh ngha sai</p> Cc v d trn l v d v vic to cc lp b "gn cht" vi mt th no , tc l khng s dng c lp ny trong th khc. Theo cc khai bo trn, v d di y s khng hot ng: <td class="trai">V d ny khng hot ng</td> Cc CLASS khng gn vi mt th c th (c th gn vi hu nh tt c cc th): 36

C th to ra mt lp m lp c th gn vo hu nh bt c th no trn trang web bng cch b tn th u i nhng nh gi li du chm (.) V d: nh ngha mt lp "giua" c th gn vi bt c th no .giua{text-align="center"} v trong trang HTML ta s dng nh sau: <p class="giua">on vn ny c canh l gia.</p> <td class="giua">Cu ny cng c canh l gia.</p> b. Dng ID lm phn t chn Tng t nh cc lp, cc nh danh cng cho php chia cc th thnh nhiu loi khc nhau. Tuy nhin trn thc t th nh danh khc vi lp!!! Mt lp c th p dng nhiu ln nhiu v tr trn trang web, tuy nhin 1 nh danh ch c th p dng c duy nht cho 1 th v tn ca nh danh phi l duy nht trn 1 trang web. Qui tc cho Style dng ID lm phn t chn bt u bng du thng (#) Cc v d: 1. on m di y c th p dng cho th <P> c ID l para1 p#para1 { text-align: center; color: red } Khi s dng nh sau: <P id="para1">on vn bn</p> 2. on m di y c th c hiu lc cho th u tin c ID l xyz: *#xyz {color: green} Khi s dng: <p id="xyz">on vn bn</P> 3. on m di y ch c th p dng cho th <P> u tin: p#wer345 {color: green} Khi s dng: <p id="wer345">on vn bn</p> V on di y khng c hiu lc:

37

<h1 id="wer345">on vn bn khng c p dng</p> c. Cc phn t chn theo ng cnh Nu chng ta mun tm kim v d v mi quan h cha-con gia mt on paragraph cng vi phn t em bn trong paragraph, chng ta xem cc phn t chn con lm vic nh th no. Trong v d ny, phn t em v ni dng ca n tha k cc chc nng lut t cha n phn t p Nu chng ta mun gn lut kiu khc cho phn t con, chng ta c th s dng c php cung cp bi phn t con. t phn t cha trc, sau l phn t con, cng vi khong trng gia 2 phn t:
p em

Sau , c th vit bt k th g trong khi miu t s c p dng i vi cc phn t con. d. Cc phn t chn CLASS gi (Pseudo Class Selectors) c s dng i vi cc kiu lin kt, ngoi ra cn c s dng cho cc mc ch khc nh b sung hiu ng cho cc th. Sc mnh ca loi phn t ny s c pht huy i vi cc lin kt l s kt hp ca cc phn t vi phn t lp to ra cc kiu a lin kt m c th p dng cho mt trang. Phn t lp gi lp lin kt bt u bng mu neo (anchor), tip theo l du :, cui cng l tn lp gi lp. Mt s phn t la chn lp gi lp lin kt qui c nh sau: a:link a:visited a:hover a:active C th vit cc lut cho mi phn t chn lp v chng c th ng dng n ton b cc lin kt Chng ta c th kt hp cc phn t chn trong mt lp, lp ny cho php to ra kiu a lin kt. thc hin iu ny, chng ta bt u bng anchor, tip theo l du ., sau l tn lp, du :, v lp gi lp. V d a.main:link a.subnav:link a.footer:link Trong v d ny, cc lin kt trong cc lp ca main, subnav, v footer c th c cc qui tc lut khc nhau to cho chng e. Cc phn t chn phn t gi lp (Pseudo Element Selectors) C bn phn t tr gip nh lp trnh dnh c mc tiu in n c m t bng di y:

38

Phn t chn :first-line :first-letter :before :after

Cc phn t chn gi lp trong CSS2 Mc ch la chn v p dng ti dng u tin trong phn t nh sn la chn v p dng kiu n k t u tin trong phn t Cho php xc nh ni dng trong t kiu dng c chn pha trc phn t nh sn Cho php xc nh ni dung trong t kiu dng c chn sau phn t nh sn

p dng kiu khc nhau n dng u tin trong paragraph, s dng c php phn t gi lp:
p:first-line

Nu mun b sung ni dung sau hoc trc mt phn t, cn phi nh ngh ni dung trong t kiu dng. sinh ra ni dung s dng phn la la chn gi lp trc v sau, chng ta nh ngha phn t n lut s c p dng, phn t gi lp troc, sau, thuc tnh ni dung, v ni dung trong du nhy kp
h1:after { content: "header note" }

Kt qu: Cu hearder note xut hin sau h1 f. Nhm cc phn t la chn - Selector Groups Nhm phn t la chn cho php ngi dng nhm cc phn t la chn vi nhau khi mun gn cc phn t la chn ny nhng thuc tnh ging nhau. . V d di y s nhm tt c cc th Header li, nh ngha chng s c mu xanh, v s dng font arial hoc sans-serif:
h1, h2, h3 {font-family: Arial, sans-serif; color: green }

2.2.2 Cc phn t la chn lp gi ng


Cho php b sung phn t la chn gi thng minh i vi bt k th no hn l cc lin kt. Bng di y s ch ra 3 phn t lp gi lp ng v chc nng ca chng Phn t chn :hover :active :focus Mc ch p dng cc qui tc kiu dng khi chut di qua mt phn t c la chn p dng kiu khi mt phn t c nhp chut p dng kiu khi mt phn t c focus bn phm (khi con tr c t trong hp text box ca form)

Cc phn t la chn con

39

Cc phn t ng cnh cho php to mu phn t con tch bit vi phn t cha. Phn t ny p dng khi cn lng ghp cc phn t. V d, chng ta c nhiu phn t em trong phn t division, div v paragraph trong division ny c th c cc phn t strong. V d: nu vit phn la ng cnh sau: div strong tt c cc phn t strong trong div thm tr trong cc phn t paragraph (chu)-s b nh hng bi tnh tha k Cc phn t con ch cho php la chn con. iu ny c ngha l, chng ta c th c m bo rng ch c cc phn t em bn trong div,ch khng phi trong cc cu trc khc lng bn trong div s b nh hng. lm c iu ny, chng ta bt u bng vic s dng phn t, bn phi du > v phn t con trong vn : div>em Chng ta c th nhn thy s phc tp. Nu chng ta mun la chon phn t em trong phn t paragraph bn trong phn t div, th vit nh sau: div>p>em Tt c phn t con trong phn t paragraph, khng c nm bn ngoi, s uwocj nh dng trong qu tc k tip theo Cc phn t con First Mt phn t con first cho php . Kiu phn t la chn ny ch p dng iv oi con u tin ca phn t nh sn. p dng kiu ny n con u tin, cung cp phn t cha cng vi c php phn t la chn con u tin
p:first-child

Bt k qui tc no chng ta vit cho phn t la chn ny s c p dng n phn t con u tin ca tt c paragraph Phn t la chn k cn Phn t ny tr gip nh dng cc phn t cng mt cha. Cc phn t cng mt cha l cc phn t nm trong cng mt mc ca cy t liu v chia s mt cha chung. V d
<p>I find books by <a http://www.marthagrimes.com/">Martha Grimes</a> to be the quintessential escapist experience. A good mystery and a <a href="http://www.adagioteas.com/">cup of tea</a> on a rainy day is true relaxation.</p>

Phn t la chn thuc tnh Kiu phn t la chn thuc cho php la chn cc phn t da v thuc tnh m cc phn t c. V d, nu chng ta c mt lin kt trong URL, c th to bi phn t ny thay v phn t anchor ca chnh no. Mi thc th ca URL c nh dng theo qui tc kt hp vi phn t la chn thuc tnh 40

C bn kiu dng c sn cho phn t nh miu t bng di y Cc mc iu khin c th dnh c bi kiu phn t la chn ny t gy ngc nhin. Table 2.3: Attribute Matching C php [att] [att=val] [att~=val] [att|=val] Mc ch p dng kiu iv oi thuc tnh a ra, khng quan tm ti gi tr p dng ku i vi thuc tnh a xa trong gi tr xc nh p dng kiu n bt k thuc ny no trong gi tr phn cch bi du cch p dng kiu n bt k thuc ny no trong gi tr phn cch bi du |

2.2.3 Thuc tnh, miu t, qui tc


Cc thuc tnh trong CSS thuc ba danh mc: V d:
font-family: Arial, sans-serif color: blue

Visual bt k thuc tnh no nh hng n s biu din trc quan ca ti liu nh font, nn v mu Aural Cc thuc tnh lin quan ti kiu tai, nh chc nng m thanh. Paged Cc thuc tnh lin quan n trang media nh in v mn hnh

Cc thuc tnh tc k Cc thuc tnh ny cn c tn khc l nhm l cch thc vit tt cc quy tc kiu. Cso mt vi thuc tnh tc k khi so snh vi cc thuc tnh y . Thuc tnh rt gn, thuc tnh c th thay th nhau v nhm media thuc vo c miu t nh sau Tc k background Cc thuc tnh background-attachment background-color background-image background-position background-repeat border-color border-style border-width border-bottom-color border-bottom-style Nhm media visual

border

visual

border-bottom

visual

41

Tc k

Cc thuc tnh border-bottom-width border-left-color border-left-style border-left-width border-right-color border-right-style border-right-width border-top-color border-top-style border-top-width cue-before cue-after font-family font-size font-style font-weight font-variant line-height list-style-image list-style-position list-style-type margin-top margin-right margin-bottom margin-left outline-color outline-style outline-width padding-top

Nhm media

border-left

visual

border-right

visual

border-top

visual

cue

aural

font

visual

list-style

visual

margin

visual

outline

visual, interactive

padding

visual 42

Tc k

Cc thuc tnh

Nhm media

padding-right padding-bottom padding-left pause-after pause-before Chng ta tng vit kiu tc k khi nhm cc phn t la chn li v d:
h1 h2 h3

pause

aural

V d: chng ta thng miu t phn t paragraph nh sau:


p { font-family: Arial, sans-serif; font-size: 16px; font-weight: bold; font-style: normal; line-height: 15px; color: black; }

Chng ta c th la chn s dng thuc tnh font, thay th bng thuc tnh tc k
p } { font: bold normal 16px/15px Arial, sans-serif;

Mi quan tm hng u khi nhm l th t ca gi tr. Mt v d cho iu ny l khi lm vic vi thuc tnh margin: chng ta phi a ra gi tr theo th t top,right,left, v bottom
body } { margin: .10in .75in. .75in. .10in;

Ch thch trong CSS Bn c th b xung cc ch thch cho on m ca mnh trong CSS. Cc on ch thch s c trnh duyt b qua. on ch thch c to ra tng t nh trong C++ (t bt u bi /* v kt thc bi */) V d:
/* y l on ch thch*/ p { text-align: center; /* V y l mt on ch thch khc */ color: black; font-family: arial }

43

2.3 B sung CSS vo ti liu HTML


CSS ph b ro cn HTML bng cch cho php c thm nhiu c t thuc tnh chun phc v cho vic dn trang v nh dng. Nhng thuc tnh ny c p dng vo trong ti liu m khng pho v cu trc HTML c sn. C 2 bc b sung kiu dng CSS vo ti liu: Khai bo style v p dng style cho cc phn t HTML p dng CSS vo trang HTML C 4 cch p dng CSS v trong ti liu: Dng inline style Nhng cc style sheet Lin kt vi mt style sheet Bao gp mt style sheet Dng inline style: l cch dng style ngay trong cu lnh, bn thm thuc tnh STYLE vo mt phn t HTML no theo c php nh sau: <tag STYLE=property:value;property:value.></tag> V d: <html> <body> <b style="color:navy;"> Mu xanh nc bin. </b> </body> </html> Mt inline style c th p dng cho bt c th no v ch c tc dng trn chnh th . Dng inline style lm cho ti liu r rng hn nhng c th dn n vic vit m qu nhiu. Ngoi ra n lm cho cc on m d tha, kh bo tr. Nhng style sheet nhng mt style sheet, cn nh ngha mt khi (phn bit bi cc th <STYLE type = text/css> v </STYLE>) c t trong phn HEAD ca ti liu. Khi ny l mt tp cc style rule (qui tc v kiu dng), trong mi qui tc nh ngha style cho mt phn t hay m nhm cc phn t HTML Mt style rule c 2 phn: Mt selector (phn t chn) nh danh mt phn t hay mt nhm cc phn t HTML Mt khai bo v thuc tnh v kiu dng c p dng cho selector . C php tng qut: selector {property:value;property:value;} CSS khng phn bit ch ha v ch thong nhng bn phi m bo lun dng ng c php. Mi style rule phi bt u bng mt selector hay mt nhm cc selector, theo sau l mt du m ngoc nhn, tip theo l cc khai bo thuc tnh v style. Mi khai bo cho mt style kt thc bng du chm phy v mi thuc tnh c phn cch vi gi tr ca n bng du hai chm, v cui cng l mt du ngoc nhn. <head> <style type="text/css"> <!-B {text-transform: lowercase; font-size:18px} P { border: silver thick solid; background-color:turquoise;} 44

--> </style> </head> <body> <p> Mi on s c vin <b>m</b> mu bc </p> </body> Cch dng style sheet nhng lun uyn chuyn v d bo tr hn cch dng inline style. Chng hn mun thay i mu ca P trong ti liu, ch cn thay i mt th: gi tr tng ng vi thuc tnh background-color Lin kt n style sheet C th lu style sheet trong mt tp tin ring bit v lin kt n n mt hay nhiu ti liu, s dng th <LINK> trong phn <HEAD>: <LINK REL=stylesheet type=text/css href=mystyles.css> Style sheet c lin kt cha nhng khai bo v style, hot ng ging nh style sheet nhng, chh khc l nhng style rule khng ng trong cp th <style type =text/css></style>. Vic lin kt n mt style sheet bn ngoi cho php nh pht trin p dng style sheet cho nhiu ti liu khc nhau. Bao gp mt style sheet Mt style sheet bn ngoi c th c bao gp (import) vo trong ti liu bng cch dng thuc tnh @import trong style sheet: @import:url(mystyles.css); Th @import nn t u khi style hay i vi mt sheet lin kt th l trc bt c mt khai bo no. Nhng qui tc c bao gp trong style sheet s c p dng trc nhng qui tc khc nh ngha cha style sheet Cc cch dng style Inline style: dng cho vn bn ring l Style nhng: nh dng mt hay nhiu ti liu tm vc ton cc Kt hp inline b sung cho style nhng hay iu chnh n cho mt vi phn t c th

2.4. Cc m hnh trc quan


CSS lm vic trn m hnh nh dng trc quan cung cp trong cc c t CSS. M hnh ny tr gip nh ngh cch thc trnh duyt x l cy ti liu M hnh trc quan cung cp ngha cho mi phn t trong cy sinh ra mt hp. N cn c tham chiu nh l m hnh hp.

45

M hnh hp M hnh hp tin tng vo cc qui tc qun tr hin th mt cch chnh xc. Vic thc thi m hnh box c s khc bit trong cc trnh duyt chnh C 2 kiu chnh ca cc phn t : Block-Level Elements l mt trong phn t c nh dng nh mt hp. N c th cha cc phn t nm bn trong v cc phn t block-level khc. c bit, cc phn t ny bt u trn mt trong mi. V dng bao gm: h1-h6, p, form, table, ol, ul. Inline Elements xut hin bn trong ni dung, v c th cha vn bn hoc cc phn t inline khc. V d: a, em, strong, img, input. Phn t block-level sinh ra hp chnh. Hp ny c kh nng cha cc hp khc hoc cc phn t block-level khc. Bn trong phn t inline, cc hp nm theo chiu ngang c bit nh l hp ng Tt c hp c chia thnh cc vng sau: Content area (text, objects) Vng ni dung c nh ni dung bao quanh ni dung thc s phn t. Padding Cc nh xung quanh padding ca hp Borders nh border xc nh border ca hp Margins nh mp margin xung quanh margin hp v c nh ngha bi nh: left, right, top, bottom. Nu mt margin c rng bng 0, n tr thnh nh border. Nu nh borger c dy bng 0, n tr thnh nh ca padding. Nu padding c dy bng 0, n tr thnh nh content 46

C vi cch thc chung b tr cc phn t CSS nh sau: Static Hp tnh c chy trn da vo khi ca n hoc chc nng inline. Float Hp ng dch chuyn t tri qua phi. Absolute position Hp tuyt i c t chc c bit s dng ranh gii theo ta x-y. Relative position Hp tng i c t chc lin quan n ni hp c mong i bn trong lung d liu.

47

Chng IV Ngn ng kch bn Javascript


4.1. Gii thiu ngn ng kch bn Javascrip
JavaScript la ngn ng di dang kch bn co th gn vi cac file HTML b sung tinh tng tac cua Web. No khng uc bin dich ma c trinh duyt thng dich. JavaScipt la ngn ng da trn i tng nhng no khng phai la ngn ng hng i tng do khng h tr cac lp hay tinh tha k. Co 1 s ngn ng khac cung co kha nng b sung tinh tng tac cho Web nhng tt ca chung u khac 1 s im: Script CGI (common gateway interface): Cac Script rt manh nhng chung nm trn may chu nn co 1 s nhc im nh: kt ni gia trinh duyt Web va may chu se gii han tc tng tac trn Web cua ban, may chu Web co th bi qua tai nu co nhiu ngi s dung ng thi, khng phai moi ngi u co th truy cp n cac vung trn may chu Web ma co th chay Script CGI vi cac Script co th lam ngng tr may chu... Java: Mc du co tn tng t nhau nhng chung ko phai la ngn ng ging nhau. Javascript c Netscape tai ra cung cp tinh tng tac cho Web con Java dc Sun vit nh la 1 ngn ng lp trinh co th lam vic trn tt ca h iu hnh. Vbscript: y co le la ngn ng gn gui nht vi JS nhng no co 1 han ch la chi lam vic trn IE (No la ngn ng c quyn cua MS). Cac gii han cua JavaSript (JS). JavaScript khng th giao tip vi may chu: hai cng vic chu yu cua may chu ma Javascript khng th thc hin c la vic tp hp thng tin t ngi dung va giao tip vi cac may khac, cung nh khng th gi mail vi JavaScript vi mun gi mail thi phai giao tip vi may chu va tt nhin JAVASCRIPT khng thc hin c iu ny -JavaScript khng th tao cac hinh anh hoa: 1 trong cac gii han cua JAVASCRIPT la no khng th tao cac hinh anh hoa cua ring no ma chi lam vic vi cac hinh anh co sn theo nhiu cach. JAVASCRIPT lam vic khac nhau trn cac trinh duyt khac nhau. Nhng vic Javascript c th thc hin Javascript cung cp cho ngi thit k HTML mt cng c lp trnh JavaScript c th t vn bn ng trong trang HTML JavaScript c th tng tc vi cc s kin JavaScript c th c v ghi cc phn t HTML JavaScript c th c s xc nh tnh hp l ca d liu chn mt on script trong trang HTML, s dng th <script>. S dng thuc tnh th nh ngha ngn ng kch bn: <script type="text/javascript"> Sau l cc cu lnh Javascript. V d document.write document.write("Hello World!") Cui cng l th : </script>

48

Kch bn trong mt trang s c thc thi ngay khi trang c np trong trnh duyt. iu ny khng phi lc no cng cn thit. Thnh thong cn thc hin script khi mt trang c np, lc khc khi s dng trigger mt s kin. Cc on script c th c t cc v tr sau: t Script trong phn head: Script c thc thi khi chng c gi hoc khi c mt s kin c trigger th s t script phn head. Khi t script phn head, iu ny s m bo rng, script c np trc khi s dng n. <html> <head> <script type="text/javascript"> Cu lnh </script> </head> t Script trong phn body: script c th thi khi mt trang np. Khi t phn ny, scipt sinh ra ni dung ca trang. <html> <head> </head> <body> <script type="text/javascript"> Cu lnh </script> </body> t Script trong c phn body v phn head: C th t khng gii hn s script trong ti liu, c th t phn body v phn head. <html> <head> <script type="text/javascript"> Cu lnh </script> </head> <body> <script type="text/javascript"> Cu lnh </script> </body> Thnh thong, mun chy cng mt on script cho nhiu trang, khng phi vit li on m trong tng trang , c th vit on m trong mt tp ring vi phn m rng l .js. V d vit cu lnh di y v lu trong tp xxx.js: document.write("Script cha tp ring bit ") s dng tp ny, s dng thuc tnh src
<html> <head> </head> <body> <script src="xxx.js"></script> </body>

49

</html>

4.2. Ngn ng kich ban JavaScript


4.2.1 Kiu d liu
- Kiu d liu s: S nguyn: biu din t -253 ti -253 S thc:

- Kiu vn ban (chui): bt u bng du () hoc () V d: Hello World , Hello World, Peter OToole , Peter O\Toole, 'Hello "Paul"', "Hello "Paul"", "Hello \"Paul\"" Ngoi ra cn c cc kiu ki t c bit sau y: K t c bit K t i din \b Phm li \f Form feed \n Dng mi \r Phm xung dng \t Tab \' Nhy n \" Nhy kp \\ Du cho ngc \xNN NN l s hexa xc nh k t trong tp k t Latin-1 - Kiu Boolean: Co 2 gia tri Yes hoc No, True hoc False

4.2.2 Khai bo bin


Bin la nhng ai lng ma gia tri cua no co th thay i trong qua trinh x ly. Trong toan hoc, bin thng c dung lu tr cac con s, con trong tin hoc bin thng c dung lu tr thng tin.

a. Cach t tn bin
Tn bin phn bit ch hoa va ch thng Tn bin bt u bng ki t hoc du gach di character Khng c c khong trng gia cc k t

b. Khai bao bin


S dung t khoa var khai bao 1 bin: var strname = gi tr Hoc khng cn dung t khoa var strname = some value 50

c. Gan gia tri cho bin


var strname = "Hege" Hoc: strname = "Hege"

d. Thi gian sng cua bin


Khi miu ta bin trong ham, bin co th c truy cp bn trong ham o. Khi thoat khoi ham, bin cung c giai phong. Bin nay nh c goi la bin cuc b. Nu khai bao bin bn ngoai ham, tt ca cac ham trong trang co th truy cp ti bin nay. Thi gian sng cua bin nay bt u t khi ta khai bao va kt thuc khi trang c ong. Bin ny c gi l bin ton cc.

4.2.3. Cac toan t JavaScript


a. Cac Toan t s hoc
Ton t + * / % ++ -Cng Tr Nhn Chia Modulus (phn d) Tng Gim Miu t x=2 x+2 x=2 5-x x=4 x*5 15/5 5/2 5%2 10%8 10%2 x=5 x++ x=5 x-V d 4 3 20 3 2.5 1 2 0 x=6 x=4 Kt qu

b. Cac toan t gan


Ton t = += -= *= /= %= x=y x+=y x-=y x*=y x/=y x%=y V d x=y x=x+y x=x-y x=x*y x=x/y x=x%y Din gii

c. Cac toan t so sanh


Ton t == != Miu t Bng Khng bng V d 5==8 tr v gi tr false 5!=8 tr v gi tr true 51

> < >= <=

Ln hn Nh hn Ln hn hoc bng Nh hn hoc bng

5>8 tr v gi tr false 5<8 tr v gi tr true 5>=8 tr v gi tr false 5<=8 tr v gi tr true

d. Cac toan t logic


Ton t && || ! Miu t V Hoc Ph nh V d x=6 y=3 (x < 10 && y > 1) tr v gi tr true x=6 y=3 (x==5 || y==5) tr v gi tr false x=6 y=3 !(x==y) tr v gi tr true

e. Toan t chui
txt1="What a very" txt2="nice day!" txt3=txt1+txt2 V d: <html> <body> <script language="JavaScript" type="text/javascript"> var string1 = "Hello"; var string2 = "Goodbye"; alert(string1); alert(string2); string2 = string1; alert(string1); alert(string2); string1 = "Now for something different"; alert(string1);alert(string2); </script> </body>

f.Chuyn i kiu:
chuyn i kiu d liu, Javascript h tr hai hm sau Ham parseInt(): chuyn chui sang s nguyn Eg: parseInt(123) = 123; parseInt(1234abc) = 1234 Ham parseFloat(): chuyn chui sang s thc

V d: <html> <body> <script language="JavaScript" type="text/javascript"> var myString = "56.02 degrees centigrade"; var myInt; var myFloat; document.write("\"" + myString + "\" is " + parseInt(myString) + 52

" as an integer" + "<br>"); myInt = parseInt(myString); document.write("\"" + myString + "\" when converted to an integer equals " + myInt + "<br>"); myFloat = parseFloat(myString); document.write("\"" + myString + "\" when converted to a floating point number equals " + myFloat); </script> </body> </html> Kt qua: "56.02 degrees centigrade" is 56 as an integer "56.02 degrees centigrade" when converted to an integer equals 56 "56.02 degrees centigrade" when converted to a floating point number equals 56.02 Trong mt s trng hp, mt s chui khng th chuyn i thanh s vi du nh cac chui khng cha bt ki mt s nao ca. Chuyn gi xay ra nu chung ta chuyn i chui o. V d: <html> <body> <script language="JavaScript" type="text/javascript"> var myString = "degrees centigrade"; var myInt; var myFloat; document.write("\"" + myString + "\" is " + parseInt(myString) + " as an integer" + "<br>"); myInt = parseInt(myString); document.write("\"" + myString + "\" when converted to an integer equals " + myInt + "<br>"); myFloat = parseFloat(myString); document.write("\"" + myString + "\" when converted to a floating point number equals " + myFloat); </script> </body> </html> Kt qua: "degrees centigrade" is NaN as an integer "degrees centigrade" when converted to an integer equals NaN "degrees centigrade" when converted to a floating point number equals NaN NaN: not a number NaN la gia tri c tra v bi ham isNaN(). NaN chi nhn mt trong 2 gia tri True hoc False V d: myVar1 = isNaN(Hello);. Gia tri NaN = False myVar2 = isNaN(123);. Gia tri NaN = True

4.2.4. Cac cu lnh re nhanh va lp


Trong JavaScript c 3 cu lnh iu kin if cu lnh 53

if...else cu lnh switch cu lnh

a. Cu lnh If and If...else cu lnh


C php cu lnh if if (iu kin) { Cu lnh thc hin nu iu kin ng } V d <script type="text/javascript"> //If the time on your browser is less than 10, //you will get a "Good morning" greeting. var d=new Date() var time=d.getHours() if (time<10) { document.write("<b>Good morning</b>") } </script> C php cu lnh If..else if (iu kin) { Cu lnh thc hin nu iu kin ng }else { Cu lnh thc hin nu iu kin sai } V d: <script type="text/javascript"> //If the time on your browser is less than 10, //you will get a "Good morning" greeting. //Otherwise you will get a "Good day" greeting. var d = new Date() var time = d.getHours() if (time < 10) { document.write("Good morning!") } else { document.write("Good day!") } </script> C php cu lnh If..else if 54

if (iu kin) { Cu lnh thc hin nu iu kin ng }else if (iu kin) { Cu lnh thc hin nu iu kin sai } Else { } V d: <html> <body> <script language="JavaScript" type="text/javascript"> var myAge = Number(prompt("Enter your age",30)); if (myAge >= 0 && myAge <= 10) { document.write("myAge is between 0 and 10<br>"); } if ( !(myAge >= 0 && myAge <= 10) ) { document.write("myAge is NOT between 0 and 10<br>"); } if ( myAge >= 80 || myAge <= 10 ) { document.write("myAge is 80 or above OR 10 or below<br>"); } if ( (myAge >= 30 && myAge <= 39) || (myAge >= 80 && myAge <= 89) ) { document.write("myAge is between 30 and 39 or myAge is between 80 and 89"); } </script> </body> </html> if (myAge >= 0 && myAge <= 10) { document.write("myAge is between 0 and 10"); } else if ( (myAge >= 30 && myAge <= 39) || (myAge >= 80 && myAge <= 89) ) { document.write("myAge is between 30 and 39 " + "or myAge is between 80 and 89"); } else { document.write("myAge is NOT between 0 and 10, " + "nor is it between 30 and 39, nor is it between 80 and 89"); }

55

b. Cu lnh r nhnh
C php switch (biu thc) { case nhn1: M c thc hin nu biu thc = nhn1 break case label2: M c thc hin nu biu thc = nhn2 break default: M c thc hin nu biu thc khc vi nhn1 v nhn2 } V d: <script type="text/javascript"> //You will receive a different greeting based //on what day it is. Note that Sunday=0, //Monday=1, Tuesday=2, etc. var d=new Date() theDay=d.getDay() switch (theDay) { case 5: document.write("Finally Friday") break case 6: document.write("Super Saturday") break case 0: document.write("Sleepy Sunday") break default: document.write("I'm looking forward to this weekend!") } </script>

c. Ton t iu kin
JavaScript cha ton t iu kin gn gi tr cho bin da vo mt vi iu kin C php variablename=(iu kin)?gi tr 1: gi tr 2 V d Greeting=(visitor=="PRES")?"Dear President ":"Dear "

d. Vong lp
while Cu lnh while s thc hin cc cu lnh n khi no iu kin ng while (iu kin) 56

{ M thc thi } V d: <html> <body> <script type="text/javascript"> i=0 while (i <= 5) { document.write("The number is " + i) document.write("<br>") i++ } </script> <p>Explanation:</p> <p><b>i</b> equal to 0.</p> <p>While <b>i</b> is less than , or equal to, 5, the loop will continue to run.</p> <p><b>i</b> will increase by 1 each time the loop runs.</p> </body> </html> do...while

Cu lnh while s thc hin cc cu lnh n khi no iu kin ng Do { M thc thi } while (iu kin) V d: <html> <body> <script type="text/javascript"> i=0 do { document.write("The number is " + i) document.write("<br>") i++ } while (i <= 5) </script> <p>Explanation:</p> <p><b>i</b> equal to 0.</p> <p>The loop will run</p> <p><b>i</b> will increase by 1 each time the loop runs.</p> <p>While <b>i</b> is less than , or equal to, 5, the loop will continue to run.</p> </body> </html> 57

for

Cu lnh for thc hin vi s ln cho trc for (gi tr khi to; iu kin; tng) { M thc thi } V d 1 <html> <body> <script type="text/javascript"> for (i = 0; i <= 5; i++) { document.write("The number is " + i) document.write("<br>") } </script> <p>Explanation:</p> <p>The for loop sets <b>i</b> equal to 0.</p> <p>As long as <b>i</b> is less than , or equal to, 5, the loop will continue to run.</p> <p><b>i</b> will increase by 1 each time the loop runs.</p> </body> </html> var loopCounter; for (loopCounter = 1; loopCounter <= 3; loopCounter++) <html> <body> <script language="JavaScript" type="text/javascript"> var degFahren = new Array(212, 32, -459.15); var degCent = new Array(); var loopCounter; for (loopCounter = 0; loopCounter <= 2; loopCounter++) { degCent[loopCounter] = 5/9 * (degFahren[loopCounter] - 32); } for (loopCounter = 2; loopCounter >= 0; loopCounter--) { document.write("Value " + loopCounter + " was " + degFahren[loopCounter] + " degrees Fahrenheit"); document.write(" which is " + degCent[loopCounter] + " degrees centigrade<br>"); } </script> </body> </html> Trong mt s trng hp ly gia tri cua cac phn t trong mang ma khng quan tm ti chi mang mang, chung ta co th su dung vong lp for vi cu phap nh sau: 58

for (ch s in tnmng) { Cu lnh } V d: var myArray = new Array("Paul","Paula","Pauline"); var loopCounter; for (loopCounter = 0; loopCounter < 3; loopCounter++) { document.write(myArray[loopCounter]); } var elementIndex; for (elementIndex in myArray) { document.write(myArray[elementIndex]); } Cac cu lnh break va continue <script language="JavaScript" type="text/javascript"> var degFahren = new Array(212, "string data", -459.67); var degCent = new Array(); var loopCounter; for (loopCounter = 0; loopCounter <= 2; loopCounter++) { if (isNaN(degFahren[loopCounter])) { alert("Data '" + degFahren[loopCounter] + "' at array index " + loopCounter + " is invalid"); break; } degCent[loopCounter] = 5/9 * (degFahren[loopCounter] - 32); } Hoc if (isNaN(degFahren[loopCounter])) { alert("Data '" + degFahren[loopCounter] + "' at array index " + loopCounter + " is invalid"); continue; }

4.2.3. Cac i tng trong JavaScript


4.2.3.1 i tng mng
i tng mng c s dng lu tr tp cc gi tr trong mt tn bin. Mi gi tr l mt phn t ca mng v c mt ch s 59

to ra mt thc th ca Array, s dng t kha (new) var family_names=new Array(3) var family_names=new Array("Tove","Jani","Stale") tham chiu ti cc phn t ca mng, s dng tn mng v ch s mng. Ch s bt u bng 0. family_names[0]="Tove" family_names[1]="Jani" family_names[2]="Stale" mother=family_names[0] father=family_names[1] Cc thuc tnh ca mng v method c miu t di y. NN: Netscape, IE: Internet Explorer Properties (Cc thuc tnh) Cu phap: object.property_name Thuc tnh Constructor Length Prototype Phng thc Methods Cu phap: object.method_name() Phng thc concat() join(du phn cch) pop() push("phn t 1 ","phn t 2") Reverse() shift() slice(bt u[,kt thc]) sort() splice(ch s,s phn t[,el1,el2]) toSource() toString() unshift("phn t 1, phn t 1) valueOf() Miu t Ni hai hoc nhiu mng thnh mt mng mi t tt c cc phn t ca mng trong mt chui phn cch nhau bi du phn cch (du phy c s dng mc nh) Loi b v tr v phn t cui cng ca mng B sung mt hoc nhiu phn t vo cui mng v tr v gi tr length ca mng o ngc th t cc phn t trong mng Loi b v tr v gi tr u tin ca mng To ra mt mng mi t mt mng c Sp xp cc phn t ca mng B sung hoc loi b cc phn t ca mng Tr v chui biu din m ngun ca mng NN 4 3 4 4 3 4 4 3 4 IE 4 4 5.5 5.5 4 5.5 4 4 5.5 4 4 5.5 3 Miu t Cha hm to ra mu ban u ca i tng Tr v s phn t ca mng Cho php b sung thuc tnh vo mng NN 4 3 3 IE 4 4 4

4.0 6 Tr v chui biu din biu din s phn t ca 3 mng B sung mt hoc nhiu phn t n u mng 4 v tr v length mi Tr v gi tr gc ca mng 4

V d: <html> <body> <script language="JavaScript" type="text/javascript"> var myArray = new Array(); 60

myArray[0] = "Bob"; myArray[1] = "Pete"; myArray[2] = "Paul"; document.write("myArray[0] = " + myArray[0] + "<br>"); document.write("myArray[2] = " + myArray[2] + "<br>"); document.write("myArray[1] = " + myArray[1] + "<br>"); myArray[1] = "Mike"; document.write("myArray[1] changed to " + myArray[1]); </script> </body> </html> Mang 2 chiu va nhiu chiu Ch s 0 1 2 0 Name1 Age1 Address1 1 Name2 Age2 Address2 2 Name3 Age3 Address3

<html> <body> <script language="JavaScript" type="text/javascript"> var personnel = new Array(); personnel[0] = new Array(); personnel[0][0] = "Name0"; personnel[0][1] = "Age0"; personnel[0][2] = "Address0"; personnel[1] = new Array(); personnel[1][0] = "Name1"; personnel[1][1] = "Age1"; personnel[1][2] = "Address1"; personnel[2] = new Array(); personnel[2][0] = "Name2"; personnel[2][1] = "Age2"; personnel[2][2] = "Address2"; document.write("Name : " + personnel[1][0] + "<br>"); document.write("Age : " + personnel[1][1] + "<br>"); document.write("Address : " + personnel[1][2]); </script> </body> </html>

4.2.3.2 i tng Boolean


i tng Boolean l mt trnh bao bc i tng cho gi tr boolean v c s dng chuyn i gi tr khng phi l Boolean sang gi tr boolean. 61

Nu i tng boolean khng c gi tr khi to hoc bng 0, null, , false v NaN, gi tr khi to l false ngc li bng true. var b1=new Boolean() var b2=new Boolean(0) var b3=new Boolean(null) var b4=new Boolean("") var b5=new Boolean(false) var b6=new Boolean(NaN) var b1=new Boolean(true) var b2=new Boolean("true") var b3=new Boolean("false") var b4=new Boolean("Richard") Cc thuc tnh v method c miu t di y: Cac thuc tinh C php: itng.tnthuctnh Thuc tnh constructor prototype Cac phng thc C php: object.method_name() Method toString() Description NN IE Chuyn i gi tr Boolean sang string. Phng thc 4 4 ny c gi t ng bi Javascript bt k khi no i tng Boolean c s dng trong tnh hng yu cu mt chui Tr v gi tr nguyn thy (true hoc false) ca i 4 4 tng Boolean Miu t Cha hm to mu ca i tng Cho php b sung thuc tnh v phng thc cho i tng NN IE 4 4 3 4

valueOf()

V d: <html> <body> <script type="text/javascript"> var b1=new Boolean( 0) var b2=new Boolean(1) var b3=new Boolean("") var b4=new Boolean(null) var b5=new Boolean(NaN) var b6=new Boolean("false") document.write("0 is boolean "+ b1 +"<br />") document.write("1 is boolean "+ b2 +"<br />") document.write("An empty string is boolean "+ b3 + "<br />") document.write("null is boolean "+ b4+ "<br />") document.write("NaN is boolean "+ b5 +"<br />") document.write("The string 'false' is boolean "+ b6 +"<br />") </script> </body> </html> 62

4.2.3.3 i tng Date


i tng Date c s dng lm vic vi ngy thng v thi gian. to ra mt thc th ca i tng Date v gn gi tr ti bin d, thc hin cc bc sau: var d=new Date() Sau khi to c thc th i tng Date, c th truy cp ti tt c cc method ca i tng Date thng qua bin d. tr v ngy hin thi trong thng ca i tng Date, c th vit nh sau: d.getDate() i tng Date c th c cc tham s nh sau: new Date(milliseconds) new Date(dateString) new Date(yr_num, mo_num, day_num [, hr_num, min_num, sec_num, ms_num]) milliseconds - the number of milliseconds since 01 January, 1970 00:00:00 dateString - the date in a format that is recognized by the Date.parse method yr_num, mo_num, day_num - the year, month or day of the date hr_num, min_num, sec_num, ms_num - the hours, minutes, seconds and milliseconds

Nu s dung Date(), JavaScript tao ra mt i tng cho ngay hin thi theo thi gian trn may cuc b var d=new Date("October 12, 1988 13:14:00") var d=new Date("October 12, 1988") var d=new Date(88,09,12,13,14,00) var d=new Date(88,09,12) var d=new Date(500) Cac thuc tinh Cu phap: object.property_name Thuc tnh constructor prototype Cac phng thc Phng thc Date() getDate() getDay() getMonth() getFullYear() getYear() getHours() getMinutes() getSeconds() Miu t Cha hm to mu ca i tng Cho php b sung thuc tnh cho i tng date NN IE 4 4 3 4

Cu phap: object.method_name() Miu t Tr v i tng Date Tr v ngy ca i tng Date ( t 1-31) Tr v ngy ca i tng Date (t 0-6. 0=Sunday, 1=Monday, vv.) Tr v gi tr thng ca i tng Date (t 0-11. 0=January, 1=February, vv.) Tr v gi tr nm ca i tng Date (bn ch s) Returns the year of a Date object (from 0-99). Use getFullYear instead !! Tr v gi tr Gi Tr v gi tr pht Tr v g tr giy NN 2 2 2 2 4 2 2 2 2 IE 3 3 3 3 4 3 3 3 3 63

parse() setDate() setFullYear() setHours() setMilliseconds() setMinutes() setMonth() setSeconds() setTime() setYear()

Tr v gi tr chui Thit lp gi tr ngy ca thng Thit lp gi tr nm Thit lp gi tr gi Thit lp gi tr milli giy Thit lp gi tr pht Thit lp gi tr thng Thit lp gi tr giy Thit lp gi tr milli giy Thit lp gi tr nm (00-99)

2 2 4 2 4 2 2 2 2 2

3 3 4 3 4 3 3 3 3 3

V d: <html> <body> <script type="text/javascript"> var d=new Date() var weekday=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday") var monthname=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec") document.write(weekday[d.getDay()] + " ") document.write(d.getDate() + ". ") document.write(monthname[d.getMonth()] + " ") document.write(d.getFullYear()) </script> </body> </html> Kt qu: hin th ngy y

4.2.3.5 i tng Math


i tng toan hoc c xy dng sn cha hng s va ham. Khng cn phai tao ra i tng Math trc khi s dung no. V d: lu tr s ngu nhin t 0 ti 1 trong bin "r_number": r_number=Math.random() r_number=Math.round(8.6) Cac thuc tinh Cu phap: object.property_name Thuc tnh E LN2 LN10 LOG2E LOG10E PI SQRT1_2 SQRT2 Cac phng thc Miu t NN 2 2 2 2 2 2 2 2 IE 3 3 3 3 3 3 3 3

64

Cu phap: object.method_name() Phng thc abs(x) acos(x) asin(x) atan(x) atan2(y,x) ceil(x) cos(x) exp(x) floor(x) log(x) max(x,y) min(x,y) pow(x,y) random() round(x) sin(x) sqrt(x) tan(x) Miu t NN 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 IE 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3

4.2.3.6 i tng String


i tng String c s dng vi cc vn bn. Cc thuc tnh v phng thc c miu t di y: Cc thuc tnh C php: object.property_name Phng thc constructor Length Cc phng thc Phng thc big() blink() bold() charAt(index) charCodeAt(i) concat() Fontcolor() fontsize() fromCharCode() indexOf() italics() lastIndexOf() Miu t Cha hm to mu ca i tng Tr v s cc k t trong chui NN IE 4 4 2 3

C php: object.method_name() Miu t Tr v c ch ln Tr v chui nhp nhy Tr v chui m Tr v k t ti v tr xc nh Tr v Unicode ca k t ti v tr xc nh Cng chui nh mu chui nh kch c chui Tr v gi tr k t trong bng m Unicode Tr v v tr xut hin u tin ca chui xc nh trong chui khc. Gi tr = -1 nu khng xut hin nh kiu ch nghing Tr v v tr xut hin u tin ca chui xc nh trong chui khc. Gi tr = -1 nu khng xut hin. Phng NN 2 2 2 2 4 4 2 2 4 2 2 2 IE 3 3 3 4 4 3 3 4 3 3 3

65

thc ny thc hin t phi qua tri Tr v chui nh mt hyperlink Tng t nh indexOf v lastIndexOf, nhng n tr v chui, hoc null thay v gi tr s replace() Thay th gi tr k t search() Tr v gi tr nguyn nu cha k t slice() Tr v chui cha ch s k t small() nh dng ch nh split() Chia chui thnh cc mng chui strike() nh dng gch ngang chui sub() Ch s di substr() Tr v cc k t xc nh. V d 14,7 tr v 7 k t t 14 k t (bt u t 0) Substring() Tr v cc k t xc nh. V d 7,14 tr v cc k t t 7 tr ln tr 14 (bt u t 0) sup() CH s trn toLowerCase() Chuyn i sang ch thng anchor("anchorname") Tr v neo toUpperCase() Chuyn i sang ch hoa link() match()
V d:

2 4 4 4 4 2 4 2 2 4 2 2 2 2 2

3 4 4 4 4 3 4 3 3 4 3 3 3 3 3

html> <body> <script type="text/javascript"> var str="W3Schools is great!" document.write(str.substr(2,6)) document.write("<br /><br />") document.write(str.substring(2,6)) </script> <p> Phng thc substr() tra v mt phn ca chui. Nu ghi l (2,6), chui tr v s bt u t k t th 2 n 6 </p> <p> The substring() method also returns a specified part of a string. If you specify (2,6) it returns all characters from the second character (start at 0) and up to, but not including, the sixth character. </p> </body> </html>

4.2.4. Ham
4.2.4.1. Khai bo hm
to ra mt hm cn phi nh ngha tn hm v cc i s ca hm:
function myfunction(cc i s) { Cu lnh }

66

function myfunction() // Hm khng c i s { Cu lnh }

i s l cc bin c s dng trong hm. Gi tr ca bin s c t gi tr khi c li gi hm. Bng cch t cc hm phn Head trong vn bn, m bo c rng tt c cc m trong hm c lp trc khi c li gi hm. Mt s hm tr gi tr v ti biu thc:
function result(a,b) { c=a+b return c }

4.2.4.2. Li gi hm
Mt hm khng c thc hin trc khi n c gi. C th gi hm cng vi cc i s hoc khng ty thuc vo cch khai bo hm: myfunction(cc i s) hoc myfunction() Cu lnh Return Cc hm s tr v gi tr phi s dng cu lnh return. Cu lnh return ch ra gi tr c tr v ni m hm c gi. function total(a,b) { result=a+b return result } sum=total(2,3) V d 1: <html> <head> <script type="text/javascript"> function myfunction() { alert("HELLO") } </script> </head> <body> <form> <input type="button" onclick="myfunction()" value="Call function"> </form> <p>By pressing the button, a function will be called. The function will alert a message.</p> </body> </html> V d 2: <html> 67

<head> <script type="text/javascript"> function myfunction(txt) { alert(txt) } </script> </head> <body> <form> <input type="button" onclick="myfunction('Hello')" value="Call function"> </form> <p>By pressing the button, a function with an argument will be called. The function will alert this argument.</p> </body> </html> V d 3: <html> <body> <script language="JavaScript" type="text/javascript"> function convertToCentigrade(degFahren) { var degCent; degCent = 5/9 * (degFahren - 32); return degCent; } var degFahren = new Array(212, 32, -459.67); var degCent = new Array(); var loopCounter; for (loopCounter = 0; loopCounter <= 2; loopCounter++) { degCent[loopCounter] = convertToCentigrade(degFahren[loopCounter]); } for (loopCounter = 2; loopCounter >= 0; loopCounter--) { document.write("Value " + loopCounter + " was " + degFahren[loopCounter] + " degrees Fahrenheit"); document.write(" which is " + degCent[loopCounter] + " degrees centigrade<br>"); } </script> </body> </html>

4.2.5. Lp trinh hng i tng trong JavaScript


4.2.5.1 Tao mt i tng
tao mt i tng, chung ta s dung cu lnh new 68

Cu phap: var myVariable = new tnitng(cc tham s la chn); Cc tham s la chn ph thuc vo khai bo cc Contructor V d: var myArray = new Array(); var myArray = new Array("Paul", "Paula", "Pauline"); var myDate = new Date(); var myDate = new Date("1 Jan 2000"); Trong kiu d liu nguyn thuy, bin lu tr gia tri thc s

var myNumber = 23; co nghia bin myNumber lu gia tri 23. Tuy nhin cac bin c gan ti cac i tng se khng lu tr gia tri thc s va chi tham chiu ti ia chi b nh cha d liu. var myArrayRef = new Array(0, 1, 2); var mySecondArrayRef = myArrayRef; myArrayRef[0] = 100; alert(mySecondArrayRef[0]); S dung cac thuc tinh cua i tng

myArray.length var myVariable = myArray.length; alert(myArray.length); myArray.length = 12; Goi phng thc cua i tng

myArray.sort(); Kiu nguyn thy and i tng

Thc cht ra cac i tng String, Number va Boolean tng ng vi cac kiu d liu nguyn thuy string, number, Boolean. Vi du tao ra mt i tng String cha dong text."I'm a String object," var myString = new String("I'm a String object"); var lengthOfString = myString.length; Tra v s ki t trong i tng S dung kiu nguyn thuy: var mySecondString = "I'm a primitive string";

4.2.6. Lp trnh vi cc i tng ca trnh duyt

69

Trnh duyt c to bi cc i tng. Khi Jscript chy trn nn trnh duyt, chng ta cso th truy cp vo cc i tng ca trnh duyt chnh xc nh chng ta truy cp vo cc i tng ca Jscript. Trnh duyt a ra rt nhiu i tng, v d nh i tng window tng ng vi ca s ca trnh duyt. Chng ta tng s dng 2 phng thc ca i tng ny l alert() v prompt(). Cc i tng khc cng c hiu lc i vi trnh duyt chnh l bn thn trang, c biu din bi i tng vn bn (document object). Quay tr li cc phn trc chng ta s dng thuc tnh bgColor ca i tng document thay i mu nn ca trang web. Chng ta s dng phng thc write() ca i tng vit thng tin ra trang web. Rt nhiu i tng khc c s dng trong m HTML nh l i tng img ca th <img> Tp hp cc i tng m trnh duyt cung cp s dng cho Jscript c gi l Brower Object Model (BOM).

4.2.6.1 Gii thiu cc i tng trnh duyt


Trong phn ny chng ta xem xt cc i tng ca BOM c hiu lc i vi tt c cc trnh duyt. BOM cung cp rt nhiu i tng, nhng ch khong 10% c s dng.

Mt trang web c biu din trong BOM bi i tng document.

4.2.6.2 i tng Windows


i tng window l i tng ton cc, c ngha l chng ta khng phi s dng tn ca n truy cp cc thuc tnh v phng thc. Cc hm v bin cc b c to ra nh cc thuc 70

tnhv i tng ton cc. V d, hm alert() thc cht l phng thc ca i tng window. alert("Hello!"); hoc window.alert("Hello!"); C hai trnh duyt bao gm cc i tng document, navigator, history, screen, v location. i tng Document: biu din cc trang i tng navigator: lu thng tin v trnh duyt i tng screen: cha thng tin v kh nng hin th ca my trm i tng location: lu tr chie tit v v tr trang hin thi.

S dng i tng window Mt v d n gin s dng cc thuc tnh v phng thc ca i tng window l tc ngv vo thanh trang thi ca document thay i thng bo mc nhc ca thanh trang thi ca window, chng ta s dng thuc tnh defaultStatus property. window.defaultStatus = "Hello and Welcome"; hoc defaultStatus = "Hello and Welcome"; <html> <head> <script language="JavaScript" type="text/JavaScript"> window.defaultStatus = "Hello and Welcome"; </script> </head> </html> Trong mt s trng hp nu chng ta khai bo bin trng vi tn i tng hoc thuc tnh ca BOM khng xy ra li nhng khng nhn c kt qu chnh xc var defaultStatus; defaultStatus = "Welcome to my website"; Trong trng hp ny chng ta hoc s dng tn bin khc hoc c php chnh tc truy cp thuc tnh ca window var defaultStatus; window.defaultStatus = "Welcome to my website";

4.2.6.3 i tng history


i tng history theo di nhng trang m ngi s dng duyt qua. Danh sch cc trang c gi t stack history ca cc trnh duyt. N cho php ngi s dng bm vo phm Back hoc Forward ca trnh duyt thm li nhng trang va duyt. Ging nh i tng Array ca Jscript, i tng history c thuc tnh chiu di (length). i tng history c phng thc back() v forward(), go() .. history.go(-2); Quay tr li 2 mc history.go(3);.Tin ln 3 mc
Note: go(-1) tng ng vi back() , v go(1) tng ng forward().

71

4.2.6.4 i tng location


i tng location lu tr rt nhiu thng tin c tch v v tr hin thi ca trang. Khng ch lu tr v URL cho trang m server lu trang , s cng kt ni server, giao thc c s dng. Nhng thng tin ny tng ng vi cc thuc tnh href, hostname, port, v giao thc ca i tng location ly c v tr trang hin thi, c th s dng cc phng thc ca i tng v tr thay i v tr v lm ti trang hin thi.

4.2.6.5 Thay i v tr (Changing Locations)


Chng ta c th duyt cc trang khc theo 2 cch. Hoc s dng thuc tnh href ch ti trang khc, hoc c th s dng phng thc relplace(). Kt qu ca hai cch ny tng t nh nhau. S khc nhau l replace() xa b trang hin thi trong stack history v thay vo l gi tr mi. window.location.replace("myPage.htm"); window.location.href = "myPage.htm"; i tng navigator Thc cht i tng navigator thuc tnh ca i tng window.

4.2.6.6 i tng screen


Thuc tnh i tng screen ca i tng window cha rt nhiu thng tin kh nng hin th ca my trm. Cc thuc tnh ca n bao gm cc thuc tnh chiu cao, rng, xc nh ra vng dc, ngang ca screen

4.2.6.7 i tng document


Cng vi i tng window, i tng document l mt trong i tng quan trng v chung nht c s dng trong BOM. Thng qua i tng ny, c th truy cp ti cc thuc tnh v phng thc ca mt vi i khac inh nghia bi cac the HTML. Cac thuc tinh va phng thc trong cac phin ban trinh duyt khac nhau rt nhiu, trong phn nay chung ta tp trung cac thuc tinh va phng thc chung nht i vi tt ca cac trinh duyt i tng document co cac thuc tinh kt hp vi no, thc cht la cac mang. Nhng thuc tinh chinh o la cac mang forms, images va links. IE4 va 5 h tr thm mt s cac thuc tinh mang khac nh la tt ca thuc tinh mang la mang cua cac th biu din bi cac i tng trong trang. Con NN h tr cac thuc tinh mang khng c h tr bi IE vi du nh cac mang the. a. S dung i tong document Vi du: thit lp mau nn da vao ch man hinh cua may tram <html> <body> <script language="JavaScript" type="text/JavaScript"> switch (window.screen.colorDepth) { case 1: case 4: 72

document.bgColor = "white"; break; case 8: case 15: case 16: document.bgColor = "blue"; break; case 24: case 32: document.bgColor = "skyblue"; break; default: document.bgColor = "white"; } document.write("Your screen supports " + window.screen.colorDepth + "bit color"); </script> </body> </html> Gia tri thuc tinh colorDepth tra v cac gia tri 1, 4, 8. 15, 16, 24, 32. Chung biu din s cac bit c gan cho mi pixel trn man hinh. b. Mang cac anh - The images Array <img ALT="USA" name=myImage src="usa.gif"> Mi anh trong trang co mt i tng img c tao ra. Cac i tng c lu trong mang images. Mang nay la thuc tinh cua document. Anh u tin trong trang c truy vn thng qua images[0]. Co th gan bin tham chiu ti i tng img trong mang images. var myImage2 = document.images[1]; Chung ta co th truy cp cac i tng img trong mang images bng tn. Vi du, i c bi the <img>, co tn la myImage, co th c truy cp trong thuc tinh mang anh cua i tng document nh sau: document.images["myImage"] Bi vi thuc tinh document.images la mt mang, no co cac thuc tinh t cua i tng mang Jscritp nh thuc tinh length. Vi du, nu chung ta mun bit co bao nhiu anh trong trang, chung ta co th s dung document.images.length. <html> <body> <img name=img1 src="" border=0 width=200 height=150> <script language="JavaScript" type="text/JavaScript"> var myImages = new Array("usa.gif","canada.gif","jamaica.gif","mexico.gif"); var imgIndex = prompt("Enter a number from 0 to 3",""); document.images["img1"].src = myImages[imgIndex]; </script> </body> </html> c.Mang links 73

i vi mi the hyperlink <A> inh nghia vi thuc tinh href, trinh duyt tao ra mt i tng A. Thuc tinh quan trong nht cua i tng A o la href, tng ng vi thuc tinh cua the. S dung thuc tinh nay, chung ta co th tim cac im lin kt u va co th thay i iu nay thp chi sau khi trang o c nap Tp hp cac i tng trong trang cha bn trong mang links[], tng t nh i tng img trong mang images[] d. Code kt ni ti cac s kin trang Web Cac s kin xut hin khi co mt hanh ng nao xay ra. Vi du nh ngi s dung bm vao trang, siu lin kt hoc di chuyn con tro ti mt dong text nao o gy ra cac s kin. e. X ly cac s kin nh cac thuc tinh: <html> <body> <A href="somepage.htm" name="linkSomePage"> Click Me </A> </body> </html> <A href="somepage.htm" name="linkSomePage" onclick="alert('You Clicked?')"> Click Me </A> <html> <body> <script language="JavaScript"> function linkSomePage_onclick() { alert('You Clicked?'); return true; } </script> <A href="somepage.htm" name="linkSomePage" onclick="return linkSomePage_onclick()"> Click Me </A> </body> </html> Mt vai s kin khng lin kt trc tip ti hanh ng cua ngi s dung. Vi du, i tng window co s kin load, xay ra khi trang c nao va mt s du unload xay ra khi trang unload (co th chuyn ti mt trang khac hoc trinh duyt bi ong lai). Cac s kin nay nm trong tag <body>.
<body language=JavaScript onload="myOnLoadfunction()" onunload="myOnUnloadFunction()">

f. X ly cac s kin nh cac thuc tinh Theo cch thc kt ni ti cc s kin, chng ta cn phi nh ngha hm s c thc hin khi s kin xut hin. Sau , thit lp thuc tnh x l x kin ca i tng n hm n ngha. 74

V d minh ha: <html> <body> <script language="JavaScript"> function linkSomePage_onclick() { alert('This link is going nowhere'); return false; } </script> <A href="somepage.htm" name="linkSomePage"> Click Me </A><P> <A href="otherpage.htm" name="linkOtherPage"> Click Me </A><p> <script language="JavaScript" type="text/JavaScript"> window.document.links[0].onclick = linkSomePage_onclick; </script> </body> </html> Hin th nh ngu nhin khi mt trang c np <html> <head> <script language="JavaScript"> var myImages = new Array("usa.gif","canada.gif","jamaica.gif","mexico.gif"); function changeImg(imgNumber) { var imgClicked = document.images[imgNumber]; var newImgNumber = Math.round(Math.random() * 3); while (imgClicked.src.indexOf(myImages[newImgNumber]) != -1) { newImgNumber = Math.round(Math.random() * 3); } imgClicked.src = myImages[newImgNumber]; return false; } </script> </head> <body> <A href="" name="linkImg1" onclick="return changeImg(0)"> <img name=img0 SRC="usa.gif" border=0 > </A> <A href="" name="linkImg2" onclick="return changeImg(1)"> <img name="img0" SRC="mexico.gif" border="0" > </A> </body> </html>

4.2.7. HTML Forms


75

Cac Form cung cp cach thc nhom cac phn t tng tac HTML vi nhau vi cung mt muc ich. Vi du, mt form cha cac phn t cho phep ngi s dung nhp d liu vi du nh ng ki hom th min phi. Cu phap: <form cac thuc tinh > Cac the (cac iu khin nh input, button) </form> Thuc tnh action URL Gi tr Miu t DTD

Mt URL nh ngha ni gi d liu khi m phm STF submit c bm

Cc thuc tnh la chn Thuc tnh accept accept-charset enctype method Gi tr Hin th kiu ni dung charset_list mimetype get post Miu t DTD STF Danh sch tch bit du , ca tp k t t STF d liu form. Gi tr mc nh l "unknown" Kiu mime s dng m ha ni dung ca form Phng thc HTTP gi d liu n URL hot ng. Mc nh l get method="get": Phng thc ny gi ni dung form trong URL: URL? name=value&name=value. Ch : nu gi tr form khng phi l k t ASSCII hoc vt qu 100 k t, cn phi dng method="post". method="post": PHng thc ny gi ni dng trong phn body ca yu cu. Ch : hu ht cc trnh duyt khng nh du cc yu cu post Xc nh tn duy nht ca form ch m URL. _blank m URL trong ca s mi _self m URL ngay trong cng frame _parent m trong frameset cha _top m trong body ca ca s STF STF

name target

form_name _blank _self _parent _top

TF TF

Cc thuc tnh chun id, class, title, style, dir, lang, xml:lang V d: <form name="myForm"> </form> Mang cac form 76

<html> <head> <script language="JavaScript" type="text/javascript"> function window_onload() { var numberForms = document.forms.length; var formIndex; for (formIndex = 0; formIndex < numberForms; formIndex++) { alert(document.forms[formIndex].name); } } </script> </head> <body language=JavaScript type="text/javascript" onload="window_onload()"> <form name="form1"> <p>This is inside form1</p> </form> <form name="form2"> <p>This is inside form2</p> </form> <form name="form3"> <p>This is inside form3</p> </form> </body> </html> Cac thuc tinh va phng thc khac cua form Co th truy cp vao cac iu khin trong form bng thuc tinh elements[] cua i tng form. Mang nay ging nh thuc tinh mang forms[] cua i tng document. Mang elements[] chua tt ca cac i tng tng ng vi cac phn t tng tac HTML bn trong form, ngoai tr s kin <input type=image>. Cac thuc tinh rt co ich cho vic lp cac phn t trong mu. Vi du, co th lp mi phn t kim tra tinh hiu lc cua d liu nhp vao trc khi gi i. Thuc tinh elements[] cua i tng co thuc tinh length cho phep bit c co bao nhiu phn t trong form. i tng form cung co thuc tinh length cho phep bit c s cac phn t trong form. document.myForm.length tng ng document.myForm.elements.length. Khi submit d liu ti server, chung ta thng s dung button submit, tuy nhin i tng Form co mt method submit(), thc hin gn ging nh phim submit. S khac nhau o la x ly s kin onsubmit khng c goi khi s dung phng thc submit() cua i tng method() Cac phn t HTML trong Form Hu ht cac phn t c tao ra u s dung tag <input>. Mt trong thuc tinh quan trong cua input o la thuc tinh type. Thuc tinh nay xac inh phn t se la gi. Cac phng thc va thuc tinh chung 77

Thuc tinh name: s dung gia tri thuc tinh nay tham chiu ti phn t trong script. Thuc tinh value: tra v gia tri cua phn t. Thuc tinh form: tra v gia tri cua form ma phn t nm bn trong. Thuc tinh type: tra v thuc tinh cua phn t Phng thc focus() va blur(): Nu co mt phn t c focus, bt ki go phim bt ky se c gi ti phn t nay. Trong trng hp focus vao phim nu go phim enter tng ng vi x ly s kin onclick. Ngi s dung co th thit lp focus bng cach s dung click vao hoc s dung phim tab la chon. Tuy nhin, ngi lp trinh co th quyt inh phn t nao c focus bng cach s dung phng thc focus() cua i tng element. Vi du, nu chung ta co mt text box cho ngi s dung a vao tui. Trong trng hp ngi s dung a vao gia tri la ki t, chung ta co th yu cu nhp lai. Phng thc blur() i ngc vi phng thc focus(). i vi cac phng thc focus() va blur(), tt ca cac i tng cua phn t co x ly s kin onfocus va onblur. Cac phn t Button Cu phap <input type=, .> <input type="button" name="myButton" value="Click Me"> <html> <head> <script language=JavaScript> var numberOfClicks = 0; function myButton_onclick() { numberOfClicks++; window.document.form1.myButton.value = 'Button clicked ' + numberOfClicks + ' times'; } </script> </head> <body> <form name=form1> <input type='button' name='myButton' value='Button clicked 0 times' onclick="myButton_onclick()"> </form> </body> </html> onmouseup v onmousedown <html> <head> <script language=JavaScript> function myButton_onmouseup() { document.form1.myButton.value = "Mouse Goes Up" } function myButton_onmousedown() 78

{ document.form1.myButton.value = "Mouse Goes Down" } </script> </head> <body> <form name=form1> <input type='button' name='myButton' value=' Mouse Goes Up ' onmouseup="myButton_onmouseup()" onmousedown="myButton_onmousedown()"> </form> </body> </html> Cac phim Submit va Reset
<input type="submit" value="Submit" name="submit1"> <input type="reset" value="Reset" name="reset1">

Khi click vao phim submit, d liu t form ma phim nm cung se t ng gi ti sever, ma khng cn bt ky mt script nao ca. Tng t cung nh vy khi click vao phim reset, tt ca cac phn t trong form se bi xoa bo va hin thi gia tri mc inh. Phim submit va reset tng ng vi i tng Submit va Reset, co thuc tinh, phng thc, va s kin ging nh i tng Button Phn t Text Cu phap <input type=text .> <input type="text" name="myTextBox" size=10 maxlength=15 value="Hello World"> Phng thc select(), parseINt() hoc parseFloat() hoc Number() S kin cua object Text: onchange, onselect, onkeydown, onkeypress, va onkeyup
<input type="text" name=txtReadonly value="Look but don't change" onfocus="window.document.form1.txtReadonly.blur()" READONLY=true>

V d form n gin kim tra d liu u vo <html> <head> <script language=JavaScript> function butCheckForm_onclick() { var myForm = document.form1; if (myForm.txtAge.value == "" || myForm.txtName.value == "") { alert("Please complete all the form"); if (myForm.txtName.value == "") { myForm.txtName.focus(); } else { myForm.txtAge.focus(); } 79

} else { alert("Thanks for completing the form " + myForm.txtName.value); } } function txtAge_onblur() { var txtAge = document.form1.txtAge; if (isNaN(txtAge.value) == true) { alert("Please enter a valid age"); txtAge.focus(); txtAge.select(); } } function txtName_onchange() { window.status = "Hi " + document.form1.txtName.value; } </script> </head> <body> <form name=form1> Please enter the following details: <p> Name: <br> <input type="text" name=txtName onchange="txtName_onchange()"> <br> Age: <br> <input type="text" name=txtAge onblur="txtAge_onblur()" size=3 maxlength=3> <br> <input type="button" value="Check Details" name=butCheckForm onclick="butCheckForm_onclick()"> </form> </body> </html> Hp text mtkhu <input name=password1 type=password> Hp text n <input type="hidden" name=myHiddenElement> Phn t textarea <textarea name=myTextArea cols=40 rows=20>Hello World Line 2 </textarea> Theo di d kin 80

tr gip minh ha cc s kin nh phm ln, xung, bm phm bt k.. lm vic nh th no, v d di y minh ha iu <html> <head> <script language=JavaScript> function DisplayEvent(eventName) { var myMessage = window.document.form1.textarea2.value; myMessage = myMessage + eventName; window.document.form1.textarea2.value = myMessage; } </script> </head> <body> <form name=form1> <textarea rows=15 cols=40 name=textarea1 onchange="DisplayEvent('onchange\n');" onkeydown="DisplayEvent('onkeydown\n');" onkeypress="DisplayEvent('onkeypress\n');" onkeyup="DisplayEvent('onkeyup\n\n');"></textarea> <textarea rows=15 cols=40 name=textarea2></textarea> <br><br> <input type="button" value="Clear Event TextArea" name=button1 onclick="window.document.form1.textarea2.value=''"> </form> </body> </html> Checkboxes v Phm Radio <input type="checkbox" name=chkDVD checked value="DVD"> <input type="radio" name=radCPUSpeed checked value="1 GHz"> For example, to create a group of three radio buttons, our HTML would be <input type="radio" name=radCPUSpeed checked value="800 MHz"> <input type="radio" name=radCPUSpeed value="1 GHz"> <input type="radio" name=radCPUSpeed value="1.5 GHz"> V d: <html> <head> <script language=JavaScript> var radCpuSpeedIndex = 0; function radCPUSpeed_onclick(radIndex) { var returnValue = true; if (radIndex == 1) { returnValue = false; alert("Sorry that processor speed is currently unavailable"); // Next line works around a bug in IE that doesn't cancel the 81

// Default action properly document.form1.radCPUSpeed[radCpuSpeedIndex].checked = true; } else { radCpuSpeedIndex = radIndex; } return returnValue; } function butCheck_onclick() { var controlIndex; var element; var numberOfControls = document.form1.length; var compSpec = "Your chosen processor speed is "; compSpec = compSpec + document.form1.radCPUSpeed[radCpuSpeedIndex].value; compSpec = compSpec + "\nWith the following additional components\n"; for (controlIndex = 0; controlIndex < numberOfControls; controlIndex++) { element = document.form1[controlIndex]; if (element.type == "checkbox") { if (element.checked == true) { compSpec = compSpec + element.value + "\n"; } } } alert(compSpec); } </script> </head> <body> <form name=form1> <p> Tick all of the components you want included on your computer <br><br> <table> <tr> <td>DVD-ROM</td> <td><input type="checkbox" name="chkDVD" value="DVD-ROM"></td> </tr> <tr> <td>CD-ROM</td> <td><input type="checkbox" name="chkCD" value="CD-ROM"></td> </tr> <tr> <td>Zip Drive</td> <td><input type="checkbox" name="chkZip" value="ZIP Drive"></td> </tr> </table> <p> Select the processor speed you require <table> <tr> <td><input type="radio" name="radCPUSpeed" checked onclick="return radCPUSpeed_onclick(0)" value="3.8 GHz"></td> 82

<td>3.8 GHz</td> <td><input type="radio" name="radCPUSpeed" onclick="return radCPUSpeed_onclick(1)" value="4.8 GHz"></td> <td>4.8 GHz</td> <td><input type="radio" name="radCPUSpeed" onclick="return radCPUSpeed_onclick(2)" value="6 Ghz"></td> <td>6 GHz</td> </tr> </table> </p> <input type="button" value="Check Form" name="butCheck" onclick="return butCheck_onclick()"> </form> </body> </html> Phn t select <select> and </select> tags. <select name=theDay size=5> <option value=0 selected>Monday <option value=1>Tuesday <option value=2>Wednesday <option value=3>Thursday <option value=4>Friday <option value=5>Saturday <option value=6>Sunday </select> Th <option> Monday cha t c la chn, to ra la chn mc nh khi trang c np. Gi tr ca cc option c nh ngha bi s. Nu mun to thnh hp danh sch ri xung, chng ta cn thay i thuc tnh size trong th <select> thnh 1: <select name=theDay size=5> Nu mun ngi dng la chn nhiu hn mt gi tr trong danh sch ti mt thi im, cn b sung thm thuc tnh multiple. Th <select> to ra i tng Select. i tng ny c thuc tnh mng options[], v mng ny tao ra cc i tng Option, mi mt phn t <option> trong phn t <select> kt hp vi i tng Select. V d: v d trc, nu phn t <select> ch trong form (tn form l theform) th: Document.theform.theday.options[0] tham chiu ti gi tr u tin (Monday) i tng Option c index, text v thuc tnh gi tr. Thuc tnh index tr v v tr ca option trong mng options[]. Thuc tinh text c hin th trong danh sch, cn thuc tnh value xc nh gi tr cho option. V d var theDayElement = window.document.form1.theDay; document.write("There are " + theDayElement.length + "options<br>"); var optionCounter; for (optionCounter = 0; optionCounter < theDayElement.length; optionCounter++) { document.write("Option text is " + theDayElement.options[optionCounter].text) document.write(" and its value is "); 83

document.write(theDayElement.options[optionCounter].value); document.write("<br>") } B sung mi option - To ra i tng mi Option - B sung vo mng options[] phn t option var myNewOption = new Option("TheText","TheValue"); document.theForm.theSelectObject.options[0] = myNewOption; Loi b option: gn bng gi tr null document.theForm.theSelectObject.options[0] = null; V d <html> <head> <script language=JavaScript> function butRemoveWed_onclick() { if (document.form1.theDay.options[2].text == "Wednesday") { document.form1.theDay.options[2] = null; } else { alert('There is no Wednesday here!'); } } function butAddWed_onclick() { if (document.form1.theDay.options[2].text != "Wednesday") { var indexCounter; var days = document.form1.theDay; var lastoption = new Option(); days.options[6] = lastoption; for (indexCounter = 6;indexCounter > 2; indexCounter--) { days.options[indexCounter].text = days.options[indexCounter - 1].text; days.options[indexCounter].value = days.options[indexCounter - 1].value; } var option = new Option("Wednesday",2); days.options[2] = option; } else { alert('Do you want to have TWO Wednesdays?????'); } } </script> </head> <body> <form name=form1> 84

<select name=theDay size=5> <option value=0 selected>Monday <option value=1>Tuesday <option value=2>Wednesday <option value=3>Thursday <option value=4>Friday <option value=5>Saturday <option value=6>Sunday </select> <br> <input type="button" value="Remove Wednesday" name=butRemoveWed onclick="butRemoveWed_onclick()"> <input type="button" value="Add Wednesday" name=butAddWed onclick="butAddWed_onclick()"> <br> </form> </body> </html> B sung Option mi trong IE Trong IE< c rt nhiu thuc tnh b sung, phng thc v s kin c kt hp vi i tng. Mng options[] c phng thc add() v remove() cho php b sung v loi b option. Trc khi b sung, cn phi to trc bng cch s dng ton t new PHng thc add() c 2 tham s: gi tr v th t V d function butAddWed_onclick() { if (document.form1.theDay.options[2].text != "Wednesday") { var option = new Option("Wednesday",2); document.form1.theDay.options.add(option,2); } else { alert('Do you want to have TWO Wednesdays?????'); } } V d s dng phng thc remove() function butRemoveWed_onclick() { if (document.form1.theDay.options[2].text == "Wednesday") { document.form1.theDay.options.remove(2); } else { alert('There is no Wednesday here!'); } } Cc s kin phn t la chn 85

Cc phn t la Select c 3 s kin: onblur, onfocus v onchange. V d <html> <head> <script language=JavaScript> function writeOptions(startNumber, endNumber) { var optionCounter; for (optionCounter = startNumber; optionCounter <= endNumber; optionCounter++) { document.write('<option value=' + optionCounter + '>' + optionCounter); } } function writeMonthOptions() { var theMonth; var monthCounter; var theDate = new Date(1); for (monthCounter = 0; monthCounter < 12; monthCounter++) { theDate.setMonth(monthCounter); theMonth = theDate.toString(); theMonth = theMonth.substr(4,3); document.write('<option value=' + theMonth + '>' + theMonth); } } function recalcDateDiff() { var myForm = document.form1; var firstDay = myForm.firstDay.options[myForm.firstDay.selectedIndex].value; var secondDay = myForm.secondDay.options[myForm.secondDay.selectedIndex].value; var firstMonth = myForm.firstMonth.options[myForm.firstMonth.selectedIndex].value; var secondMonth = myForm.secondMonth.options[myForm.secondMonth.selectedIndex].value; var firstYear = myForm.firstYear.options[myForm.firstYear.selectedIndex].value; var secondYear = myForm.secondYear.options[myForm.secondYear.selectedIndex].value; var firstDate = new Date(firstDay + " " + firstMonth + " " + firstYear); var secondDate = new Date(secondDay + " " + secondMonth + " " + secondYear); var daysDiff = (secondDate.valueOf() - firstDate.valueOf()); daysDiff = Math.floor(Math.abs((((daysDiff / 1000) / 60) / 60) / 24)); myForm.txtDays.value = daysDiff; return true; } function window_onload() { var theForm = document.form1; var nowDate = new Date(); 86

theForm.firstDay.options[nowDate.getDate() - 1].selected = true; theForm.secondDay.options[nowDate.getDate() - 1].selected = true; theForm.firstMonth.options[nowDate.getMonth()].selected = true; theForm.secondMonth.options[nowDate.getMonth()].selected = true; theForm.firstYear.options[nowDate.getFullYear()- 1970].selected = true; theForm.secondYear.options[nowDate.getFullYear() - 1970].selected = true; } </script> </head> <body language=JavaScript onload="return window_onload()"> <form name=form1> <p> First Date<br> <select name=firstDay size=1 onchange="return recalcDateDiff()"> <script language=JavaScript> writeOptions(1,31); </script> </select> <select name=firstMonth size=1 onchange="return recalcDateDiff()"> <script language=JavaScript> writeMonthOptions(); </script> </select> <select name=firstYear size=1 onchange="return recalcDateDiff()"> <script language=JavaScript> writeOptions(1970,2010); </script> </select> </p> <p> Second Date<br> <select name=secondDay size=1 onchange="return recalcDateDiff()"> <script language=JavaScript> writeOptions(1,31); </script> </select> <select name=secondMonth size=1 onchange="return recalcDateDiff()"> <script language=JavaScript> writeMonthOptions(); </script> </select> <select name=secondYear size=1 onchange="return recalcDateDiff()"> <script language=JavaScript> writeOptions(1970,2010); </script> </select> </p> Total difference in days <input type="text" name=txtDays value=0 readonly> <br> </form> </body> 87

</html>

88

Chng V Active Server Pages


5.1.Gii thiu cng ngh ASP
ASP l cng ngh cho php to ra nhng trang web ng c kh nng giao tip vi ngi dng bng cch lp trnh script trn my ch. M ngun ca nhng chng trnh ny thng c vit bng ngn ng VBScript v c nhng vo cc th c bit trong HTML. Nhng trang web ny s c dch my ch v gi kt qu l nhng trang HTML thng thng v pha ngi dng. Cng ngh ASP c gi trn trong th vin lin kt ng nh (khong 300KB) c tn l ASP.DLL, th vin ny c nm trong b nh ca server v khi bt k ngi s dng no c yu cu n mt file .ASP th li lc ISAPI ny s qun l phn bin dch. ASP s np tt c cc DLLs cn thit vo b nh, thc thi cc m pha my ch c lin quan n Active Server Pages v kt qu to ra l mt trang web di hng HTML. Kt qu ny c my ch gi v pha trnh duyt ca my khch.

5.2 C php v thao tc c bn


5.2.1. Cch chn cc on m VBScript vo trong trang web
a. Chn cc on m
cc on m trong file ASP c th thc hin c th cc trang web ny phi c phn m rng l ASP. Trong trang web c vit cc m ASP th cc on m phi c t gia cp k hiu <%on m ASP y %>. Cp k hiu ny l ranh gii ca cc ActiveX Scripting Engine bit rng on m ny cn phi bin dch v trong phn khai bo ta c th vit cc m ASP. * Chng trnh v d u tin (Hello world). Son tho chng trnh sau v ghi vo th mc gc ca web server vi tn Hello.ASP

Trong v d trn th dng s 6 v dng s 8 dng khai bo bt u v kt thc on script. Dng 7 l ni dung ca script. Lnh Response.Write("Hello World") gi d liu v pha my trm. Dng 7 s gi ti browser ch Hello World. Kt qu khi duyt trang web ny a ch

89

b. Chn cc biu thc.


Ngoi cch s dng cc on m nh trn ASP cn cho php ta chn gi tr cc biu thc mt cch nhanh chng bng cch s dng <%=biu thc%>. Ta c th xem qua v d sau:

Kt qu:

5.2.2. Ch thch
Ch thch l mt phn khng th thiu trong ngn ng, n lm cho m lnh tr nn d c i vi ngi lp trnh. Ch thch trong ASP c t sau du nhy n (') hoc sau chui Rem. V d: ta s thy hai v tr ch thch dng 7 v 8

90

5.2.5. Cc ton t
Cc ton t trong VBScript gn ging cc ton t trong ngn ng lp trnh Turbo Pascal. Ch c mt s ton t khc bit c th hin trong bng sau
TON T BIU DIN V D KT QU V D

M Chia ly phn nguyn Cng chui Gn gi tr cho bin Gn gi tr cho bin kiu i tng

^ \ & hoc + = Set <bin> = <i tng>

2^3 8\3 "Hello" & "World" a=5 set Conn = Server.CreateObject ("ADODB.Connection")

2*2*2 = 8 2 "HelloWorld" bin a c gi tr 5

5.2.4. Hng v bin


a. Khai bo hng
Hng trong VBScript c nh ngha sau t kha Const. Tng t nh cc ngn ng khc ta ch c th s dng gi tr ca hng m khng th thay i gi tr ca hng. C php: Const <TnBin> = <Gi tr> V d di y khai bo hng ba kiu khc nhau:

b. Khai bo bin
Trong VBScript cc bin v hng u khng cn phi quy nh kiu, kiu ca cc bin ny l Variant v n c th gn cho bt k mt kiu no. Vic khai bo bin bt u bng t kha Dim. C php: 91

Dim <tn bin1>, <tn bin 2>,... V d:

Ch : Vic khai bo bin trong VBScript l khng bt buc. Nu ta s dng mt bin cha c khai bo th coi nh bin mi s c t ng to mi. bt buc khai bo bin trc khi s dng ta s dng la chn Option Explicit.

c. Khai bo mng
khai bo mt bin mng c ta s dng lnh Dim vi c php: Dim <Tn bin mng>(n) Khi mng c khai bo vi cc phn t c nh s t 0 n n. Ta c th truy cp vo cc phn t ca mng bng cch: <tn mng>(ch s) V d:

Ta cng c th khai bo mt mng cha xc nh s phn t bng cch b ch s n trong khai bo thng thng. Khi mun dng mng tht s ta phi khai bo li bng lnh ReDim. V d:

5.3. Cc cu lnh
5.3.1. Lnh r nhnh
a. Lnh r nhnh dng khuyt

92

b. Lnh r nhnh y

c. Lnh r nhnh m rng

d. Lnh Select Case


Dng 1 Dng 2

5.3.2. Lnh lp xc nh
a. Lp vi s ln nh trc
Dng 1:

Dng 2

V d M lnh LAP.ASP

Kt qu

93

b. Vng lp For Each ... Next (Lp trong cc phn t ca mt nhm)

M lnh LAP1.ASP

Kt qu

5.3.3. Vng lp khng xc nh


a. Lnh While...wend hoc Do...Loop (Lp khi iu kin ng)

M lnh LAP2.ASP

Kt qu

94

b. Lnh Do Until (Thc hin cho n khi iu kin ng)

M lnh LAP3.ASP

Kt qu

c. Lnh lp Do...Loop While/Until (Thc hin lnh trc khi kim tra iu kin)

95

5.4 Hm v th tc
5.4.1. Hm
a. nh ngha mt hm:

- Public hoc Private: Kiu ca hm c th loi b nu khng cn thit. - Exit Funtion: Thot khi hm m khng thc hin tip phn sau ca lnh ny. - Cc tham s nu c phi c t cch nhau bi du phy (,) v khng khai bo kiu. Khi gi hm cc tham s ny phi c truyn vo s lng v theo ng th t khai bo. - Tr v gi tr cho hm bng cch: <tn hm> = <gi tr>

b. Gi mt hm c nh ngha:
C php <tn hm>[(Cc tham s nu c)] Hoc Call <tn hm>[(Cc tham s nu c)] Ta c th gn gi tr mt hm cho mt bin bng cch <Tn bin> = <Tn hm>[(Cc tham s nu c)]

5.4.2. Th tc
a. nh ngha th tc:

- Public hoc Private: Kiu ca th tc c th loi b nu khng cn thit. - Exit Sub: Thot khi th tc m khng thc hin tip phn sau ca lnh ny. - Cc tham s nu c phi c t cch nhau bi du phy (,) v khng khai bo kiu. Khi gi th tc cc tham s ny phi c truyn vo s lng v theo ng th t khai bo.

b. Gi mt th tc c nh ngha:
C php <tn th tc>[(Cc tham s nu c)] hoc Call <tn th tc>[(Cc tham s nu c)]

5.4.3. V d s dng hm v th tc (Gia phng trnh bc 2 mt n s)


Chng trnh v d: PTBac2.ASP 96

Kt qu khi duyt trang web ny vi a=1, b=2, c=1

5.4.2. MT S HM THNG DNG TRONG VBSCRIPT


HM CHC NNG V D KT QU

HM TON HC
Abs(x) |x| Abs(-1) 1 97

Sqr(x) CBool(Bin) CByte(Bin) CCur(Bin) CDate(Bin) CInt(Bin) CStr(Bin) Date() Now() Second(BTthi gian) Minute(BTthi gian) Hour(BT thi gian) Day(BT thi gian) WeekDay((BTThiGian) Month(BTThiGian) Year(BT thi gian) WeekDayName(n) MonthName(n) IsDate(Biu thc) IsEmpty(Biu thc) IsNull(Biu thc) IsNumeric(Biuthc) IsObject(Biu thc) LCase(Chui) UCase(Chui) Left(Chui, n) Right(Chui, n) Len(Chui) LTrim(Chui) RTrim(Chui) Trim(Chui) Asc(k t)

x HM CHUYN I KIU

Sqr(4)

Chuyn kiu bin thnh kiu bool Chuyn kiu bin thnh kiu byte Chuyn kiu bin thnh kiu Currency Chuyn kiu bin thnh kiu ngy thng Chuyn kiu bin thnh kiu nguyn Chuyn kiu bin thnh kiu chui
HM THI GIAN

Ngy thng nm hin ti Thi im hin ti Ly giy ca BTThiGian Ly pht ca BTThiGian Ly gi ca BTThiGian Ly ngy ca BTThiGian Ngy trong tun ca BTThiGian Ly thng ca BTThiGian Ly nm ca BTThiGian Tn ca ngy th n trong tun Tn ca thng th n trong nm
HM KIM TRA

WeekDayName(2) Monday MonthName(6) June

C phi l biu thc ngy khng Biu thc c rng khng? BT rng l BT cha cha gi tr Biu thc c gi tr l NULL khng? Biu thc c l s khng Biu thc c l i tng khng?
HM X L CHUI

Chuyn chui thnh ch thng Chuyn chui thnh ch hoa Ly n k t bn tri chui Ly n k t bn phi chui di ca chui Ct ht k t trng bn tri chui Ct ht k t trng bn phi chui Ct ht k t trng hai u chui
MT S HM KHC

LCase("heLLo") UCase("heLLo") Left("heLLo",2) Right("heLLo",2) Len ("heLLo",2) LTrim(" heLLo ") RTrim(" heLLo ") Trim(" heLLo ") ASC("A")

"hello" "HELLO" "he" "Lo" 5 "heLLo " " heLLo" "heLLo" 65 98

M k t ASCII ca bin

Chr(n)

K t c m ASCII l n

Chr(65)

"A"

5.4.3. ON M DNG CHUNG


Khi tin hnh xy dng chng trnh nhiu trang khc nhau, trnh phi g li, cp nht khi c thay i cc on m trong mi trang ngi ta c th s dng li cc on m cc trang khc chn vo trang hin thi. C php: <!-- INCLUDE FILE="tn file" --> hoc <!-- INCLUDE VIRTUAL="tn file" -->

Nu s dng INCLUDE VIRTUAL th th mc cha file cn chn vo phi l mt th mc o trn server v phn m rng ca file phi l .INC, cn nu dng INCLUDE FILE th phi ch ra ng dn vt l ca file cn chn.

99

5.5. Tp cu hnh GLOBAL.ASA


Global.asa l mt file c t trong th mc gc ca mt ng dng web, n l file c thc thi ch mt ln u tin vo lc trnh duyt u tin pht yu cu n ng dng web. Lc ny Global.asa c web server tm trn th mc gc ca ng dng v thc thi n. File ny thng c dng np cc cu hnh cn thit, khai bo i tng v t cc th tc p ng s kin.

5.5.1. Cc s kin
a. S kin Application_OnStart
S kin Application_OnStart pht sinh khi ngi dng u tin gi yu cu n ng dng web. Application_OnStart ch xy ra mt ln i vi ngi u tin. Mun s kin ny xy ra li ch c cch khi ng li IIS. Vit lnh p ng s kin ny thng dng khi to gi tr cc bin mc ton cc v hiu lc vi mi ngi dng chng hn nh: s ngi gh thm trang web, ng dn n CSDL,...

b. S kin Session_OnStart
Pht sinh khi ngi dng yu cu trang u tin trong ng dng t trnh duyt. Ta s dng s kin ny khi to cc ga tr bin, cc i tng cn thit. S kin ny c th xy ra nhiu ln vi mi ngi dng

c. S kin Session_OnEnd
S kin ny pht sinh khi phin lm vic ca ngi dng chm dt ngha l n ht hn hoc ngi dng ng ca s trnh duyt li. Trong s kin ny ta thng vit cc th tc xa cc bin nh hoc c th lu li cc trng thi thng tin nu cn. Tng t nh s kin Session_OnStart, s kin Session_OnEnd cng c th xy ra nhiu ln vi mi ngi dng.

d. S kin Applicaton_OnEnd
S kin ny pht sinh khi ng dng ASP c ti xung bng MMC (Microsoft Management Console), hoc khi ng dng b ngng mt cch v thc bi mt l do no (dch v web b ngng trn web server) Tng t nh Application_OnStart, Application_OnEnd ch pht sinh mt ln duy nht, cc m lnh c vit x l s kin ny s c gi sau cng. Ta thng dng s kin ny lu li cc gi tr cn thit ngay trc khi dch v web ngng lm vic.

5.5.2. Khai bo i tng


File cu hnh Global.asa l ni duy nht ta c th khai bo cc i tng COM bng cp th <OBJECT>...</OBJECT> C php

100

Nu ta s dng trnh son tho VisualInterDev trong b VisualStudio th vic thm cc i tng vo Global.asa rt n gin, thao tc cn li ch l ko-th. Ta cn lu rng cc on m trn khng t trong <%...%> - Scope l phm vi ca bin: l Application hoc Session - ID: Tn ta t cho i tng - ProgID hoc ClassID l nh danh ca i tng COM ta mun chn. V d v chn mt i tng

5.5.3. Mt file cu hnh Global.asa n gin

5.5.2. TP HP (COLLECTION) TRONG ASP 5.5.2.1. Khi nim


Tp hp l mt khi nim thng xuyn phi s dng trong ASP. Hiu mt cch n gin, tp hp l mt s cc bin, i tng thuc cng mt i tng no . Trong ASP a s cc i tng u c cc tp hp bn trong n. 101

5.5.2.2. Cch truy cp cc phn t trong tp hp


Mt tp hp trong ASP c tnh cht nh mt mng cc gi tr. Chng ta c th truy cp thng qua mt kha hoc mt s nguyn coi nh ch s ca mng . Mt tp hp thng thng c 3 thuc tnh c bn l Item, Key v Count trong thuc tnh Item l "thuc tnh mc nh" ngha l trong mt s trng hp ta c th khng cn thit vit tn thuc tnh ny khi truy cp.

a. Thuc tnh Item


c dng truy cp n mt phn t no trong tp hp. Ta c th xc nh v tr ca phn t bng mt chui hay c th l mt s. V d: Ta c th truy cp vo tp hp QueryString ca i tng Request nh sau:

hoc ta c th

V thuc tnh Item l thuc tnh mc nh ca tp hp nn ta c th b qua thuc tnh ny cho n gin trong khi vit nh sau:

b. Thuc tnh Key


Thuc tnh ny tr ra tn c th ca mt phn t trong tp hp. Ta c cng thc: - Nu i l ch s ca phn t trong mt tp hp A th name = A.Key(i) l tn ca phn t ny. Khi cch vit A.Item(i) v A.Item(Name) l hon ton tng ng.

c. Thuc tnh Count


Thuc tnh ny tr v tng s phn t trong mt tp hp.

102

5.6. X l cc FORM d liu


5.6.1. M u
Cc form d liu l ni ngi dng c th nhp d liu vo v gi v pha Server. Mt form cha mt hoc nhiu iu khin v ngi s dng c th nhp cc gi tr vo. Sau khi nhp xong d liu ngi s dng s ra lnh gi form i, form cha cc d liu ny s c gi ti a ch c ch nh trong form x l. Kt qu tr v cho ngi dng ph thuc vo trnh x l trn server. nh ngha mt form ta s dng on m

Phng thc: Cch thc gi form i, c th s dng GET hoc POST

5.6.2. S dng phng thc GET


5.6.2.1. nh ngha form dng phng thc GET
nh ngha form dng phng thc GET ta dng on m sau

V d

5.6.2.2. c im form dng GET


Khi nh ngha form dng GET th cc d liu m form gi n trnh x l s c gi i theo phng thc GET. Ngha l cc d liu ny s c a thm vo phn sau ca chui URL trn trnh duyt. Vi cch lm ny c i phn tin dng v ta c th nhp gi tr cc bin trc tip ln URL ca trnh x l. Tuy nhin c mt nhc im l dung lng k t c th nhp ln URL l kh nh (di 2000 k t). Do ngi ta ch dng cch ny khi lng thng tin cn truyn l n gin, dung lng t.

5.6.2.3. Cch ly d liu t form dng GET


ly d liu t form dng GET ngi ta dng tp hp QueryString ca i tng Request. C php: Request.QueryString("<tn iu khin>")

Chi tit v i tng ny s c cp trong cc bi sau. Ta c th tam hiu thng qua v d sau y: 5.6.2.4. V d
Trong v d ny ta lm mt form cho php ngi s dng nhp thng tin v H v tn ri gi v trnh x l theo phng thc GET, trnh x l s hin mt cu thng bo cho ngi . FORMGET.HTM 103

Sau khi nhp d liu trn trnh duyt v nhn Gi i ch chui trn URL

5.6.3. S dng phng thc POST


5.6.3.1. nh ngha form dng phng thc POST
nh ngha form dng POST ta dng on m sau

V d:

5.6.3.2. c im form dng POST


Khi nh ngha form dng POST cc d liu s c gi thng n trnh x l theo phng thc POST, khng qua URL do lng d liu c gi i l khng hn ch. Ngi ta thng dng phng thc POST truyn cc d liu ln.

5.6.3.3. Cch ly d liu t form dng POST


ly d liu t form c gi n theo phng thc POST ngi ta dng tp hp FORM ca i tng Request. C php: Request.Form("<tn iu khin>") Chi tit v i tng ny s c cp trong cc bi sau. Ta c th tam hiu thng qua v d sau y:

5.6.3.4. V d
Trong v d ny ta lm li v d trong phn 2.4 ca bi ny nhng c khc l d liu trong form c gi i theo phng thc POST. FORMPOST.HTM

104

Sau khi nhp d liu trn trnh duyt v nhn Gi i chui trn URL khng c d liu ca form

105

5.7. Cc i tng ci sn trong ASP


5.7.1. Cc i tng ASP
Thc cht ASP c xy dng trn c s hng i tng v n c mt tp cc i tng c ci t sn lm c s cho ngi lp trnh, c cc i tng tin ch (c th ci t hoc khng) v bn thn chng cng c nhng i tng cho ring mnh l cc i tng ActiveX/COM Mt s i tng ci sn thng dng: o Request o Response o Application o Session o Server Cc i tng c cc tp hp, cc thuc tnh v cc phng thc, truy cp vo mt thuc tnh hoc mt phng thc no ca i tng ta s dng: <Tn i tng>.<Tn tp hp | thuc tnh | phng thc> V d: Response.Write("Hello World")

5.7.2. i tng REQUEST


Mt trong nhng mc ch ca ASP l cho php nhn thng tin t pha client v ngi s dng. i tng Request c dng nhn cc thng tin c d dng. i tng Request qun l cc thng tin c gi t pha web browser ln server nh d liu ca cc form, cookies... i tng Request gip chng ta truy cp vo on u v thn cc yu cu HTTP ca ngi s dng. y l i tng rt quan trng v ta phi thng qua n nhn c v p ng cc yu cu ngi s dng a ra. S dng i tng Request chng ta mi c th xy dng c trang web ng v thc hin c cc hot ng khc c ngha hn my ch nh cp nht cc d liu my khch vo c s d liu...

5.7.2.1. Mt s tp hp thng dng trong i tng Request


TN TP HP MIU T

QueryString(<tn bin>) Form(<Tn form>) Cookies(<Tn cookie>) ServerVariables(<tn bin>)

Cha cc gi tr c gi ln t cc yu cu HTTP Get (hiu n gin l t cc URL) Cha cc gi tr trong form c gi n (vi iu kin form phi s dng phng php POST Cha cc thng tin ca cc cookies c gi trong yu cu HTTP Cha danh sch cc gi tr ca cc bin mi trng c xc nh trc

a. Tp hp QueryString
Tp hp QueryString cho php ta ly thng tin t my khch gi n, c th l mt form c gi theo phng php GET hoc d liu c gn vi URL khi trang web c yu cu. 106

a c cc bin vo chng trnh, sau phn cui ca a ch thng thng ta thm du (?) ri sau n tng cp <tn bin> = <gi tr> c phn cch nhau bi du (&).

V d: truyn ba bin a, b, c c gi tr ln lt l 1, 2, 1 v trang PTBAC2.ASP trn server th chui URL khi nh sau.
http://localhost/ptbac2.asp?a=1&b=2&c=1 Tp hp ny c tnh nng tng i hn ch v s lng cc k t c th gi c trong tiu v trong yu cu HTTP. Gii hn d liu ny khong di 2000 k t. Nu s lng k t vt qu s lng gii hn th chng s khng c s dng mc d script vn chy. V d: ta quay li v d Gii phng trnh bc 2 bi trc. Cc bin a, b, c c ly vo trong chng trnh bng cch ly t QueryString.

V cc bin ny c truyn vo t URL ca trnh duyt:

b. Tp hp Form
Tp hp ny cho php nhn thng tin u vo t cc form c gi n thng qua phng thc POST. Phng thc ny c u im hn phng thc GET ch l c th truyn c lng d liu ln. * V d: Ta c th sa li chng trnh gii phng trnh bc 2 trong phn trn cho php ngi s dng nhp d liu t trang PTBAC2.HTM v gi d liu sang trang GIAIPTB2.ASP x l nh sau: - M lnh PTBAC2.HTM

- Kt qu PTBAC2.HTM

107

- M lnh phn c d liu trong GIAIPTB2.ASP

- Kt qu

Gii thch chi tit cho phng php ny s c cp phn sau.

c. Tp hp Cookies
Cookies l nhng mu thng tin nh c lu trn my trm thng thng cc Cookies c s dng xc nh cc ngi s dng truy cp trang web. Chi tit v Cookies s c cp trong mt phn ring v Cookies.

d. Tp hp ServerVariables
ServerVariables l mt tp cc gi tr ca HTTP header c gi t client cng vi gi tr mt s bin mi trng ca webserver. Cc thnh phn trong tp ny u l gi tr ch c.

5.7.2.2. Thuc tnh


i tng Request ch c mt thuc tnh duy nht l TotalBytes cung cp thng tin v s bytes d liu m ngi dng chuyn ln web server. Thuc tnh ny t c s dng tr trng hp x l c bit trn server nh upload file t pha client.

5.7.3.3. Phng thc


i tng Request ch c mt phng thc l BinaryRead phng thc ny rt t c s dng v thng khng c dng n nn ta khng cp c th y.

108

5.7.3. i tng RESPONSE


Cng vi i tng Request, i tng Response cho php chng ta quyn kim sot thng tin t server c gi tr v trnh duyt. Hai i tng Request v Response to thnh mt cp cho php to nn s giao tip client-server.

5.7.3.1. Cc tp hp
i tng Response chi c duy nht mt tp hp l tp hp Cookies. Tp hp ny cho php chng ta to nn cc Cookies trn my trm. Chi tit v Cookies s c cp trong mt phn ring v Cookies.

5.7.3.2. Mt s thuc tnh


TN THUC TNH MIU T

Buffer = [True | False]

Charset(charset_name) ContentType="Kiu"

Expires = S pht

- iu khin thng tin c x l trc khi gi v cho client + Nu c t l True th tt c cc script trn trang phi c chy trc khi gi kt qu v client + Nu c t l False (gi tr mc nh) th nhng kt qu s c gi v client ngay sau khi mi dng c thc hin xong. t tn tp hp cc k t Thit t ni dung HTTP. C mt s kiu ph bin + Text/HTML (Mc nh) + Image/gif + Image/jpeg + Text/plain t thi gian mt trang web c ct trn browser trc khi n ht hn. Nu t =0 trang ny s khng bao gi c lu li trn browser.

5.7.3.3. Mt s phng thc


TN PHNG THC MIU T

Write(Chui k t) Redirect(a ch mi)

End Flush Clear

Gi chui k t v trnh duyt Chuyn a ch trnh duyt sang mt a ch mi Ch : Trong mt s phin bn c ca web server ta khng c thc hin bt c mt lnh vit no ln trnh duyt trc khi thc hin lnh ny. Nu lm tri iu ny s gy ra li. Kt thc vic thc hin scripts, tr v client gi tr hin ti Gi ngay lp tc gi tr c lu trong buffer v trnh duyt. Lnh ny i hi Response.Buffer phi c t l true, nu khng s gy ra li run-time error. Xa ngay lp tc ton b gi tr output c lu trong buffer. Lnh ny i hi Response.Buffer phi c t l true, nu khng s gy ra li run-time error.

V d: Trong v d di y c 2 trang web, mt trang l trang LOGIN.HTM, trn trang ny c mt form cho php ngi dng nhp tn v mt khu. Khi nhn submit, cc thng tin c gi sang trang LOGIN.ASP. Nu tn truy nhp ng l "user" v mt khu ng l "password" th trnh duyt t ng chuyn sang trang DEFAULT.ASP, ngc li trnh duyt quay v trang LOGIN.HTM - Trang LOGIN.HTM: 109

- Kt qu:

- Trang LOGIN.ASP

5.7.4. i tng APPLICATION


5.7.4.1. Khi nim
Mt ng dng trn web l mt tp hp cc trang c th truy cp thng tin qua mt th mc o xc nh no . Cc trang ny lm vic cng nhau thc hin mt mc ch hoc mt cng vic no . V i tng Application dng to ra mi lin kt gia cc trang ny. Do i tng Application dng chia s thng tin gia cc trang nn Application l ton cc vi mi trang trong web. V l ton cc vi tt c client s dng trang web ny, vic thay i mt thuc tnh ca Application ti mt v tr s to ra s thay i tt c cc v tr khc. Cc bin Application ch c tp ra trong Global.asa nhng c th c truy nhp v sa i bi bt c mt trang no trong web. i tng Application c khi to vo lc my khch u tin yu cu bt k mt file no trong th mc o ca web. 110

* V d s dng Application

5.7.4.2. Cc tp hp ca i tng Application a. Contents(Key):


Tp hp ny cha tt c cc bin c gii hn mc ng dng v cc i tng c b xung vo ng dng hin ti thng qua cc script. Tp hp ny l tp hp mc nh ca Application nn hai cch vit sau y l hon ton tng ng:
Application("dbTimeOut") = 15

v
Application.Contents("dbTimeOut") = 15

Tp hp ny c cc thuc tnh Item, Key, Count, Chi tit xem li bi tp hp

b. StaticObject(Key):
Thuc tnh ny dng truy xut cc i tng c nh ngha trong tp hp. Tp hp ny c cc thuc tnh Item, Key, Count, Chi tit xem li bi tp hp

5.7.4.3. Cc phng thc a. Phng thc Lock


Phng thc ny dng ngn cn khng cho ngi dng khc thay i gi tr cc bin trong tp hp Application. S dng phng thc ny gii quyt vn tng tranh gia cc ngi s dng. Phng thc ny s kha ton b i tng Application (ta khng th thay i c bt c mt thuc tnh no) do ta phi s dng phng thc ny trong thi gian t nht c th. * C php: Application.Lock

b. Phng thc UnLock


* Chc nng: Tho kha ta t bng phng thc Lock trn * C php: Application.UnLock

c. Cch s dng Lock v UnLock


Thng thng, ta nn s dng phi hp Lock v UnLock nh sau 111

V d:

5.7.4.4. Cc s kin
i tng Application ch c hai s kin l + Application_OnStart + Application_OnEnd y l hai s kin c x l trong file cu hnh Global.asa c cp Bi 3

5.7.4.5. Vn lu tr d liu bng i tng Application


V bn cht, i tng Application cng l mt bin nm trong b nh ca my ch, ta khng nn lu tr d liu lu di trong i tng Application. D liu trn bin Application s b mt sau khi s kin Application_OnEnd xy ra. Nu ta mun lu tr li nhng d liu no ca Application th ta cn vit cc m lnh x l lu tr (a cc gi tr bin ny vo trong nhng d liu chc chn nm trn b nh ngoi nh file, c s d liu...) trong th tc p ng s kin Application_OnEnd. n khi ng dng c khi ng li, ta cn c li cc gi tr lu vo b nh trong th tc p ng s kin Application.OnStart

5.7.5. I TNG SESSION


i tng Session c s dng lu tr thng tin v mt phin lm vic ca ngi s dng hay nhng thay i v phin lm vic . Nhng bin nm trong i tng Session gi ton b thng tin v ngi s dng v n c th s dng trn mt my trm v c hiu lc trn tt c cc trang trong mt web. My phc v web tm ra ngi s dng bng mt gi tr SessionID duy nht, bin Session ny c gn cho ngi s dng k t khi ngi bt u phin lm vic ca mnh trn web browser. SessionID c lu trn my khch bng cch vit mt Cookie cha SessionID trn my ngi s dng. Cookie ny s c gi v pha server mi khi ngi s dng a ra yu cu, nhn ra s tn ti ca ngi s dng ny my ch phi i tm SessionID trong b nh v so snh n vi SessionID trong Cookie va nhn c.

5.7.5.1. Cc tp hp ca i tng Session.


Tng t i tng Application, i tng Session c hai tp hp l Contents v StaticObjects. Phng php s dng v truy cp tng t nh i vi Application tuy nhin vi i tng Session ta c th thm, bt, thay i cc gi tr ca Session t bt k v tr no v cc Session vi tng ngi s dng l khc nhau.

5.7.5.2. Cc thuc tnh a. SessionID


SessionID tr li s nh danh ca Session. S ny l duy nht cho mi Session. Ta c th xem qua v d sau:

112

Kt qu

Nu ta m mt ca s trnh duyt mi ri m trang ny ta s nhn c mt SessionID mi.

b. CodePage
Thit t trang m hin th cc ni dung ng trong script hin thi.

c. TimeOut
Thit t thi gian ht hn ca mt Session (n v thi gian c tnh l pht) mc nh l 20 pht. C php: Session.TimeOut = <s pht>.

5.7.5.4. Cc phng thc


Phng thc trc tip trong i tng Session l phng thc Abandon. Chc nng: hy b ton b cc i tng trong i tng Session gii phng b nh cho web server. Ch c phin lm vic no thc hin Abandon th d liu v phin lm vic y mi b gii phng, cc phin lm vic khc gi nguyn.

5.7.5.5. Cc s kin
i tng Session c hai s kin l + Session_OnStart + Session_OnEnd

y l hai s kin c x l trong file cu hnh Global.asa c cp Bi 3 5.7.5.6. V d


Trong v d mc 2 bi 4 v Login.Asp s xy ra trng hp ngi dng bit c a ch ca trang default.asp v g thng a ch trang ny vo ca s trnh duyt khi form login s b b qua. Ta s kim sot vn ny bng bin Session nh sau File LOGIN.ASP

113

Phn u File DEFAULT.ASP

5.7.6. I TNG SERVER


i tng Server cung cp mt vi chc nng hn hp m chng ta c th s dng trong cc ng dng ASP. Mc d hu ht cc chc nng ca i tng ny u kh hiu v t khi c s dng nhng c mt phng thc CreateObject v thuc tnh ScriptTimeOut ca i tng Server l v gi. Chng ta s s dng cc phng thc v thuc tnh ny trong script ca mnh. i tng Server nh tn ca n ng nh i din cho chnh my phc v web v nhiu chc nng m n cung cp hon ton l chc nng ca bn thn my phc v web s dng khi x l cc yu cu t my khch v tr li t my phc v.

5.7.6.1. Thuc tnh ScriptTimeOut Chc nng: Khong thi gian ti a cho php mt script chy trn Server.
C php: Server.ScriptTimeOut = <Khong thi gian> Khong thi gian c tnh bng giy, gi tr mc nh l 90 v y cng chnh l khong thi gian ti thiu. V d: Server.ScriptTimeOut = 120

5.7.6.2. Cc phng thc a. Phng thc CreateObject


Chc nng: To ra mt i tng hot ng trn Server. C php: Server.CreateObject(ProgID) Trong ProgID l nh danh ca mi i tng Ch : Khi gn mt bin cho mt i tng ta cn phi dng t kha Set

V d:

114

b. Phng thc HTMLEncode


Chc nng: M ha k t. Do trong ASP c mt vi k t c ngha c biy nh <, >, ', ", &,... do trong HTML cng nh ASP mun s dng cc k t ny phi m ha chng. Ngoi ra, mt s ngn ng ngoi s dng cc k t c bn cn s dng thm mt s b k t m rng nh ting Vit, Php,... Cc k t ny phi c m ha trong cc trang HTML, ASP th cc chng trnh mi c th hin th ng n. Vic m ha ny c thc hin bi HTMLEncode do Server cung cp. V d: HTMLENCO.ASP

Kt qu:

on m HTML c to ra khi xem ngun trn trnh duyt:

c. Phng thc MapPath


115

Chc nng: Chuyn ng dn logic thnh ng dn vt l trn a server. Chc nng ny thng c dng trong cc thao tc truy nhp trc tip file. C php: Server.MapPath(<ng dn logic>) V d: nu ta c file MAPPATH.ASP nm trn th mc gc ca web server v ng dn n th mc gc ca web server l E:\Inetpub\wwwroot\ th khi Server.MapPath("MapPath.asp") s l E:\Inetpub\wwwroot\MapPath.asp. iu th hin c th qua chng trnh di y: M lnh MAPPATH.ASP Kt qu

d. Phng thc URLEncode:


Chc nng: M ha cc chui URL (Tng t nh HTMLEncode nhng y l m ha cc chui URL). C php. Server.URLEncode(url) V d: URLENCO.ASP

Kt qu

116

5.8. COOKIES
5.8.1. Khi nim COOKIES
Cookies l nhng mu thng tin nh c ghi trn cc my trm. Kh nng to Cookies ph thuc vo tnh nng ca trnh duyt. Cookies c dng xc nh user. Nu s dng IE chng ta c th xem thy cc files Cookies c ghi trong th mc tm thi ca IE, mc nh l C:\WINDOWS\Temporary Internet Files

5.8.2. Thit lp COOKIES


5.8.2.1. t gi tr cho Cookies
t gi tr cho Cookies ta s dng tp hp Cookies ca i tng Response. C php nh sau:

Response.Cookies("<Tn Cookie>") = <Gi tr> Nu tn Cookie cha tn ti th mt tn mi s c to ra v ly gi tr ngc li s i gi tr ca Cookie thnh gi tr mi.
Trong cc phin bn web Server c, vic vit cc Cookies phi c t trc bt c mt lnh xut kt qu ra client no, tri iu ny script s b li. V d:

5.8.2.1. t thi hn cho cookies


Theo mc nh, cc Cookies s ht hn v t ng xa khi my trm khi ngi dng ng trnh duyt. Nhng chng ta c th ch ra ngy thng ht hn cho mi cookies t gi ht hn cho Cookies ta s dng:

Response.Cookies("<Tn Cookie>").Expires = <Ngy thng>


V d:

5.8.3. Ly gi tr ca COOKIES
ly gi tr ca Cookies ta s dng tp hp Cookies ca i tng Request. C php nh sau: Request.Cookies("<tn Cookie>")

V d:

5.8.4. Th mc COOKIES
L mt nhm cc Cookies c cng tn nhng c phn bit nhau bi kha. S dng kha cng Cookies tng t nh s dng mng hai chiu Array[n, m] nhng n=1 v m 1 117

* C php: - Thit lp: Response.Cookies("<tn Cookie>")(<Tn kha>) = <Gi tr> - c: Request.Cookies("<tn Cookie>")(<Tn kha>) * V d thit lp Cookies

5.8.5. Kim tra xem COOKIES c dng kha khng


Ta c th kim tra xem mt Cookie c s dng kha khng bng hm HasKeys ca i tng Cookies vi c php nh sau
Request.Cookies("<Tn Cookie>").HasKeys

Phng thc ny tr ra gi tr true nu Cookies c dng kha v false trong trng hp ngc li.

5.9 Gii thiu ADO v cc kt ni c s d liu


5.9.1 Gii thiu
ADO l k thut mi do Microsoft pht trin lm vic vi c s d liu (CSDL), c dng cung cp cc kh nng kt ni v x l trn CSDL. Vic x dng ADO truy xut v x l CSDL trong trang ASP c th chia lm cc bc chnh sau: Kt ni vi CSDL thng qua OLEDB hoc ODBC Xy dng truy vn d liu v yu cu thc hin cu truy vn thc hin thao tc x l trn CSDL X l cc kt qu tr v t cu truy vn Ngt kt ni vi CSDL, gii phng cc ti nguyn ca h thng dng

5.9.2 K ni vi c s d liu
5.9.2.1 To kt ni thng qua OLEDB v ODBC
Connection String l mt chui k t c dng lu tr thng tin v d liu nh sau: Thng tin v h qun tr CSDL Thng tin v v tr t CSDL M hnh kt ni CSDL: ADO cho php thng qua OLEDB hoc ODBC

Bng lit k kt ni OLEDB v ODBC Data source Microsoft Access OLEDB Provider=Microsoft.Jet.OLEDB4.0;Data source = path n .mdb 118

Microsoft SQL Data source Microsoft Access Microsoft SQL

Provider=SQLOLEDB.1;Data source = path n CSDL trn my ch ODBC Driver={Microsoft Access Driver (*.mdb)};DBQ = ng dn n tp .mdb Driver={SQL Server.1 };Server= ng dn n CSDL trn server

5.9.2.2 To kt ni thng qua DNS


C th xy dng connection string bng cch to Data source Name (DNS) trong ODBC. Mt DNS cha cc thng tin sau: Tn ca DNS Tp tin CSDL m n tr ti Con tr ch n cc driver kt nivi tp tin CSDL UserID v password truy xut data store Cc thng tin cn thit khc cho kt ni

5.9.3 Cc i tng ca ADO


ADO c cc i tng Connection, Conmmand, Recordset, Record, Stream v tp hp Errors Fields, Properties, Parameters. i tng Connection: cho php kt ni vi CSDL. N cha 3 thng tin C s d liu Giao thc (driver/provider) trao i thng tin Username v password i tng Command: thc hin cc cu lnh SQL i tng Recordset: Cha tp hp cc d liu c rt gn t CSDL. Cho php thay i d liu nh thm, xa, sa d liu hay di chuyn bn ghi. i tng Record: lu tr mt hng (bn ghi) trong Recordset, mt th mc hay tp tin trong File system i tng Stream: qun l d liu dng nh phn, n c dng qun l d liu BLOB (Binary Large Object) nh hnh nh hay mng d liu ln

5.9.3.1 i tng Connection 5.9.3.1.1 Kt ni CSDL qua i tng Connection


thit lp kt ni CSDL, cn thc hin bc sau: To mt thc th v i tng Connection t pha server bng cu lnh : Server.CreateObject(ADODB.Connection) 119

S dng phng thc Open m kt ni CSDL. Tham s ca phng thc ny ly t chui Connection String, chui ny tng ng vi CSDL.

Khi cn kt ni c nh cho tt c cc trang ta c th thit lp tm vc cho i tng Connection bng cch vit cc th tc sau trong tp tin global.asa mc Application: mc Session:

5.9.3.1.2 Thao tc d liu thng qua i tng Connection


i tng Connection cung cp phng thc Execute thc hin cu lnh truy vn C php: objConn.Excute CommandText, RecordAffected, Options CommandText: cu lnh SQL, tn bng hay Stored Procedure Options: quy nh loi CommandText Hng adCmdUnknown adCmdText adCmdTable adCmdStore Gi tr 0 1 2 4 Loi ca CommnadText Mc nh, khng xc nh loi CommnadText CommandText l cu lnh SQL CommandText l tn bng CommandText l stored procedure hay cu truy vn

5.9.3.2 i tng Command


thao tc v thay i c s d liu bng Command, thc hinc cc bc sau: Khai bo v khi to thc th (instance) ca i tng Command Khi to cc thuc tnh i tng Cha i tng Connection c khai bo Cha cu lnh SQL hay tn bng Cha cc thuc CommandText tnh qui nh cho

ActiveConnection CommandText CommandType CommandTimeout

THi gian thc hin cu lnh, nu vic thc hin vt thi gian nh, n s thng bo li True/False: True cho php bin dch trc khi thc hin cu lnh, falsse ngc li Thc thi cu lnh

Prepard Execute

Gi tr ca thuc tnh CommandType Thuc tnh M t 120

adCmdType adCMDTable adCmdStoreProc adCmdUnknown

Cu lnh SQL Tn bng Stored Procuedure hay cu truy vn Gi tr mc nh

5.9.3.3 X l d liu thng qua i tng Recordset


Cc phng thc ca i tng Recordset Phng thc Addnew Cancel Close Delete Find MoveFirset MoveLast MoveNext MovePrivious Open Requery Resync Save Seek Update GetRows GetString Din gii To mi Record Hy thao tc ang thc thi ng Recordset v i tng lin quan Xa record hay tp record hin thi Tm mt record tha mn iu kin a v tr ca record hin hnh v record u tin a v tr ca record hin hnh v record cui cng a v tr ca record hin hnh v record tip theo a v tr ca record hin hnh v record trc M mt recordset Cp nht li d liu bng cch thc hin li cu lnh truy vn ban u Lm tui li d liut rong i tng Recorset hin thi Lu Recordset vo tp Tm ch mc Recordset Lu thay i Ly nhiu record a vo mt mng Tr v recordset di dng chui

a. Phng thc Open


C php: objRs.Open Source, Connection, CursorType, Locktype, Options 121

b. Phng thc Addnew: Cho php to mt bn ghi mi, gn d liu mi cho cc field ca
cc bn ghi v n ch c cp nht vo CSDL khi ta gi phng thc Update hay Updatebatch

c. Phng thc Update: Phng thc ny dng cp nht bn ghi hin thi trong CSDL
d. Phng thc Delete: phng thc ny cho php xa bn ghi trong Recordset C php: objRs.Delete <tham s>

e. Phng thc Close: Ngt kt ni vi CSDL 5.9.3.3.1 Lu tr d liu tr v


ADO s dng i tng Recordset lu tr kt qu tr v t cu truy vn d liu SELEcT. V kt qu tr v ca mt cu truy vn SELECT c nhiu bn ghi, cho nn c th xem Recordset nh mng cc bn ghi C 2 cch ly d liu t cu truy vn t vo bin Recordset Thc hin phng thc Exexute ca i tng Connection nh cu lnh truy vn v tr v kt qu cho Recordset. V d: Set rs = Conn.Execute(strSQL) To mt thc th cho i tng Recordset v s dng phng thc Open, kt hp vi i tng Connection to.

5.9.3.3.2 Hin th d liu tr v


Khi mun ly d liu ca mt trng trong bn ghi hin hnh, ly chui tn ca trng nh l i s cho i tng Recordset hay i s ca thuc tnh Fields ca i tng Recordset. V d objRS(HOTEN) hay objRS.Fields(HOTEN). Khi mun dch chuyn qua li n cc bn ghi c lu trong i tng Recordset, s dng phng thc MoveNext, MovePrevious, MoveFirst, MoveLast v phi i km vi vic kim tra bn ghi hin thi ang v tr u hay cui bn ghi. lm iu , dng thuc tnh BOF hoc EOF kim tra.

5.9.3.4 i tng Record


i tng ny lu tr bn ghi trong Recordset, mt thc mc hay tp tin trong File System. s dng i tng ny cn phi khai bo thc th cho i tng Recordset Dim objRec Set objRec = Server.CreateObject (ADODB.Record) i tng Recordset c cc phng thc sau: Phng thc Cancel Close CopyRecord DeleteRecord Din gii Hy thc hin trn Record ng i tng Record Copy tp hay th mc Xa mt tp hoc th mc

122

GetChildren MoveRecord Open

Tr v mt i tng Recordset, mi dng ca Recordset lu trong tp hoc th mc Di chuyn mt tp hay mt th mc M mt i tng Record tn ti, to mi mt tp hoc th mc

a. Phng thc Open


Sau khi to thc th ca Record, c th dng phng thc ny open, to mi mt tp hay to mi mt th mc: C php: objRec.Open Source,ActiveConnection,[Model],[CreateOption],[Option],[user],[Passwd])

b. Phng thc CopyRecord; dng chp mt tp hay mt th mc n ni khc.


C php: objRec.CopyRecord (Source, Destionation, Username, Password,opt,async)

c.Phng thc DeleteRecord xa mt tp hoc th mc ch nh


C php: objRec.DeleteRecord(Source,Async)

5.9.3.5 i tng Stream


Dng lu tr lung d liu dng text hoc nh phn. Trc khi s dng cn phi khai bo Set objStream = Server.CreateObject(ADODB.Stream) Cc phong thc Stream:

Close Copyto Flush LoadFromFile Open Read ReadText SaveToFile SetEOS SkipLine Write WriteText

ng i tng Stream Chp mt s k t hoc byte t i tng Stream ny sng i tng Stream khc Gi ni dung ca i tng Stream Ly ni dung ca mt i tng vo i tng Stream M mt i tng stream t URL hay i tng Record c s lng byte trong i tng Stream cha d liu nh phn c s k t trong i tng Stream cha ni dung l text Lu ni dng i tng Stream vo tp Thit lp thuc tnh ca EOS i vi v str hin thi B qua mt dng khi c mt Text Stream Ghi mt s lng byte ca d liu nh phn v i tng Stream Ghi d liu dng Text vo i tng Stream 123

124

You might also like