Professional Documents
Culture Documents
BO CO THC TP TT NGHIP
NGNH CNG NGH THNG TIN
M NGNH : 05115
Trang 1
LI CAM OAN
Ti xin cam oan : 1 2 3 Nhng ni dung trong bo co ny l do ti thc hin di s hng dn trc tip ca thy Nguyn Khnh v c Huyn1. Mi tham kho dng trong bo co ny u c trch dn r rng tn tc gi, tn cng trnh, thi gian, a im cng b. Mi sao chp khng hp l, vi phm quy ch o to, hay gian tr,ti xin chu hon ton trch nhim. Sinh vin,
Nguyn nh Lnh
Trang 2
LI CM N
Li cm n u tin con xin dnh cho Ba M. Chng con xin cm n Ba M ngi lo cho chng con , ng vin chng con n hc nn ngi v c nh ngy hm nay, cng n chng con xin ghi khc trong lng. Em xin trn trng cm n thy Nguyn Khnh, c Huyn cng cc thy c trong trng Cao ng FPT nh hng ti v tn tnh hng dn, gip cng nh c nhng kin ng gp b ch gip em hon thnh tt trong t thc tp va qua. Em xin cm n tt c qu Thy C trng H Bch Khoa Nng tn tnh dy d v truyn t cho chng em nhng kin thc trong nhng nm hc qua.
Sinh Vin
Nguyn nh Lnh
Trang 3
MC LC
I. 1. 2. 3. II. Tm hiu i hc FPT ......................................................................................................................................5 Gii thiu chung ...........................................................................................................................................5 C cu t chc i hc FPT.........................................................................................................................7 Chng trnh o to ....................................................................................................................................9 Nghin cu cng ngh Java ............................................................................................................................13
1.1 Lp c s dn xut ............................................................................................................................ 13 1.2 Xy dng lp c s dn xut ............................................................................................................ 13 1.3 Tha k thuc tnh ............................................................................................................................. 15 1.4 Tha k phng thc ......................................................................................................................... 15 1.5 Khi to lp c s ............................................................................................................................. 15 1.6 Phng thc ghi ............................................................................................................................ 15 1.7 Thnh phn protected ........................................................................................................................ 15 1.8 T kha final ..................................................................................................................................... 16 III. Chng trnh Demo ....................................................................................................................................57 1. Thit k ng dng Struts ............................................................................................................................57 1.1 Thit k ng dng Login ................................................................................................................... 57 1.2 Yu cu ng dng .............................................................................................................................. 57 1.3 Cc thnh phn yu cu cho ng dng .............................................................................................. 57 1.4 To project trong Eclipse ................................................................................................................... 58 1.5 Thit lp cc th mc cho ng dng.................................................................................................. 58 1.6 Import cc file Struts ......................................................................................................................... 58 1.7 Cu hnh Eclipse s dng cc file th vin ................................................................................... 59 2. Trin khai ng dng ...................................................................................................................................60 2.1 2.2 2.3 2.4 2.5 2.6 To cc trang JSP .............................................................................................................................. 60 To cc formbean .............................................................................................................................. 63 To Javabean ..................................................................................................................................... 64 To action .......................................................................................................................................... 65 Cu hnh Struts .................................................................................................................................. 66 Chy ng dng................................................................................................................................... 68
Trang 4
Tp on FPT thnh lp ngy 13/09/1988, hin l tp on cng ngh thng tin v vin thng s 1 ca Vit Nam. Tp on FPT hin nay c ti 83 n v thnh vin vi hng trm n v kinh doanh v cc b phn h tr. Tp on FPT c tr s ti 6 quc gia: Nht, M, Php, c, Singapore v Malaysia. Nm 2008, bt chp khng hong ti chnh, ton tp on t doanh s hn 1 t USD, tr thnh doanh nghip t nhn u tin ca Vit Nam t ngng ny. FPT hin l i tc ca hn 200 tp on cng ngh ln nht trn ton cu. Bn cnh , FPT cng ang s hu trn 1.000 chng ch cng ngh cp quc t ca cc i tc cng ngh hng u th gii. c bit, trong chuyn thp tng Ch tch nc Nguyn Minh Trit sang M nm 2007, TG Trng Gia Bnh v on i biu FPT t c mt bc ngot trong quan h i tc chin lc vi Microsoft. Theo , cc Lp trnh vin ca FPT c tham gia vit cc phn mm ct li ca Microsoft cng nh c c s h tr ca Microsoft trong vic xy dng i hc FPT tr thnh Ngi trng ca th k 21. Ngay t nm 1999, nhn thy nhu cu ngun nhn lc cht lng cao l yu t sng cn ca vic pht trin Tp on v ngnh cng nghip cng ngh thng tin, FPT phi hp vi tp on o to cng ngh thng tin hng u th gii Aptech n trin khai h thng cc trung tm o to Lp trnh vin Quc t Aptech v M thut a phng tin Arena ti Vit Nam. Qua 10 nm hot ng, h thng hin c gn 40 trung tm trn ton quc v o to cho ngnh cng ngh thng tin ca Vit Nam trn 20.000 chuyn gia phn mm v m thut a phng tin.
Trang 5
Vi nt v Trng i hc FPT Ngy 08/09/2006, Chnh ph c Quyt nh s 208/2006/Q-TTg cho php chnh thc thnh lp Trng i hc T thc FPT. S mnh ca Trng i hc FPT l xy dng m hnh ca mt trng i hc th h mi, c trit l gio dc hin i, gn lin o to vi thc tin cuc sng v nhu cu nhn lc ca t nc, gp phn a ngnh cng ngh thng tin Vit nam ln ngang tm cc nc tin tin trn th gii. Mc tiu trc mt ca Trng i hc FPT l o to v cung cp ngun nhn lc cht lng cao chuyn ngnh cng ngh thng tin v cc nhm ngnh khc c lin quan cho tp on FPT cng nh cho cc tp on cng ngh thng tin ton cu ti khp ni trn th gii v cc doanh nghip Vit Nam. S khc bit ca Trng i hc FPT so vi cc trng i hc khc l o to k s cng nghip, ngha l o to theo hnh thc lin kt cht ch vi cc doanh nghip cng ngh thng tin, gn o to vi thc tin, vi nghin cu trin khai v cc cng ngh hin i nht. Trit l v phng php gio dc hin i; o to con ngi ton din, hi ha; chng trnh lun c cp nht v tun th cc chun cng ngh quc t; c bit ch trng k nng ngoi ng; tng cng o to quy trnh t chc sn xut, k nng lm vic theo nhm v cc k nng c nhn khc l nhng im s m bo cho sinh vin tt nghip c nhng c hi vic lm tt nht ti tp on FPT v cc doanh nghip hng u khc. Vi nt v FPT Polytechnic H Cao ng thc hnh thuc i hc FPT, cn gi l FPT Polytechnic, c thc hin o to v cp bng Cao ng ngh theo Quyt nh ca Tng cc dy ngh bt u t ngy 01/07/2010. Trng hng ti mc tiu cung cp k nng ngh nghip cht lng cao cho ngi hc, m bo c tnh cnh tranh trong mi trng pht trin ngy cng cao. Vi nhn nh nn kinh t Vit Nam ang pht trin mnh m trong c s ng gp to ln t trn 500.000 doanh nghip va v nh vi t 10 n 200 nhn vin. FPT Polytechnic nhm ti mc tiu cung cp ngun nhn lc c o to tt cho nhu cu pht trin ca khng ch cc doanh nghip ln m cn cho cc doanh nghip ny.
SVTH: Nguyn nh Lnh Lp : 10T1LT Trang 6
2. C cu t chc i hc FPT
Hi ng c vn
Hi ng c vn ca Trng i hc FPT bao gm cc gio s, cc nh khoa hc hng u ca Vit Nam. Ngi Takeo Ogawa, Ch tch danh d v l cu TG ca Cng ty Hitachi Software c chn lm c vn cao cp cho cc chng trnh o to CNTT bng ting Nht. Trch nhim ca Hi ng c vn l tham gia nh hng v xy dng chin lc cho hot ng ca Trng, h tr Ban gim hiu trong cc cng vic nghin cu khoa hc v hp tc quc t.
Hi ng Qun tr
Hi ng qun tr l c quan qun l cao nht,chu trch nhim trc php lut v cc hot ng ca Trng. Hi ng qun tr c trch nhim ra cc quyt nh chin lc, nh hng hot ng, b nhim Hiu trng v cc v tr qun l then cht ca Trng. Ch tch HQT Trng i hc FPT l Ph gio s, Tin s Trng Gia Bnh, Ch tch HQT Tp on FPT. ng tt nghip Tin s Ton L ti i hc Tng hp Mat-xc-va mang tn L-m-n-xp (MGU), sng lp v iu hnh FPT, Tp on CNTT s 1 ca Vit Nam t nm 1988. ng cn l Trng khoa Qun tr kinh doanh HSB, i hc Quc gia H Ni; Ch tch Hi doanh nghip tr H Ni; Ch tch Hip hi phn mm Vit Nam (VINASA).
C s vt cht v iu kin hc tp
phc v cho nh hng pht trin trong tng lai, Trng i hc FPT v ang u t xy dng cc c s o to vi quy m ln ti Khu Cng ngh cao Ha Lc H Ni vi din tch t l 30.7ha. Cc hng mc xy dng u tin ang chun b i vo hot ng phc v cho nm hc 2011 -2012. Khu th Cng ngh FPT Nng cng c dnh 28ha cho o to. Ti Tp. HCM Ta Nh Tinh Hoa thuc quyn s hu ca Trng vi tng din tch s dng gn 20.000m2 cng ang gp rt c a vo s dng. Trng lun ch trng ci tin iu kin c s vt cht phc v hiu qu cho o to. Trng hin c hn 140 phng hc multimedia. Cc lp hc, ging ng c s dng vi chc nng nh phng lab, phng thc hn h my; 100% sinh vin c trang b laptop hc tp; 100% ging vin v nhn vin c trang b my tnh lm vic; Cc lp hc c b tr theo m hnh lp t sinh vin, ti a 30 em/lp m bo cht lng o to; 100% cc mn hc u c gio trnh , cc mn hc u c ti nguyn ging dy cho ging vin.
Trang 7
Trang 8
3. Chng trnh o to
Tng quan v chng trnh o to
Sinh vin ti thi im c nhp hc th ng k theo hc hai nhm ngnh c bn l Cng ngh thng tin hoc Kinh t Kinh doanh. Khi ngnh Cng ngh thng tin:
SVTH: Nguyn nh Lnh Lp : 10T1LT Trang 9
SKI101: K nng hc tp SKI201: K nng ngh nghip SKI202: K nng lm vic nhm SKI203: K nng bn hng SKI204: K nng m phn trong kinh doanh SKI205: K nng tuyn dng
Cc mn Vit Nam
VIE101: Chnh tr VIE102: Php lut VIE103: Gio dc th cht VIE104: Gio dc quc phng v an ninh VIE105: (Son tho) Vn bn hnh chnh VIE106: Kinh t chnh tr
Cc mn Ting Anh
Cc mn v my tnh
COM101: Tin hc c s COM102: Tin hc vn phng COM103: Mng my tnh v Internet COM104: Bo tr v x l s c my tnh COM201: C s d liu COM202: Cu trc d liu v gii thut COM203: H qun tr c s d liu SQL Server COM204: Qun tr Server COM205: Qun tr c s d liu vi Access
Trang 10
Cc mn v Lp trnh Web
WEB101: Thit k website WEB102: Qun tr website WEB103: Thit k Layout website WEB104: Lp trnh c s vi Javascript WEB201: Lp trnh Web vi PHP WEB202: K thut trnh by ni dung Web WEB203: H thng qun tr ni dung Web WEB205: Marketing trn Internet WEB301: Xy dng ng dng Web WEB302: Chuyn 1 (HTML5 & CSS3.0) WEB303: Chuyn 2 (Mobile web)
Cc mn v a phng tin
MUL101: ha ng dng MUL102: Cng c thit k v v ha MUL201: Thit k a truyn thng vi Flash
INF101: H thng thng tin INF201: Phn tch thit k h thng thng tin INF202: H thng mng Intranet INF203: H thng thng tin qun l INF204: Cc h thng m ngun m INF301: Chuyn (in ton m my)
Cc mn v Lp trnh
SOF101: Lp trnh c bn SOF201: Lp trnh Windows (Visual Basic .NET) SOF202: Lp trnh Web (ASP.NET)
Cc mn v K ton
ACC101: Nguyn l k ton ACC102: K ton ti chnh 1 ACC103: Thc hnh k ton ti chnh 1 ACC201: K ton ti chnh 2 ACC202: Thc hnh k ton ti chnh 2 ACC203: K ton quc t
Trang 11
ACC204: K ton qun tr ACC301: K ton ti chnh 3 ACC302: Thc hnh k ton ti chnh 3 ACC304: Kim ton ACC305: K ton thu
Cc mn v Ti chnh
FIN101: Ti chnh doanh nghip FIN201: Thu FIN202: Ti chnh Tn dng FIN203: Thng k
Cc mn v Kinh doanh
BUS101: Nhp mn qun tr doanh nghip BUS102: Kinh t (vi m + v m) BUS103: Php lut kinh t BUS104: Hnh vi t chc BUS201: Phn tch hot ng kinh doanh BUS202: Tm l kinh doanh BUS203: Kinh doanh quc t BUS204: Kinh t thng mi dch v
Cc mn v Qun tr
MAN101: Qun tr vn phng MAN102: Qun tr chui cung ng MAN103: Qun tr marketing MAN104: Qun tr nhn lc MAN201: Qun tr tc nghip kinh doanh
Cc mn v Marketing
Cc mn v Nhn s
Cc mn d n
PRO 301: D n tt nghip (Ngnh Thit k web) PRO202: D n 2 (Ngnh ng dng phn mm) PRO302: D n tt nghip (Ngnh ng dng phn mm) PRO102: D n 1 (Ngnh K ton doanh nghip) PRO304: D n tt nghip (Ngnh K ton doanh nghip) PRO305: D n tt nghip (Ngnh Marketing&Bn hng) PRO306: D n tt nghip (Ngnh Nhn s&Vn phng
II.
K tha K tha l vic xy dng lp mi da trn lp c sn Lp c sn l lp cha: superclass Lp mi l lp con: subclass V d: Hnh vung k tha t hnh ch nht Con ch k tha t loi ng vt di nc Ch : Tnh k tha th hin quan h is a, khc vi quan h has a (composition) Composition: mt i tng cha cc i tng thuc lp khc. V d: t c cc bnh xe Cy k tha:
1.1 Lp c s dn xut Mt lp c xy dng thng qua k tha t mt lp khc gi l lp dn xut (hay cn gi l lp con, lp hu du ), lp dng xy dng lp dn xut c gi l lp c s ( hay cn gi l lp cha, hoc lp t tin ) Mt lp dn xut ngoi cc thnh phn ca ring n, n cn c k tha tt c cc thnh phn ca lp cha 1.2 Xy dng lp c s dn xut ni lp b l dn xut ca lp a ta dng t kho extends, c php nh sau: class b extends a{
SVTH: Nguyn nh Lnh Lp : 10T1LT Trang 13
Trang 14
Trang 17
Thit k hng i tng vi UML 3.1 Gii thiu UML UML l mt ngn ng m hnh ho thng nht c phn chnh bao gm nhng k hiu hnh hc, c cc phng php hng i tng s dng th hin v miu t cc thit k ca mt h thng. N l mt ngn ng c t, trc quan ho, xy dng v lm su liu cho nhiu kha cnh khc nhau ca mt h thng c nng phn mm cao. UML c th c s dng lm cng c giao tip gia ngi dng, nh phn tch, nh thit k v nh pht trin phn mm. Trong qu trnh pht trin c nhiu cng ty h tr v khuyn khch pht trin UML c th k ti nh: Hewlett Packard, Microsoft, Oracle, IBM, Unisys Ngn ng m hnh ha thng nht (Unifield Modeling Language UML) l mt ngn ng biu din m hnh theo hng i tng c xy dng bi ba tc gi trn vi ch ch l: M hnh ho cc h thng s dng cc khi nim hng i tng. Thit lp mt kt ni t nhn thc ca con ngi n cc s kin cn m hnh ho. Gii quyt vn v mc tha k trong cc h thng phc tp, c nhiu rng buc khc nhau. To mt ngn ng m hnh ho c th s dng c bi ngi v my. 3.2 UML v cc giai on pht trin phn mm Giai on nghin cu s b:
SVTH: Nguyn nh Lnh Lp : 10T1LT Trang 18
Hnh - Cc View trong UML Mi mt hng nhn c miu t trong mt lot cc biu , cha ng cc thng tin nu bt kha cnh c bit ca h thng. Trong thc t khi phn tch v thit k rt d xy ra s trng lp thng tin, cho nn mt biu trn tht t c th l thnh phn ca nhiu hng nhn khc nhau. Khi nhn h thng t nhiu hng nhn khc nhau, ti mt thi im c th ngi ta ch tp trung vo mt kha cnh ca h thng. Mt biu trong mt hng nhn c th no cn phi n gin to iu kin giao tip d dng, dnh lin vi cc biu khc cng nh cc hng nhn khc, lm sao cho bc tranh ton cnh ca h thng c miu t bng s kt hp tt c cc thng tin t tt c cc hng nhn. Mt biu cha cc k hiu hnh hc m t cc phn t m hnh ca h thng. UML c tt c cc hng nhn sau:
Trang 21
Hng nhn Use case miu t chc nng ca h thng s phi cung cp do c tc nhn t bn ngoi mong i. Tc nhn l thc th tng tc vi h thng; c th l mt ngi s dng hoc l mt h thng khc. Hng nhn Use case l hng nhn dnh cho khch hng, nh thit k, nh pht trin v ngi th nghim; n c miu t qua cc biu Use case (use case diagram) v thnh thong cng bao gm c cc biu hot ng (activity diagram). Cch s dng h thng nhn chung s c miu t qua mt lot cc Use case trong hng nhn Use case, ni mi mt Use case l mt li miu t mang tnh c th cho mt tnh nng ca h thng (c ngha l mt chc nng c mong i). Hng nhn Use case mang tnh trung tm, bi n t ra ni dung thc y s pht trin cc hng nhn khc. Mc tiu chung ca h thng l cung cp cc chc nng miu t trong hng nhn ny cng vi mt vi cc thuc tnh mang tnh phi chc nng khc v th hng nhn ny c nh hng n tt c cc hng nhn khc. Hng nhn ny cng c s dng thm tra (verify) h thng qua vic th nghim xem hng nhn Use case c ng vi mong i ca khch hng (Hi: "y c phi l th bn mun") cng nh c ng vi h thng va c hon thnh (Hi: "H thng c hot ng nh c t?). 3.1.2 Hng nhn Logic(Logical View)
Trang 22
L mt li miu t ca vic thc thi cc modul cng nh s ph thuc gia chng vi nhau. N thng c s dng cho nh pht trin v thng bao gm nhiu biu thnh phn. Thnh phn y l cc modul lnh thuc nhiu loi khc nhau, s c ch ra trong biu cng vi cu trc cng nh s ph thuc ca chng. Cc thng tin b sung v cc thnh phn, v d nh v tr ca ti nguyn (trch nhim i vi mt thnh phn), hoc cc thng tin qun tr khc, v d nh mt bn bo co v tin trnh ca cng vic cng c th c b sung vo y.
3.1.4
Hng nhn song song nhm ti s chia h thng thnh cc qui trnh (process) v cc b x l (processor). Kha cnh ny, vn l mt thuc tnh phi chc nng ca h thng, cho php chng ta s dng mt cch hu hiu cc ngun ti nguyn, thc thi song song, cng nh x l cc s kin khng ng b t mi trng. Bn cnh vic chia h thng thnh cc tiu trnh c th c thc thi song song, hng nhn ny cng phi quan tm n vn giao tip v ng b ha cc tiu trnh . Hng nhn song song ginh cho nh pht trin v ngi tch hp h thng, n bao gm cc biu ng (trng thi, trnh t, tng tc v hot ng) cng cc biu thc thi (biu thnh phn v biu trin khai). 3.1.5 Hng nhn trin khai (Deployment View)
Cui cng, hng nhn trin khai ch cho chng ta s trin khai v mt vt l ca h thng, v d nh cc my tnh cng nh cc my mc v s lin kt gia chng vi nhau. Hng nhn trin khai ginh cho cc nh pht trin, ngi tch hp cng nh ngi th nghim h thng v c th hin bng cc biu trin khai. Hng nhn ny cng bao gm s nh x cc thnh phn ca h thng vo cu trc vt l; v d nh chng trnh no hay i tng no s c thc thi trn my tnh no.
SVTH: Nguyn nh Lnh Lp : 10T1LT Trang 23
Mt biu Use case ch ra mt s lng cc tc nhn ngoi cnh v mi lin kt ca chng i vi Use case m h thng cung cp (nhn hnh 3.2). Mt Use case l mt li miu t ca mt chc nng m h thng cung cp. Li miu t Use case thng l mt vn bn ti liu, nhng km theo cng c th l mt biu hot ng. Cc Use case c miu t duy nht theo hng nhn t ngoi vo ca cc tc nhn (hnh vi ca h thng theo nh s mong i ca ngi s dng), khng miu t chc nng c cung cp s hot ng ni b bn trong h thng ra sao. Cc Use case nh ngha cc yu cu v mt chc nng i vi h thng. Cc biu Use case s c miu t chi tit hn trong chng 4 (Use case).
Hnh 3.2- Biu use case ca mt cng ty bo him 3.5.2 Biu lp (Class Diagram)
Mt biu lp ch ra cu trc tnh ca cc lp trong h thng (nhn hnh 3.3). Cc lp l i din cho cc vt c x l trong h thng. Cc lp c th quan h vi nhau trong nhiu dng thc: lin kt (associated - c ni kt vi nhau), ph thuc (dependent - mt lp ny ph thuc vo lp khc), chuyn bit ha (specialized - mt lp ny l mt kt qu chuyn bit ha ca lp khc), hay ng gi ( packaged - hp vi nhau thnh mt n v). Tt c cc mi quan h u c th hin trong biu lp, i km vi cu trc bn trong ca cc lp theo khi nim thuc tnh (attribute) v th tc (operation). Biu c coi l biu tnh theo phng din cu trc c miu t y c hiu lc ti bt k thi im no trong ton b vng i h thng.
Trang 24
Hnh 3.3 - Biu lp cho mt giao dch Ti chnh 3.5.3 Biu i tng (Object Diagram)
Mt biu i tng l mt phin bn ca biu lp v thng cng s dng cc k hiu nh biu lp. S khc bit gia hai loi biu ny nm ch biu i tng ch ra mt lot cc i tng thc th ca lp, thay v cc lp. Mt biu i tng v vy l mt v d ca biu lp, ch ra mt bc tranh thc t c th xy ra khi h thng thc thi: bc tranh m h thng c th c ti mt thi im no . Biu i tng s dng chung cc k hiu ca biu lp, ch tr hai ngoi l: i tng c vit vi tn c gch di v tt c cc thc th trong mt mi quan h u c ch ra (nhn hnh 3.4). Biu i tng khng quan trng bng biu lp, chng c th c s dng v d ha mt biu lp phc tp, ch ra vi nhng thc th c th v nhng mi quan h nh th th bc tranh ton cnh s ra sao. Mt biu i tng thng thng c s dng lm mt thnh phn ca mt biu cng tc (collaboration), ch ra li ng x ng gia mt lot cc i tng.
Trang 25
Hnh 3.4 - Biu lp v biu i tng th hin ca lp 3.5.4 Biu trng thi (State Diagram)
Mt biu trng thi thng l mt s b sung cho li miu t mt lp. N ch ra tt c cc trng thi m i tng ca lp ny c th c, v nhng s kin (event) no s gy ra s thay i trng thi (hnh 3.5). Mt s kin c th xy ra khi mt i tng t gi thng ip n cho n - v d nh thng bo rng mt khong thi gian c xc nh qua i hay l mt s iu kin no c tha mn. Mt s thay i trng thi c gi l mt s chuyn i trng thi (State Transition). Mt chuyn i trng thi cng c th c mt hnh ng lin quan, xc nh iu g phi c thc hin khi s chuyn i trng thi ny din ra. Biu trng thi khng c v cho tt c cc lp, m ch ring cho nhng lp c mt s lng cc trng thi c nh ngha r rng v hnh vi ca lp b nh hng v thay i qua cc trng thi khc nhau. Biu trng thi cng c th c v cho h thng tng th. Biu trng thi c miu t chi tit hn trong chng sau (M hnh ng).
Hnh 3.5- Mt v d v biu trng thi 3.5.5 Biu trnh t (Sequence Diagram)
Trang 26
Hnh 3.6 - Mt biu trnh t cho Print Server 3.5.6 Biu cng tc (Collaboration Diagram)
Mt biu cng tc ch ra mt s cng tc ng, cng ging nh mt biu trnh t. Thng ngi ta s chn hoc dng biu trnh t hoc dng biu cng tc. Bn cnh vic th hin s trao i thng ip (c gi l tng tc), biu cng tc ch ra cc i tng v quan h ca chng (nhiu khi c gi l ng cnh). Vic nn s dng biu trnh t hay biu cng tc thng s c quyt nh theo nguyn tc chung sau: Nu thi gian hay trnh t l yu t quan trng nht cn phi nhn mnh th hy chn biu trnh t; nu ng cnh l yu t quan trng hn, hy chn biu cng tc. Trnh t tng tc gia cc i tng c th hin trong c hai loi biu ny. Biu cng tc c v theo dng mt biu i tng, ni mt lot cc i tng c ch ra cng vi mi quan h gia chng vi nhau (s dng nhng k hiu nh trong biu lp/ biu i tng). Cc mi tn c v gia cc i tng ch ra dng chy thng ip gia cc i tng. Cc thng ip thng c nh km theo cc nhn (label), mt trong nhng chc nng ca nhn l ch ra th t m cc thng ip c gi i. N cng c th ch ra cc iu kin, ch ra nhng gi tr c tr v, v.v... Khi lm quen vi cch vit nhn, mt nh pht trin c th c biu cng tc v tun th theo dng thc thi cng nh s trao i thng ip. Mt biu cng tc cng c th cha c cc
SVTH: Nguyn nh Lnh Lp : 10T1LT Trang 27
Hnh 3.7 - Mt biu cng tc ca mt printer server 3.5.7 Biu hot ng (Activity Diagram)
Mt biu hot ng ch ra mt trnh t ln lt ca cc hot ng (activity) (hnh 3.8). Biu hot ng thng c s dng miu t cc hot ng c thc hin trong mt th tc, mc d n cng c th c s dng miu t cc dng chy hot ng khc, v d nh trong mt Use case hay trong mt trnh t tng tc. Biu hot ng bao gm cc trng thi hnh ng, cha c t ca mt hot ng cn phi c thc hin (mt hnh ng - action). Mt trng thi hnh ng s qua i khi hnh ng c thc hin xong (khc vi biu trng thi: mt trng thi ch chuyn sang trng thi khc sau khi xy ra mt s kin r rng !). Dng iu khin y chy gia cc trng thi hnh ng lin kt vi nhau. Biu cn c th ch ra cc quyt nh, cc iu kin, cng nh phn thc thi song song ca cc trng thi hnh ng. Biu ngoi ra cn c th cha cc loi c t cho cc thng ip c gi i hoc c nhn v, trong t cch l thnh phn ca hnh ng c thc hin.
Trang 28
Mt biu thnh phn ch ra cu trc vt l ca cc dng lnh (code) theo khi nim thnh phn code. Mt thnh phn code c th l mt tp tin source code, mt thnh phn nh phn (binary) hay mt thnh phn thc thi c (executable). Mt thnh phn cha cc thng tin v cc lp logic hoc cc lp m n thi hnh, nh th c ngha l n to ra mt nh x t hng nhn logic vo hng nhn thnh phn. Biu thnh phn cng ch ra nhng s ph thuc gia cc thnh phn vi nhau, tr gip cho cng vic phn tch hiu ng m mt thnh phn c thay i s gy ra i vi cc thnh phn khc. Thnh phn cng c th c miu t vi bt k loi giao din no m chng bc l, v d nh giao din OLE/COM; v chng c th c nhm gp li vi nhau thnh tng gi (package). Biu thnh phn c s dng trong cng vic lp trnh c th (xem hnh 3.9).
Hnh 3.9 - Mt biu thnh phn ch ra s ph thuc gia cc thnh phn m 3.5.9 Biu trin khai (Deployment Diagram)
Biu trin khai ch ra kin trc vt l ca phn cng cng nh phn mm trong h thng. Bn c th ch ra tng my tnh c th v tng trang thit b c th (node) i km s ni kt gia chng vi nhau, bn cng c th ch ra loi ca cc mi ni kt . Bn trong cc nt mng (node), cc thnh phn thc thi c cng nh cc i tng s c xc nh v tr ch ra nhng phn mm no s c thc thi ti nhng nt mng no. Bn cng c th ch ra s ph thuc gia cc thnh phn. Biu trin khai ch ra hng nhn trin khai, miu t kin trc vt l tht s ca h thng. y l mt hng nhn rt xa li miu t duy chc nng ca hng nhn Use case. Mc d vy, trong mt m hnh tt, ngi ta c th ch tt c nhng con ng dn t mt nt mng trong mt kin trc vt l cho ti nhng thnh phn ca n, cho ti lp m n thc thi, cho ti nhng tng tc m cc i tng ca
Trang 29
Hnh 3.10 - Mt biu trin khai ch ra kin trc vt l ca h thng Multithreads 4.1 Gii thiu Thread l mt n v x l c bn trong h thng. Mi thread x l tun t cc on code ca n, s hu mt con tr lnh, mt tp cc thanh ghi v mt vng nh stack ring, cc thread chia s CPU vi nhau ging nh cch chia s gia cc tin trnh. Mt tin trnh s hu nhiu thread, tuy nhin mt thread ch c th thuc v mt tin trnh, cc thread bn trong cng mt tin trnh chia s nhau khng gian a ch chung, iu ny c ngha l cc thread c th chia s nhau cc bin ton cc ca tin trnh. Mt thread cng c th c cc trng thi ging nh cc trng thi ca mt tin trnh.
Trang 30
Hnh Biu trng thi UML ca vng i thread Trng thi New v Runable: Mt thread mi bt u trong trng thi New. N s gi trng thi ny cho n khi chng trnh khi ng thread, t n vo trng thi Runable. V lc ny coi nh n ang thc hin mt nhim v. Trng thi Waitting: i khi thread Runable chuyn sang trng thi ch trong khi n i mt thread khc thc hin nhim v. Trng thi ch chuyn ngc li trng thi Runable khi n c thread khc thng bo cho n tip tc thc hin. Trng thi Timed waitting : Trng thi Runable c th vo trng thi ch trong khong thi gian nht nh. N chuyn li trng thi ch khi ht thi gian ch hoc khi c s kin ch xy ra. Trng thi Terminate: Mt thread runable vo trng thi Terminate (trng thi cht) khi hon thnh nhim v no hoc c th kt thc mt cch khc c th do li xy ra. Trong biu UML trn, trng thi Terminate l trng thi cui cng bo hiu kt thc ca qu trnh chuyn giai on. Trng thi Blocked: Thread runable chuyn sang trng thi Blocked khi n ang thc hin nhim v no , nhng khng th hon thnh nhanh c v n tm thi ch cho n khi hon thnh. 4.3 Multithread trong Java
Trang 31
Trang 33
Lung l s tru tng ho mc cao, do vy bt k d liu c c vo t u hoc ghi ra u, th thut ton c/ghi tun t u ta nh sau: c vo open a stream while more information read information close the stream Ghi ra open a stream while more information write information close the stream 5.2 File v Stream Java a ra nhiu lp lung, x l mi loi d liu, java chia lung ra thanh 2 loi: lung byte ( byte stream) v lung k t (character stream), lp InputStream v OutputStream l hai lp c s cho mi lung nhp xut hng byte, v lp Reader/ Writer l hai lp c s cho vic c ghi hng k t. Lp RandomAccessFile k tha t lp Object v trin khai giao din, InputStream v OutputStream, y l lp duy nht h tr c c ln ghi. Lp nhp, xut hng k t Reader v Writer l hai lp c s tru tng cho lung hng k t, hai lp ny cung cp mt giao din chung cho tt c cc lp c/ ghi hng k t, mi ln c/ ghi ra lung l c 2 byte tng ng vi mt k t unicode, Sau y l m hnh phn cp cc lp c/ ghi hng k t
Trang 35
Stream hng byte: c th c ghi 1 byte, ta phi s dng lung hng byte, hai lp InputStream v OutputStream l hai lp c s tru tng cho cc lung hng byte, mi ln c/ ghi ra lung l c/ ghi 8 bit d liu ra lung, Hnh sau th hin mi quan h phn cp gia lp c/ ghi hng byte S tng t gia hai lung hng byte v hng k t Lp Reader v InputStream c mt giao din ging nhau, chng ch khc nhau v kiu d liu c vo, v d lp Reader c cc phng thc sau gip cho vic c mt k t hoc mt mng cc k t int read() int read(char cbuf[]) int read(char cbuf[], int offset, int length)
Trang 36
th trong lp InputStream cng c cc phng thc vi tn tng t cho vic c mt byte hoc mt mng cc byte int read() int read(byte cbuf[]) int read(byte cbuf[], int offset, int length) Cng tng t vy lp Writer v OutputStream cng c mt giao din tng t nhau, v d lp Writer nh ngha cc phng thc ghi mt k t, mt mng cc k t ra lung
Trang 37
c mt gi tr logic t lung c mt byte t lung c mt k t t lung c mt s double t lung c mt s float t lung c mt mng byte t lung v ghi vo mng c len byte t lung v ghi vo mng t v tr off c mt s nguyn c mt xu k t cho n khi gp k t xung dng v b qua k t xung dng c mt s long c mt s short c mt s nguyn khng du trong khong 0..255 mt s nguyn khng du trong on t 0..65535 c mt xu k t Unicode B qua n byte t lung
Trang 41
a. To cc i tng InetAddress Lp InetAddress c s dng biu din cc a ch IP trong mt ng dng mng s dng Java. Khng ging vi cc lp khc, khng c cc constructor cho lp InetAddress. Tuy nhin, lp InetAddress c ba phng thc tnh tr v cc i tng InetAddress Cc phng thc trong lp InetAddress public static InetAddress InetAddress.getByName(String hostname) public static InetAddress[] InetAddress.getAllByName(String hostname) public static InetAddress InetAddress.getLocalHost() Tt c cc phng thc ny u thc hin kt ni ti server DNS cc b bit c cc thng tin trong i tng InetAddress b. Nhn cc trng thng tin ca mt i tng InetAddress Ch c cc lp trong gi java.net c quyn truy xut ti cc trng ca lp InetAddress. Cc lp trong gi ny c th c cc trng ca mt i tng InetAddress bng cch gi phng thc getHostname v getAddress(). public String getHostName(): Phng thc ny tr v mt xu biu din hostname ca mt i tng InetAddress. Nu my khng c hostname, th n s tr v a ch IP ca my ny di dng mt xu k t. public byte[] getAddress() : Nu bn mun bit a ch IP ca mt my, phng thc getAddress() tr v mt a ch IP di dng mt mng cc byte. Mt s a ch IP v mt s m hnh a ch c cc ngha c bit. V d, 127.0.0.1 l a ch loopback. Cc a ch IPv4 trong khong 224.0.0.0 ti 239.255.255.255 l cc a ch multicast. Java 1.5 thm vo hai phng thc cho lp InetAddress cho php cc ng dng kim tra liu mt nt c th c n c hay khng vi nt xut pht l nt hin hnh; ngha l kim tra xem mt lin kt mng c thit lp hay cha. Cc lin kt c th b phong ta v nhiu nguyn nhn nh firewall, cc server y quyn, cc router hot ng sai chc nng, dy cp b t, hoc host xa khng bt.
SVTH: Nguyn nh Lnh Lp : 10T1LT Trang 42
Cch n gin nht mt chng trnh Java nh v v tm kim d liu l s dng mt i tng URL. Bn khng cn phi lo lng ti cc chi tit bn trong ca giao thc ang c s dng, khun dng d liu c nhn, hay lm th no truyn tin vi server; bn ch cn cho bit URL, Java s ly d liu v cho bn. Lp java.net.URL l mt khi nim v b nh v ti nguyn thng nht. Nu lu tr URL di dng mt i tng String s khng c li so vi vic t chc URL nh mt i tng vi cc trng : giao thc (protocol), hosname, cng (port), ng dn (path), tn tp tin (filename), mc ti liu (document section), mi trng c th c thit lp mt cch c lp. a. To cc URL C bn constructor, khc nhau v thng tin m n cn. Constructor m bn s dng ph thuc vo thng tin m bn c, v khun dng trong URL . Tt c cc constructor ny s a ra ngoi l MalformedURLException (URL khng ng khun dng) nu ta to ra mt URL cho mt giao thc m n khng c h tr.URL cung cp cc hm cu t sau: public URL(String url) throws MalformedURLException public URL(String protocol, String host, String file) throws MalformedURLException public URL(String protocol, String host, int port, String file) throws MalformedURLException public URL(URL u, String s) throws MalformedURLException b. Phn tch mt URL thnh cc thnh phn
C su trng thng tin trong lp URL: giao thc, port, file, mc tham chiu ti liu. public String getProtocol() public String getHost() public int getPort() trong URL. public int getDefaultPort() public String getFile() public String getRef() c. Tm kim d liu t mt URL
SVTH: Nguyn nh Lnh Lp : 10T1LT Trang 43
6.2.3.2 Tm kim cc trng Header MIME Su phng thc cui cng i hi cc trng nht nh t header MIME, nhng khng c gii hn no v s cc trng header m mt thng ip MIME c th c. Nm phng thc tip theo kim tra cc trng nht nh trong header MIME. FileURLConnection khng c cc header MIME thc s , v vy tt c cc phng thc ny tr v gi tr null khi bn ang lm vic vi mt file: URL, hnh vi mc
SVTH: Nguyn nh Lnh Lp : 10T1LT Trang 45
6.2.3.3 Cc phng thc RequestProperty Bn phng thc sau khng thc hin bt k cng vic g trong lp c s URLConnection, cng khng c ci t trong cc lp FileURLConnection hoc HttpConnection. Bn c th mong mun np chng chng trong mt lp con ci t phng thc tra cu bng bm, chng hn xy dng mt bng bm cha tt c cc header MIME ca yu cu. public String getRequestProperty(String property_name) public static void setDefaultRequestProperty(String property_name, String property_value) public void setRequestProperty(String property_name, String property_value) public String getDefaultRequest(String property_name) protected URLConnection(URL u) 6.3 Thit lp kt ni n Server s dng Stream Socket
Lp ServerSocket c mi th ta cn vit cc server bng Java. N c cc constructor to cc i tng ServerSocket mi, cc phng thc lng nghe cc lin kt trn mt cng xc nh, v cc phng thc tr v mt Socket khi lin kt c thit lp, v vy ta c th gi v nhn d liu. Vng i ca mt server 1. Mt ServerSocket mi c to ra trn mt cng xc nh bng cch s dng mt constructor ServerSocket. 2. ServerSocket lng nghe lin kt n trn cng bng cch s dng phng thc accept(). Phng thc accept() phong ta cho ti khi mt client thc hin mt lin kt, phng thc accept() tr v mt i tng Socket m lin kt gia client v server. 3. Ty thuc vo kiu server, hoc phng thc getInputStream(), getOutputStream() hoc c hai c gi nhn cc lung vo ra truyn tin vi client. 4. server v client tng tc theo mt giao thc tha thun sn cho ti khi ngt lin kt. 5. Server, client hoc c hai ngt lin kt 6. Server tr v bc hai v i lin kt tip theo. 6.3.1 Cc constructor public ServerSocket(int port) throws IOException, BindException public ServerSocket(int port, int queuelength, InetAddress bindAddress)throws IOException 6.3.2 Chp nhn v ngt lin kt
Trang 46
public Socket(String host, int port) throws UnknownHostException, IOException Hm ny to mt socket TCP vi host v cng xc nh, v thc hin lin kt vi host xa public Socket(InetAddress host, int port)throws IOException public Socket (String host, int port, InetAddress interface, int localPort) throws IOException, UnknownHostException public Socket (InetAddress host, int port, InetAddress interface, int localPort) throws IOException, UnknownHostException Constructor ch khc constructor trn ch a ch ca host lc ny c biu din bi mt i tng InetAddress 6.4.2 Nhn cc thng tin v Socket i tng Socket c mt s trng thng tin ring m ta c th truy nhp ti chng thng qua cc phng thc tr v cc thng tin ny. public InetAddress getInetAddress() public int getPort() public int getLocalPort() public InetAddress getLocalAddress() public InputStream getInputStream() throws IOException public OutputStream getOutputStream() throws IOException 6.4.3 ng Socket n thi im ta c y cc thng tin cn thit trin khai mt ng dng pha client. Khi vit mt chng trnh ng dng pha client tt c mi cng vic u chuyn v vic qun l lung v chuyn i d liu t lung thnh dng thc m ngi s dng c th hiu c. Bn thn cc socket rt n gin bi v cc phn vic phc tp c che du i. y chnh l l do socket tr thnh mt la chn c tnh chin lc cho lp trnh mng public void close() throws IOException
Trang 47
TCP_NODELAY public void setTcpNoDelay(boolean on) throws SocketException public boolean getTcpNoDelay() throws SocketException SO_LINGER public void setSoLinger(boolean on, int seconds) throws SocketException public int getSoLinger() throws SocketException SO_TIMEOUT public void setSoTimeout(int milliseconds) throws SocketException public int getSoTimeout() throws SocketException 6.4.5 Cc phng thc ca lp Object
Lp Socket np chng phng thc chun ca lp java.lang.Object, toString(). V cc socket l cc i tng tm thi v thng ch tn ti khi lin kt tn ti. public String toString() Phng thc toString() to ra mt xu k t nh sau: Socket[addr=www.oreilly.com/198.122.208.11,port=80,localport=50055] Phng thc ny thng hu ch cho vic g ri 6.4.6 Cc ngoi l Socket Hu ht cc phng thc ca lp Socket c khai bo a ra ngoi l IOException, hoc lp con ca lp IOExcepton l lp SocketException. 6.4.7 Cc lp SocketAddress Lp SocketAddress bt u c t phin bn Java 1.4, biu din mt u cui ca lin kt. Lp SocketAddress l mt lp tru tng m khng c phng thc no ngoi construtor mc nh. Lp ny c th c s dng cho c cc socket TCP v socket khng phi l TCP. Cc lp con ca lp SocketAddress cung cp thng tin chi tit hn thch hp cho kiu socket. Trong thc t, ch h tr TCP/IP.
Trang 48
Giao thc UDP l giao thc n gin, phi lin kt v cung cp dch v trn tng giao vn vi tc nhanh. N h tr lin kt mt-nhiu v thng c s dng thng xuyn trong lin kt mt-nhiu bng cch s dng cc datagram multicast v unicast. 6.5.2 LpDatagramPacket
Cc datagram UDP a rt t thng tin vo datagram IP. Header UDP ch a tm byte vo header IP. Header UDP bao gm s hiu cng ngun v ch, chiu di ca d liu v header UDP, tip n l mt checksum ty chn. V mi cng c biu din bng hai byte nn tng s cng UDP trn mt host s l 65536. Chiu di cng c biu din bng hai byte nn s byte trong datagram ti a s l 65536 tr i tm 8 byte dnh cho phn thng tin header. public final class DatagramPacket extends Object Lp ny cung cp cc phng thc nhn v thit lp cc a ch ngun, ch t header IP, nhn v thit lp cc thng tin v cng ngun v ch, nhn v thit lp di d liu. Cc trng thng tin cn li khng th truy nhp c t m Java thun t 6.5.3 DatagramSocket
gi hoc nhn mt DatagramPacket, bn phi m mt DatagramSocket. Trong Java, mt datagram socket c to ra v c truy xut thng qua i tng DatagramSocket public class DatagramSocket extends Object 6.5.4 c cc gi tin
Trc khi mt ng dng c th c cc gi tin UDP c gi bi cc my xa, n phi gn mt socket vi mt cng UDP bng cch s dng DatagramSocket, v to ra mt DatagramPacket s ng vai tr nh l mt b cha cho d liu ca gi tin UDP. Hnh v di y ch ra mi quan h gia mt gi tin UDP vi cc lp Java khc nhau c s dng x l n v cc ng dng thc t.
Trang 49
6.5.5
Gi cc gi tin
Lp DatagramSocket cng c s dng gi cc gi tin. Khi gi gi tin, ng dng phi to ra mt DatagramPacket, thit lp a ch v thng tin cng, v ghi d liu cn truyn vo mng byte. Nu mun gi thng tin phc p th ta cng bit a ch v s hiu cng ca gi tin nhn c. Mi khi gi tin sn sng gi, ta s dng phng thc send() ca lp DatagramSocket gi gi tin i
Servlet 7.1 Gii thiu Servlet Java servlet l nhng chng trnh clpplatform v nh chy pha server clptrnh m rng chc nng ca web server(Web server phih tr Java). C ch hot ng theo m hnh CGI m rng. Chng trnh servlet: Thng extends class HttpServlet. Khng c method main. Phi cdch ra dng byte-code(.class) v khai bo vi web server. Cn c package servlet.jar bin dch (http://java.sun.com/products/servlet/) Cc server hinh tr Servlet: Apache Tomcat (http://jakarta.apache.org) Suns Java Web Server (http://wwws.sun.com/software/jwebserver/) New Atlantas ServletExec, tch hp ServletEngine vo cc web server(http://newatlanta.com) http://www.macromedia.com/software/jrun/trial/
SVTH: Nguyn nh Lnh Lp : 10T1LT Trang 50
7.3 Lp trnh vi servlet API Java Servlet API gm: javax.servlet.* Cha cc class v interface clpvi HTTP javax.servlet.http.* Cha cc class c th cho HTTP Ttc sevlet uphihinthcgiaodin javax.servlet.Servlet. Tuy nhin do chng ta dng giao thc HTTP nn javax.servlet.http.HttpServlet l lp hin thc giao din Servlet, nn V vyta thng phi k tha t lp ny v override cc method doGet()/doPost(). 7.4 C ch hot ng ca Servlet Web server nhn yu cu triu gi servlet t client. Nu servlet chyln u, web server load file servlet tng ng, khi to cc thng s bng qua method init() Nu servlet ckhito, tomt thread x l yu cu. Gi methods doXxx() x l cc request tng ng theo giao thcHTTP: doGet cho HTTP GET, doPost cho HTTP POST 7.5 Cu trc n gin ca Servlet import java.io.*; import java.servlet.*; import java.servlet.http.*; public class Sample extends HttpServlet{ public doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
SVTH: Nguyn nh Lnh Lp : 10T1LT Trang 51
L mt trang HTML c xen cc onmJava. c web server bin dch thnh bytecode. C ch hot ng tng t nh Servlet. c to sn cc itng ca cc class HttpServletRequest v HttpServletResponse x l giao tipvi web client. 7.7.2 Lp trnh web vi JSP
Cc itng c xy dng sn request: itng class HttpServletRequest response: itng class HttpServletResponse out: itng class PrintWriter session: i tng class HttpSession to ra t method getSession() ca i tng request application: itng class ServletContext config: itng class ServletConfig Cc on m Java trong trang JSP c t trong tag <% . %> Gi tr biuthc: <%= biuthc%> Khai bo cc bin <%! [type variable;]+ %> Java code <% Java code %> Ch thch <%-- comments --%> Cc khai bo ch th (directive) <%@ page import=[package][,package]* %> <%@ page isThreadSafe={true|false} %> <%@ page session={true|false} %> <%@ include file=filename %> Struts 8.1 Gii thiu kin trc MVC M hnh Model-View-Controller chia cc components ca ng dng thnh 3 loi khc nhau l Model (mu), View (hin th), v Controller iu khin). Cc components ca m hnh MVC m
SVTH: Nguyn nh Lnh Lp : 10T1LT Trang 54
Model (mu) : Model m nhn nhim v cung cp d liu t c s d liu v lu cc thng tin ni cha d liu. Tt c cac Business Logic u c thc thi Model. D liu c nhp vo bi ngi s dng qua View s c kim tra Model trc khi c lu vo c s d liu. Truy xut d liu,s hp l ca d liu v data saving logic l cc thnh phn ca Model. View (hin th) : View trnh by vic hin th ca ng dng v nhn trch nhim ly d liu t ngi s dng, gi cc yu cu n Controller ri sau nhn tr li t Controller v hin th kt qu n ngi s dng. HTML, JSPs, cc th vin Tag v cc file ngun l cc phn ca view component. Controller (iu khin) : Controller l trung gian gia Model v View. Controller c trch nhim nhn cc yu cu t Client. Khi m yu cu uc nhn t Client,Controller s thc thi business logic thch hp t Model v sau xut ra d liu cho user s dng View component. ActionServlet, Action, ActionForm v struts-config.xml l cc thnh phn ca Controller. 8.2 Khi nim Struts Struts l mt MVC Framework: Struts cung cp mt framework thng nht deploy cc ng dng Servlet v JSP s dng kin trc MVC. Struts l mt tp cc Utilities: Struts cung cp cc lp tin ch iu khin hu ht cc tc v trong vic pht trin cc ng dng Web. Struts l mt tp th vin cc th JSP ty chn (Custom JSP Tag): Struts cung cp cc th vin th ty chn cho vic th hin cc thuc tnh ca bean, qun l cc HTML forms, lp li cc kiu cu trc d liu, v a ra cc HTML c iu kin. 8.3 Kin trc Struts Mt hoc nhiu Action, mi action trong trang web s nh x chnh xc n mt thnh phn <action> c nh ngha trong file struts-config.xml. Action c triu gi bi ngi dng t mt trang HTML hoc JSP thng qua mt lin kt hay thng qua thuc tnh action trong th <form>.
Trang 55
Mt lp ActionForm c th s dng mt hoc nhiu forward c nh ngha trong th <action> ni cho mt ActionServlet tr v cc response tng ng vi cc request ca ngi dng. Chng ta c th nh ngha nhiu forward trong th <action-mapping>. 8.4 Cc thnh phn chnh ca Struts ActionServlet: ng vai tr nh l mt controller trong m hnh MVC, hay ni cch khc ActionServlet l s thc thi controller ca Struts i vi m hnh MVC. ActionServlet ly v cc request t pha ngi dng v nh x chng n thnh phn <action> trong file struts-config.xml. Action: nh ngha mt tc v c th c gi bi ngi dng. N cng nh ngha lp s s l cc request t pha ngi dng v trang JSP s hin th kt qu v cho ngi s dng. Lp Action: cha ton b nhng s l cho cc yu cu ca ngi dng. ActionForm: i km vi th <action> trong file struts-config.xml, n qun l ton b cc d liu c submit ln t pha ngi dng v c th thc hin validate cc d liu . Trang JSP: c s dng tr v trang HTML th hin kt qu c s l cho ngi dng. 8.5 Cc file cu hnh cn thit xy dng ng dng Struts web.xml: file ny cha ton b cc cu hnh ca ActionServlet, cc s nh x ca cc yu cu t pha ngi dng n ActionServlet, v tt cc Struts Tag Library Definitions (TLDs). struts-config.xml: file ny cha tt c cc thng tin cu hnh cho mt ng dng xy dng da trn Struts. ApplicationResources.properties: file ny trung tm cha cc ni dung tnh c s dng trong ton b ng dng Struts. N cho php cc nh pht trin d dng thay i ni dung cc text v cc ni dung dng chung s dng trong ng dng. Cc th vin th Struts xy dng cc thnh phn trnh din trong mt ng dng:
SVTH: Nguyn nh Lnh Lp : 10T1LT Trang 56
III.
ng dng Login l mt v d n gin ta c th nghin cu mt cch chung nht v framework Struts. Chng ta thit k mt cch chi tit to nn mt ng dng web da trn framework Struts: Thit k t nht mt thnh phn View Vi Controller, mt lp con ca lp Action cung cp cc hm x l cho ng dng Vi Controller, mt lp con ca lp ActionForm kt hp vi mi thnh phn View submits d liu i vi Model, t nht mt Javabean i din cho d liu c trnh by cho mi thnh phn View Vi cc file cu hnh, yu cu phi c cp nht 1.2 Yu cu ng dng Cc yu cu cho ng dng Login kh n gin: Khi login vo trang ng dng vi yu cu username v password Xc nh li username v password mt ln na vi kho lu tr username v password Nu user c chp nhn th ng dng hin th thng bo thnh cng Nu user khng ph hp th ng dng hin th nhc nh v yu cu xc nhn ln na 1.3 Cc thnh phn yu cu cho ng dng Khi phn tch cc yu cu cho ng dng phn trn, ta nhn thy rng cn hai thnh phn View. Mt trang hin th cc trng username v password , trang khc hin th user ng nhp thnh cng. i vi Controller, cn c mt lp Action x l yu cu t trang Log In v mt lp ActionForm nm d liu yu cu . Thnh phn Model, cn mt Javabean phc v nh l kho lu tr d liu. Javabean cha danh sch cc username v password kt hp vi nhau cho vic chng thc ngi dng v cc phng thc cn thit lm vic vi danh sch .
SVTH: Nguyn nh Lnh Lp : 10T1LT Trang 57
1.6 Import cc file Struts Import tt c cc file th vin vo folder WEB-INF/lib Import cc file m t th th vin vo WEB-INF
SVTH: Nguyn nh Lnh Lp : 10T1LT Trang 58
Trang 59
Ta xc nh c ng dng c hai file JSP trong thnh phn View, c biu din nh sau: Trong folder Login/WEB-INF , to file jsp mi vi tn login.jsp. Trang login.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%-- JSTL tag libs --%> <%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld" %> <%-- Struts provided Taglibs --%> <%@ taglib prefix="html" uri="/WEB-INF/struts-html-el.tld" %> <html:html locale="true"/> <head> <fmt:setBundle basename="ApplicationResources" /> <title><fmt:message key="login.title"/></title> </head> <body> <html:errors property="login"/> <html:form action="login.do" focus="userName"> <table align="center"> <tr align="center"> <td><H1><fmt:message key="login.message"/></H1></td> </tr> <tr align="center"> <td> <table align="center"> <tr> <td align="right"> <fmt:message key="login.username"/> </td> <td align="left"> <html:text property="userName" size="15" maxlength="15" /> <html:errors property="userName" /> </td> </tr> <tr> <td align="right"> <fmt:message key="login.password"/> </td> <td align="left"> <html:password property="password" size="15" maxlength="15" redisplay="false"/> <html:errors property="password" /> </td> </tr> <tr> <td colspan="2" align="center"> <html:submit> <fmt:message key="login.button.signon"/> </html:submit> </td> </tr> </table> </td> </tr> </table> </html:form> </body> </html>
Trang 60
Trang 61
Trang 62
2.2 To cc formbean
Class ActionForm l mt phn ca Struts Controller, n c kt hp vi mt hoc nhiu Views. Mc ch chnh ca ActionForm l nm gi cc thuc tnh form c submit. V th, n c nhng thuc tnh ca JavaBean nn c gi l formbean. Chng ta cn tham chiu n mi thuc tnh form trong lp con ca ActionForm. Class LoginForm.java:
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; public class LoginAction extends Action { public ActionForward execute( ActionMapping mapping, ActionForm form,HttpServletRequest request,HttpServletResponse response) throws Exception { // create a new LoginBean with valid users in it LoginBean lb = new LoginBean(); // check to see if this user/password combination are valid if(lb.validateUser(((LoginForm)form).getUserName(),((LoginForm)form).getPassword())) { request.setAttribute("userName",((LoginForm)form).getUserName()); return (mapping.findForward("success")); } else // username/password not validated { // create ActionError and save in the request ActionErrors errors = new ActionErrors(); ActionError error = new ActionError("error.login.invalid"); errors.add("login",error); saveErrors(request,errors); return (mapping.findForward("failure")); } } }
Trang 63
JavaBean i din cho nhm Model v lu gi d lin v username v password. Class LoginBean:
package dummies.struts; import java.util.HashMap; public class LoginBean { private HashMap validUsers = new HashMap(); public LoginBean() { validUsers.put("Twinkle Toes","tt"); validUsers.put("administrator","admin"); validUsers.put("Barbara Smith","smitty"); validUsers.put("linh","nguyen"); } public boolean validateUser(String userName, String password) { if(validUsers.containsKey(userName)) { String thePassword = (String)validUsers.get(userName); if(thePassword.equals(password)) return true; } return false; } }
Trang 64
Class Acction trong ng dng ny l class LoginAction, c dng x l yu cu ngi dng. Class LoginAcion.java:
package dummies.struts;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; public class LoginAction extends Action { public ActionForward execute( ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response)throws Exception { // create a new LoginBean with valid users in it LoginBean lb = new LoginBean(); // check to see if this user/password combination are valid if(lb.validateUser(((LoginForm)form).getUserName(),((LoginForm)form).getPassword())) { request.setAttribute("userName",((LoginForm)form).getUserName()); return (mapping.findForward("success")); } else // username/password not validated { // create ActionError and save in the request ActionErrors errors = new ActionErrors(); ActionError error = new ActionError("error.login.invalid"); errors.add("login",error); saveErrors(request,errors); return (mapping.findForward("failure")); } } }
Trang 65
chy c ng dng, ta cn cu hnh Web container v Struts. Thng qua vic ny, cc thnh phn ca chng ta s gn kt li vi nhau. Trc tin, ta cu hnh Web container n thy c ng dng ca chng ta. nh ngha file web.xml
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app> <!-- Action Servlet Configuration --> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <!-- Action Servlet Mapping --> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <!-- The Welcome File List --> <welcome-file-list> <welcome-file>login.jsp</welcome-file> </welcome-file-list> <!-- JSTL Tag Library Descriptor --> <taglib> <taglib-uri>/WEB-INF/c.tld</taglib-uri> <taglib-location>/WEB-INF/c.tld</taglib-location> </taglib> <taglib> <taglib-uri>/WEB-INF/fmt.tld</taglib-uri> <taglib-location>/WEB-INF/fmt.tld</taglib-location> </taglib> <taglib> <taglib-uri>/WEB-INF/sql.tld</taglib-uri> <taglib-location>/WEB-INF/sql.tld</taglib-location> </taglib> <taglib>
Trang 66
cu hnh Struts vi file struts-config.xml. File struts-config.xml s gn kt Views, Forms v Action ca ta li vi nhau. struts-config.xml
Tip theo <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"> <!-- This is the Struts configuration file for the Login example application -->
<struts-config> <!-- ========== Form Bean Definitions =================================== --> <form-beans> <form-bean name="loginForm" type="dummies.struts.LoginForm"/></form-beans> <!-- ========== Action Mapping Definitions ============================== --> <action-mappings> <action path="/login" type="dummies.struts.LoginAction" name="loginForm" scope="request" input="/login.jsp" validate="true"> <forward name="failure" path="/login.jsp"/> <forward name="success" path="/loggedin.jsp"/> </action> </action-mappings> <!-- ========== Message Resources Definitions =========================== --> <message-resources null="false" parameter="ApplicationResources"/> </struts-config>
Trang 67
chy ng dng, ta cn thm vi bc na, ta cn copy vi file v folder vo folder webapps trong folder ng dng Tomcat. Thc hin theo cc bc nh sau: Trong folder webapps ca Tomcat, to folder Login, cha cc file ng dng ca ta. Copy hai file jsp v folder WEB-INF trong folder workspace ca ng dng Eclipse vo folder Login ta to bc trn. Nh vy, ta trin khai xong ng dng Login. chy c ng dng, cn phi khi ng Tomcat, sau vo trnh duyt web g theo a ch : http://localhost:8080/Login/login.jsp. Sau y l vi hnh nh minh ha cho ng dng Login ca chng ta
Trang 68
Trang 69
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Trang 70