Cong ngh~ JavaServer Pages Sl1 phat triSn ling dl;lng Web phuc tC;lPdoi hoi phili co nhung thayd6i, cai tie'n trong cong nght%,d~c bit%tla cong nght%phat triSn ling dl;lng.HTML chuffn ch
Trang 1THANH PHQ HO CHi MINH - 7/2001
GVHDSVTHLopNien khoa
: ThS DO HOANG CIJ(1NG: LE MINH LU(1NG
: MV9701: 1997 - 2001
Trang 21.1.2.3 1.1.2.4 1.1.2.5 1.1.2.6 1.1.3 1.1.3.1 1.1.3.2 1.1.3.3
•
-. -.4
MlfC l~lC MlJC LlJC CHU<1NG 1: CONG NGHt JAVASERVER PAGES (JSP) - 1
1.1 T6ng quan v~ cong ngh~ JSP - 2
1.1.1 Cong ngh~ JSP - 3
Kh "o.", ;:: '" h" JSP 1.1.1.1 al lllym ve cong ng y - 3
1.1.2 Nhii'ng tinh nang n6i b~t cua cong ngh~ JSP - 4
1.1.2.1 Suc m~nh cua JavaServer side - 4
1.1.2.2 D€ dang nhanh chong trong vi~c phat tri~n, tri~n khai va blw trl - 4
T~p trung vao tinh tai sU'dlfng cac component - 5
NQi dung oQng -~ - 5
Tinh rna rQng va sl! ph6 bie'n - 5
DQc I~p voi cac the - 5
Cac mo hlnh ung dlfng cho cac trang JSP - 6
Mo hlnh ung dlfng odn gian - 6
Mo hlnh ung dlfng voi Java Servlet - 6
Mo hlnh ung dlfng voi cong ngh~ Enterprise JavaBeans - 7
1.2 Cli pha p JSP - 8
1.2.1 Cli pha p cd ban cua JSP - 8
1.2.1.1 Chen mQt JSP template text - 8
1.2.1.2 D~ t tag bfit o~u va tag ke't thlic - 8
1.2.1.3 D~t cac gia tri thuQc tinh -. - 8
1.2.1.4 Chen cac chli thich - 9
1.2.1.5 ChI ra mQt URL tu'dng o6i trong trang JSP - 9
1.2.2 Cac chI dftn - 10
1.2.2.1 ChI dftn bien dich trang - 11
1.2.2.2 ChI dftn nhling rna ngu6n - 13
1.2.2.3 ChI dftn taglib - 13
1.2.3 Cac Scripting element - 13
1.2.3.1 Ca c khai ba0 - 14
1.2.3.2 Ca c Scriplet - 14
1.2.3.3 Cac bi~u thuc -.: - 15
1.2.4 Cac hanh vi - 15
•
Trang 31.204.2
1.204.3
1.20404
1.204.5
jsp: usebean - 16
jsp:setProperty - 17
jsp :getProperty - 18
jsp :include - 19
jsp :forward - 19
'1 1.3 Cae d6i tuqng JSP - 20
1.3.1 Cae d6i tuqng JSP - 21
1.3.2 E>6ituqng application - 21
1.3.3 E>6ituqng config - 22
1.3 A E>6ituqng exception - 22
1.3.5 E>6ituqng out - 23
1.3.6 E>6ituqng pageContext - 23
1.3.7 E>6ituqng request - 24
1.3.8 E>6ituqng response - 25
1.3.9 E>6ituqng session - 26
104 JSP voi HTML Forms - 26
104.1 Gdi du li~u ttl form nhu the"nflO? - 27
104.2 T~o mQt Form nhu the"nflO ? - 27
104.3 Form Element - 32
10404 Password Fields - 33
104.5 Text Controls - 33
104.6 Push Buttons - 34
104.7 Check Boxes va Radio Buttons - 35
104.8 Combo Boxes va List Boxes - 36
104.9 Hidden Fields - 36
1.5 JSP voi cd sd du li~u - 36
1.5.1 Cd che' JDBC - 37
1.5.1.1 JDBC la gl ? - 37
1.5.1.2 Cd che"ho~ t dQng cua JDBC - 37
1.5.1.3 Cae trlnh di~u khi~n cua JDBC - 37
1.5.2 JSP truy xuftt CSDL dung trlnh di~u khi~n JDBC ki~u 1 va kh6i JAVA.SQL - 40
1.5.2.1 Kh6i Java.SQL - 40
.1
;.' U
Trang 41.5.2.3
1.5.2.4
1.5.2.5
1.5.2.6
1.5.2.7
1.5.2.8
1.5.2.9
T~o ke't n6i ODBC trong Window - 42
Ghi da li~u til trang JSP xu6ng CSDL - 45
DQc da li~u til CSDL len trang JSP - 47
D6 da li~u vao Combo box trong trang JSP - 50
Grid - 51
Update va Delete da li~u trong CSDL til trang JSP - 53
Store Procedure - 54
GQi store procedure trong ling dl;lng JSP - 58
1.6 Ke't 1u~n - 59
CHU<1NG 2 : CONG NGHt ENTERPRISE JAVA BEANS (EJB) - 60
2.1 EnterPrise JavaBeans (EJB) - 61
2.2 M6 hlnh thanh ph~n - 61
2.3 Enterprise Bean Component - 62
2.4 Lop va giao di~n - 63
2.4.1 Lop va giao di~n - 64
2.4.2 Giao di~n Home - 65
2.4.3 Lop Bean - 66
2.4.4 Primary key - 67
2.4.5 Session Bean - 68
2.5 Deployment Descriptor va t~p tin JAR - 68
2.6 XML Deployment Descriptor - 72
2.7 Kie'n truc Enterprise JavaBeans - 73
2.8 Sa dl;lng Enterprise JavaBeans - 74
2.8.1 La'y th6ng tin til m(>tEntity Bean - 74
2.8.2 M6 hlnh lu6ng c6ng vi~c (workflow) vdi Session Bean 76
2.8.3 Stateful va stateless session bean - 80
2.9 Net n6i b~t cua c6ng ngh~ Enterprise Java Beans - 81
2 10 V.. altro cua ngu'ol pat,? ,. h" tnen -.,:1 82
Trang 5CHudNG 3 : Moi tnt<tng JAVA ™ 2 SDK, ENTERPRISE EDITION
(J2EE) - 83
3 1 J2EE la gi ? - 84
3.2 Uu di€m clla nhi1ng Middle-Tier Servers - 85
3.3 Kie'n truc clla J2EE - 86
3.3.1 J2EE Server - 87
3.3.2 EJB Container - 87
3.3.2.1 Transaction Management - 87
3.3.2.2 Security - 87
3.3.2.3 Remote Client Connectivity - 88
3.3.2.4 Life Cycle Management - 88
3.3.2.5 Database Connection Pooling - 88
3.3.3 Web container - 88
3.4 Enterprise Beans - 89
3.4.1 Session Beans - 89
3.4.2 Entity beans - 89
3.4.3 Nhi1ng gioi hC;lntn~n l~p trinh Enterprise Beans - 91
3.4.4 Truy c~p cd sd di1li<%u - 91
3.5 Ung dl;lng J2EE - 92
3.5.1 NQi dung clla mQt ling dl;lng J2EE - 92
3.5.2 Cac giai dOC;lnphat tri€n clla ling dl;lng J2EE - 94
3.5.2.1 3.5.2.2 3.5.2.3 3.5.2.4 Enterprise Bean Creation - 95
Web Component Creation - 96
J2EE Application Assemply - 96
J2EE Application Deployment - 96
3.6 Transaction - 97
3.6.1 Container - Managed Transaction - 97
3.6.1.1 ThuQc tinh transaction - 97
3.6.1.2 Roll back mQt Container - Managed Transaction - 100
J
Trang 6-3.6.1.3 3.6.2 3.6.2.1 3.6.2.2 3.6.2.3 3.6.3 3.6.4 Cac ham khong dUQcphep slt dl;lng trong Container - Managed Transaction - 100
Bean - Managed Transaction - 101
JDBC Transactions - 101
JTA Transactions - 101
Cac ham khong dUQcphep slt dl;lng trong Bean - Managed Transaction - 101
Transaction Timeouts - 101
C~P nh~ t nhi~u cd sd dli 1i~u - 102
3.7 Security
-3.7.1 3.7.1.1 3.7.L2 3.7.1.3 3.7.2 3.7.2.1 3.7.2.2 3.7.2.3 Authen tica tion -
-J2EE Users, Realms va Groups
-Clien t Au thentica ti0n - - -
Qmln ly J2EE users va groups
-Auth0riza ti0n
Khai bao Roles
-Kh b"al ao PermlSSlon -
Anh X'.l Roles d€n J2EE Users va J2EE Groups
-102 104 104 105 106 106 107 107 107 3 8 M". ot so van. '" '" d~ k- h "e y t uat -.
3.8.1 Cac h~ di~u hanh dUQch6 trQ
-3.8.2 Cd sd dli li~u va JDBC™ Drivers dUQch6 trQ
-3 8 -3 . Ph~an mem~ d' k'1 em can p al co -~ h?' , 3.8.4 Gidi thi~u cac cong Cl;lcua J2EE SDK
-3.8.5 Qua trlnh tri€n khai ling
dl;lng 3.9 Cach t'.lOva tri€n khai m(>tling dl;lng J2EE
-3.9.1 Vdi cong ngh~ JavaServer Pages
-3.9.2 Vdi cong ngh~ Enterprise
JavaBeans -108 108 108 108 108 114 115 115 121 CHudNG 4: UNG DlJNG MINH HQA - 133
4.1 Khao sat hien trang - 134
4.1.1 Ml;lCdich - 134
Trang 7-4.1.2 Mo ta cae cong vi~c - 135
4.1.3 Cae quy uoc v8 thong tin lu'u tru dil' li~u trong h~ th6ng quan ly truong dai hoc - 135
4.2 Phan tich - 136
4.2.1 Sod6 chile nang (FHD) - 137
4.2.2 Sod6 thl!c th~ (ERD) - 145
4.3 Thie't ke' - 146
4.3.1 Mo hlnh quan h~ dil' li~u mile v~t ly - 146
4.3.2 Giao di~n chuang trlnh - 147
4.4 Ke't lu~n - 155
,~ ? TAl LI~U THAM KHAO - 156
Trang 8Hi<%nnay a nudc ta, va'n d~ ap dl;lng tin hQc dti xli' ly thong tin trongcong tac quan ly dff tra thanh nhu c~u buc thi€t, cac doanh nghi<%pcling nhucac truang £>(;lihQc dff tung budc Tin hQc hoa thong tin trong vi<%cquan lynhan ltfc clla mlnh.
Do do, trong khoa lu?n t6t nghi<%pnay, JSP duqc ung dl;lng dti xayd~tng nen mQt h<%th6ng thong tin quan ly nhan ltfc cho mQt truang £>(;lihQc.Chudng trlnh nay giup quan ly mQt cach d~y dll va co h~ th6ng nhung h6 sd
cd ban: v~ mQt nhan vien tu khi hQ d€n lam vi<%ct(;li truang; v~ mQt sinhvien, hQc vien cao hQc & nghien cuu sinh tu khi hQ d€n hQc t(;li truang,cGng nhu cung ca'p thong tin v~ tlnh hlnh nhan ltfc clla truang a mQi thaiditim dti dam bao cho qua trlnh hO(;ltdQng giang d(;ly, dao t(;lOcua truangduqc 6n dinh, trq giup cho nguai quan ly co thti xay dtfng nhung k€ hO(;lchphat tritin, dao t(;lO,rna rQng clla truang Ngoai ra, con co chuc nang tra cuunhanh h6 trq nguai quan ly d~ dang tim ki€m thong tin v~ mQt nhan vien,sinh vien, hQc vien cao hQc & nghien cuu sinh, cling nhu cho phep nguaiqmln ly th6ng ke, bao cao v~ so"luqng nhan vien, sinh vien, hQc vien caohQc & nghien cuu sinh,
Bao cao t6t nghi<%pduqc chia lam 4 chudng :
• CHUdNG 2: CONG NGHe ENTERPRISE JA VABEANS(EJB)
EDITION
• CHUdNG 4 : UNG D1JNG MINH HOA
Do kinh nghi<%mcon h(;ln ch€ nen chudng trlnh va cu6n bao cao naykhong tranh khoi nhi~u sai sot Em ra't mong co duqc nhung y ki€n donggop quy bau clla quy Th~y Co va cac b(;ln
Trang 9LiJi mo dc1u
Cltong, nguoi da huang dfin, giilp do em rftt t~n tlnh d~ em co th~ hoanthanh dU9C cu6n khoa lu~n t6t nghi<%pnay Em cling xin gdi den gia dinhthffy Wi chilc suc khoe va Wi cam on chan thanh nhftt
Trang 10Ch1L(Jf1g 1 C6ng ngh~ JavaServer Pages
CHUONG 1 CONG NGHt JA VASERVER PAGES (JSP)
Trang 1
."
t"
1.1 T6ng quan v~ cong ngh~ JSP 1.2 Cn pha p JSP
1.3 Tham chie'u dol biqng trong trang JSP 1.4 JSP v6'i HTML Forms
1.5 JSP v6'i Cd sd dilli~u
1.6 Ke't lu~n
Trang 11ChLtdng 1 C6ng ngh~ JavaServer Pages
1.1 TONG QUAN VE CONG NGm: JSP
Trang 2
1.1.1 Cong ngh~ JavaServer Pages
Sl1 phat triSn ling dl;lng Web phuc tC;lPdoi hoi phili co nhung thayd6i, cai tie'n trong cong nght%,d~c bit%tla cong nght%phat triSn ling dl;lng.HTML chuffn chi co thS dung cho vit%c hiSn thi cac nQi dung tInh, dS tC;lora
sl1 tuang tac va hiSn thi cac nQi dung dQng c~n co nhung giai phap khac.
Giao dit%nCGI - bin la IDQtgiai phap xua't hit%ntuang d5i sam Nguai
phat triSn ( developer) vie"t nhung chuang trlnh theo cac giao dit%nCGInay, khi do cac ling dl;lng Web se gQi chung thong qua mQt Web Server
Ky thu~t nay co mQt khuye"t diSm dang chu y: m6i yeu c~u CGI mai tC;lonen mQt tie"n trinh ( process) tren Server Ne"u nhiSu ~ser truy c~p lingdl;lng d6ng thai, se xua't hit%nnhiSu tie'n trlnh va chung se tieu thl;l tainguyen cua Web Server, dftn de"n hit%usua't cua Web Server suy giam didang kS ne'u khong mu5n noi se co luc cC;lnkit%t
Nhung nha cung ca'p Web Server da: tIm cach don gian hoa sl1 phattriSn ung dl;lng Web biing cach cung ca'p nhung "plug - ins" va cac hamAPls cho server cua rieng hQ Giai phap nay cling chi co y nghla tren mQt
IOC;liWeb Server nha't dinh Ne'u xet tren mQt moi truang rQng IOn vai
nhiSu IOC;liserver phong phu han thl hoan toan pha san DiSn hinh la congnght%Active Server Pages (ASP) cua Microsoft, co hit%uqua t5t trong vit%ctC;lonQi dung dQng tren Web nhung chi lam vit%cdUQc vai Microsoft IIS hayPersonal Web Server
Cling co nhung giai phap khac, nhung hoan toan khong d~ triSnkhai Vi dl;l nhu cong nght%Java Servlet sa dl;lng ngon ngu l~p trlnh Java.Cong nght%nay ra't hit%uqua, d~ dang cho nguai phat triSn khi vie't chuang
(nguQc IC;livai applet chi chC;lytren client) Nguai phat triSn co thS vie'tServlet la'y nhung HTTP request til' Web Browser, phat sinh sl1 phan h6i
XML trd IC;liBrowser Vai phuong phap nay, toan bQ trang van ban HTMLphai dUQc sOC;lntrong Java Servlet Ne"u co nhu c~u mu5n thay d6i giaodit%n,b5 Cl;lCtrang Web thl phai hit%uchinh va bien dich IC;liServlet Do do
co thS noi vit%cphat sinh trang Web dQng biing Java Servlet vftn can doi
Lu(in van tdt nghi~p_
Trang 12ChU(Jflg1Cong ngh~ JavaServer Pages Trang 3
• Tach bi~t nghi~p Vl;l,xu 19 cua ling dl;lng voi giao di~n cua trangWeb
• Qua trlnh pha t tri€n va thu nghi~m ling dl;lng c6 th€ du'Qc thl;l'chi~n nhanh ch6ng
• Ddn gian h6a vi~c phat tri€n ling dl;lng
Cang ngh~ JavaServer Pages (JSP) du'Qc thie't ke' d€ thoa man yeucgu tren Cang ngh~ nay la ke't qua cua sl;l'hQp tac rQng rai, quy rna giii'a
system va cang Cl;lphat tri€n, trong d6 Sun Microsystems d6ng vai tro quantrQng Gild phap nay chinh la mQt cach tie'p c~n moi d€ phat tri€n nhii'ngling dl;lng Web va con hlia hyn ra't nhi~u di~u trong tu'dng lai
1.1.1.1 Khai ni~m vi cong ngh~ JavaServerPages
trong mQt t~p tin HTML hay XML, sau d6 t~p tin nay se du'Qc chuy€nthanh Java Servlet d€ thl;l'Chi~n vi~c t~o trang Web dQng Java Servlets d~ttrQng tam tren chu'dng trlnh Java d€ t~o trang van ban HTML mong mu5n.Di~u naY' d~ gay te nh~t va bu6n chan VIkhi c6 ba't ky mQt sl;l'thay d6i nhonao tren trang van ban HTML phan h6i cling d~n de'n vi~c phai bien dich,ki€m tra unload servlet dang ch~y, reload servlet moi D6ng thai clingkhang th€ dung ba't ky mQt phgn m~m so~n thao HTML nao trong quatrlnh xay dl;l'ngling dl;lng khi su dl;lng JavaServlets
Y tu'dng cua cang ngh~ JSP da dao ngu'Qc tie'n trlnh thl;l'c hi~n cuaservlet, thay VIt~p trung van chu'dng trlnh Java r6i d~t HTML vao, gia daytrong tam l~i la HTML voi cac do~n chu'dng trlnh Java du'Qc them vao, giaday trQng tam l~i la HTML c6 th€ du'Qc phat tri€n bdi ngu'ai thiSt kS d6hQa, sau d6 ngu'ai phat tri€n chu'dng trlnh Java (Java Developer) se themnhung do~n chu'dng trlnh Java d€ biSn trang van ban HTML nay thanhtrang c6 khii nang thl;l'chi~n du'Qc nhii'ng nghi~p Vl;lmong mu5n Qua trlnhunload va reload servlet se du'Qc cac server hi€u JSP thl;l'chi~n mQt cach
Lug,n wIn t6t nghi~p_
Trang 13Chuang 1 Cang nghf JavaServer Pages Trang 4
tlf dOng, bai cac server nay co kha nang nh~n bi€t dUQc thay d6i a trang
JSP, tit do phat sinh yeu cgu bien dich trang JSP thanh servlet va yeu cgu
unload, reload
Web dOng thu hut slf chu y dang k~ clla cac nha phat tri~n ung dl;1ngWeb
No cung dip mOt cach thuc don gian, nhanh chong d~ tC;lonhung trang WebdOng
Cong ngh~ nay xac dinh cach thuc tuong tac giua server.va cac trangJSP, cling nhu d?c ta va cu phap clla trang nay Cong ngh~ JSP la mOtthanh phgn trong hQ Java, sa dl;1ngngon ngu Java nhu la ngon ngu script
dl;1ngWeb
1.1.2 Nhung tinh nang n6i b~t eua eong ngh~ JSP
1.1.2 1 Suc m{lnh cua Java Server-side
Java Ia mOt n~n tang t6t cho vi~c vi€t nhung ung dl;1ngclla bC;lndlfa
mC;lngnhi~u suc m(;lnh d~ giai quy€t nhung yeu cgu tit phia thin client ho?c
tit mOt noi nao do Cac ung dl;1ngserver clla bC;lnse co lQi til' nhung tinh
nang phat tri~n nhanh clla Java nhu an toan v~ ki~u, ti€t ki~m bO nhd vah6 trQ da lu6ng Them vao do, n~n Java con co tinh rna rOng a trong xinghi~p C6ng ngh~ JSP la thanh phgn then ch6t clla Java 2 EnterpriseEdition (J2EE) Sa dl;1ngcong ngh~ JSP, cac t6 chuc co th~ thuc d~y slf t6ntC;liclla n~n tang Java da: co va tC;lOra nhung ling dl;1ngxi nghi~p vdi quy
mo rOng han
1.1.2.2 D~dang va nhanh chong trong vifC philt triin, thl/c thi va
baotn
tri~n cho cac l~p trlnh vien Thay VI vi€t mOt chuang trlnh Java, cac l~ptrlnh vien chi cgn vi€t cac trang HTML va them vao do cac the gi6ng vdiXML (XML -like tags) va n€u cgn thi€t thl co th~ them ca cac scriptlet d~thAt ch?t mQi thu vdi nhau Bang vi~c h6 trQ slf phat tri~n dlfa tren caccomponent va thu vi~n cac the tily bi€n, cac trangJSP khong chi don gian
Luq.n van tat nghifp_
Trang 14Chuang 1Cong ngh~ JavaServer Pages Trang 5
trong vi~c t'.lO l~p rna con cung ca'p mQt n~n tang m'.lnh cho mQt lO'.lt caccong Cl;lt'.lOl~p trang
1.1.2.3 Tfjp trung vao tinh tai sit dlJ,ngcac compnent
H~u he't cac trang JSP d11atren tinh tai slt dl;lng, cac thanh ph~n da
phuc t'.lP hon theo yeu c~u cua cac ling dl;lng Nhung nha phat triSn co thSchi a se va trao d6i cac component th11chi~n nhung chlic nang chung ho~c
d11atren n~n tang cac component tang t6c toan bQ qua trlnh phat triSn vacho phep cac t6 chlic dfty m'.lnh va phat triSn cac h~ th6ng san co
1.1.2.4 Nl)i dung dl)ng
Slt dl;lng cong ngh~ JSP, cac nha phat triSn slt dl;lng nhung theHTML ho~c XML dS dinh d'.lng trang HQ cling slt dl;lng cac the JSP ho~cscriptlet dS sinh ra nQi dung dQng trong trang (nQi dung thay d6i theo yeu
c~u, ch~ng h'.ln yeu c~u thong tin v~ account hay yeu c~u v~ gia tri cua
mQt chai rUQu).Vi~c sinh ra nQi dung dUQc goi trong cac the va cacJavaBeans component va dUQCxie't ch~t voi nhau trong cac scriptlet, va tfft
ca d~u dUQcth11chi~n a phia Server
1.1.2 5 Tinh md rl)ng va slj phiJ bien
Cong ngh~ JSP dUQc phat triSn bai cQng d6ng nguai slt dl;lng Java
£)i~u nay bao dam ding cong ngh~ nay dUQc h6 trQ bai cac d'.li gia phftnm~m Slf ph6 bie'n da giup cho JSP dUQc h6 trQ rQng rai tren cac serverling dl;lng va Web Sun Microsystem cam ke't duy trl tinh rna rQng va gQncua JSP va ca s11phat triSn cua no sau nay
1.1.2 6 Dl)c lfjp vm cac the
JSP trang bi cho cac nguai l~p trlnh m'.lng cac thu vi~n the voi tinhnang tuy bie'n gi6ng nhu cac the cua XML Chinh VI v~y cac nha phat triSnthli 3 co thS t11t'.lOri~ng cho mlnh mQt bQ the dS phu hQp voi cong vi~ccua hQ Khong chI co v~y, cac the cua JSP con bao goi trong no nhi~u chlicnang khac dap ling yeu cftu t'.lOnQi dung dQng cho trang Web Cac the JSPchuftn co thS troy nh~p vao cac JavaBeans component, gQi cac ham, thie'tl~p thuQc Hnh, va do v~y tie't ki~m thai gian l~p trlnh va cling nhu lam
l/
Trang 15ChLt(Jng1Cong ngh? JavaServer Pages Trang 6
1.1.3 Cac rno hlnh ung d\lng cho cac trang JSP (Application Models for
JSP pages)
MQt trang JSP dUQc thlfC hi~n bdi mQt JSP engine (t(;lm dich: congCl;lJSP) dUQc dli d~t trong mQt Web Sever hay mQt ling dl;lng Server co
kha nang JSP JSP engine nh~n request til mQt client gdi Wi trang JSP va
tra cac response til trang JSP v~ cho client Cac trang JSP khi dUQc gQi,chungse dUQcbien dich thann cac Java Servlet
Lfrn dfru tien khi mQt trang JSP dUQcgQi, ne'u trang nay khong co santhl no se dUQCbien dich thanh mQt Java Servlet class va dUQc lu'u trong bQnho cua Server E>i~unay cho phep tra loi nhanh cac request khi trang JSPnay dUQcgQi d lfrn sau
1.1.3.1 Mohinh ung dl;lng ddn gian
B~ng mQt thao tac ddn gian, trlnh duy~t yeu cfru trlfc tie'p mQt trangJSP Trang nay se tlf dQng thlfC hi~n nQi dung dUQc yeu cfru (vi dl;l yeu cfruJDBC lfty thong tin til trlfc tie'p til mQt Database).Trang JSP co th€ gQiJDBC hay cac JavaBlend™ d€ tra ke't qua v~ trlnh duy~t
Response
Kie'n truc nay lam vi~c t6t cho nhi~u ling dl;lng, nhung l(;likhong th€ling dl;lng cho mQt s6 IOn cac Web-based client cung truy xuftt de'n tainguyen (resource) d xa, VI m6i mQt client se phai thie't l~p hay chia se mQtke't n6i Wi tai nguyen d€ thoa man yeu cfru.Vi dl;l, ne'u mQt trang JSP troyxuftt de'n mQt Database thl no se yeu cfru rftt nhi~u ke't n6i de'n databaserna di6u nay thl co th€ anh hudng de'n thong suftt hO(;ltdQng cua Database
1.1.3.2 Mohinh ung dl;lng vfJi Java Servlets
Trong mQt cftu hlnh hQp ly, Web - based client co th€ thlfC hi~n mQtrequest trlfc tie'p toi mQt Java Servlet rna Java Servlet nay se sinh ra nQidung dQng, dong goi cac ke't qua thanh mQt result bean va gQi mQt trang
~~~~f,'\<l~ ••••
trlnh duy~t
Lui;in win tot nghi?p_
Trang 16se giao tie'p voi back end resources thong qua mQt thanh phgn EJB.
~ Rinh 1.3:MfJ hinh ung dung JSP vm EJB
EJB component se quan ly vi~c truy xua"t Wi back end resources D6ivoi cac ling d\lng thu'dng m~i va cac ling d\lng khac, EJB cling quan ly cactransaction va va"nd6 bao m~t
1.2 CD pHAp JSP (JSP Syntax)
1.2.1 Co pha p cd ban ella JSP
1.2.1.1 Chen mf)t iSP template text
MQt trang JSP chlia dl!ng template text (t~m dich:van ban m~u ) vacac JSP element Ta"t ca cac JSP element d6u du'Qc thong dich bdi JRun
text
Trang 17ChLldng i Cong ngh~ JavaServer Pages Trang 8
m9t JSP element va do d6 n6 khong dUQcthong dich bai JRun Ba't cu text
Vi dl;l, trong trang sau, mQi thu trong d~u dUQc coi la template text
ngo~i tru do~n rna Java nam trong tag <% va %>
</body>
<lhtml>
1.2.1.2 Bijt tag bitt dilu va tag ktt thuc
phai nam trong cling m9t file B~n khong th€ d~t m9t tag b~t dgu a file nay
va l~i d~t tag k€t thlic a file khac
Vi dl;lm9t JSP scriptlet c6 cli phap <% scriptlet %> Ca 2 tag nay rna
1.2.1.3 Bijt cae gia trj thuQc tinh
B~n phai d~t cac gia tri thu9c Hnh cho ta't ca cac JSP element, sa
dl;lng cac da'u ngo~c don va kep Vi dl;l, page element trong vi dl;l sau sa
dl;lng thu9C Hnh d€ thi€t l~p vi~c dinh d~ng dil' li~u xua't cua m9t trang JSP:
N€u gia tri thu9c Hnh tl! ban than n6 chua da'u ngo~c don hay kep thlb~n phai d~t truoc da'u ngo~c d6 m9t ky tl! thoat (escape character) la ( \)
Ky tl! thoat nay se lam cho b9 phan tkh cli phap bo qua ky tl! k€ ti€p C6 2d~ng d€ thoat khoi da'u ngo~c nhu sau
• 'as\'
• "as \ "
1.2.1.4 Chen cae chu thich
B~n c6 th€ sa dl;lng 2 chli thkh trong trang JSP: chli thkh cho banthan trang JSP rna chli thkh nay khong dUQc tra gai v~ cho client; chlithkh dUQcghi tra v~ cho client nhu la m9t phgn dil' li~u xua't cua trang JSP
1.2.1.4.1 Ghi cae chu thich cho trang JSP
Lu(jn van t6t nghi~p_
Trang 18ChLtdng 1 Cong ngh~ JavaServer Pages Trang 9
2 <% /** Chu thfch Java **/ %>
Sa dlfng cli phap chli thich tren ( 2 ) tu'dng tt;l'voi JavaScript
1.2.1.4.2 Xuiit cae chu thich sang client
D~ sinh ra cac chli thich rna cac chli thich nay nhu' la dii' li~u tra v~cho client, b~n sa dlfng cli phap chu thich clla HTML Cli phap nay nhu'sau:
B~n co th~ t~o m(>tchu thich d(>ng bAng vi~c chen m(>tbi~u thli'c JSPvao trong do Vi dlf:
<% String pageName = "Example Comment Page" , %>
<! Chu thfch cho trang: <% =pageName %> >
1.2.1.5 Chi ra ml)t URL tlidng dOi trong ml)t trang JSP
Cac JSP elememt co th~ sa dlfng URL tu'dng do'i d~ tham chi€u toicac trang JSP, Java Servlet hay cac tht;l'cth~ khac No co th~ la tu'dng do'iho~c vdi li'ng dlfng chli'a dt;l'ngtham chi€u JSP ho~c vdi vi tri tham chi€uJSP tuy thu(>c vao vi~c b~n xac dinh URL trong tham chi€u do nhu' th€nao
Vi dlf:
Trong tru'ong h9P nay, JRun se tlm myErrorpge.jsp trong thu' mlfc cha
clla trang tham chi€u
Vdi ti~n to' "I "thi JRun se tlm myErrorpage.jsp tu'dng do'i vdi li'ngdlfng ehli'a tham chi€u JSP Ta't ca cac trang JSP d~u du'9C chli'a trongm(>tli'ng dlfng
1.2.2 Cac chi dfin (Directives)
Cac chi d~n thi€t l~p thu(>c Hnh cho trang JSP va cho Servlet k€tqua M(>t chi d~n du'9C sa dlfng nhi~u nha't la dung d~ thi€t l~p ngon ngii'
Trang 19
-ChLtdng 1 Cong ngh~ JavaServer Pages Trang 10
kich ban Tuy nhien, b~n co th~ sU'dl;1ngchi d~n sau d~ thie't l~p ngon nglikich ban la JavaScript
<% page language = ''javascript'' %>
MQt chi d~n la mQt phgn tU' dUQc xU' ly tn10c tien trong qua trinhphan tich cu phap clla mQt trang JSP B~n khong th~ sU' dl;1ng bi~u thuctrong cac chi d~n bdi VI bi~u thl1c dUQcHnh trong luc ch~y chuang trinh Do
do, vi<$csU'dl;1ngchi d~n trohg vi dl;1sau la sai VI bi~u thuc <% =
myVar-%> khong dUQcHnh toan luc dich chuang trinh
<% page import = "<% = myVar %>" %>
Them vao do, bdi VI cac chi d~n dUQc Hnh toan trong su6t qua trinhphan tich cu phap, nen chung khong sinh ra dli li<$uxua't Co nghia la, b~nkhong th~ sU'dl;1ngcac chi d~n d~ gdi thong tin cho client
CU pha p co ban clla cac nhu sau :
<% chi dan %>
JSP h6 trQ 3 lo~i chi d~n, dUQcli~t ke trong bang1.1 sau:
Chi d~n JSP
Page Xac dinh cac thuQc tinh <%@ page thuQc tinh ="gia tri"
cua trang
="tagPrefix" %>
~ Bang 1.1 1.2.2.l.Chi dan bien dich dan trang (The page directive)
Chi d~n page xac dinh mQt hay nhi€u thuQc Hnh cho trang JSP MQt
trang JSP co th~ chua nhi€u chi d~n page Tuy nhien tn)' thuQc Hnh import
ra thl cac thuQc Hnh khac chi co th~ dUQc tham chie'u chi mQt 19n Nghla la,ne'u b~n chi ra nhi€u chi d~n page voi nhi€u thuQc Hnh doi l~p nhau thlinstance dgu tien clla chi d~n page se dUQc cha'p nh~n va ba't cu 19n saunao thuQc Hnh nay dUQcgQi l~i thl no se bi bi) qua
B~n co th~ chi ra nhi€u chi d~n page chua thuQc Hnh import Ta't ca cac file dUQctham chie'u bdi thuQc tinh import thl se dUQcimport.
Trang 20Chuang 1 Cong ngh~ JavaServer Pages Trang 11
Trong do:
autoFlush I isThreadSafe I info I errorPage I isErrorpage I extends
Vi du:
trang N€u b(;ln bo qua thuQc tinh nay thl ngon ngfi' kich ban m?cdinh la Java
da'u phffy.Vi dlJ:
ra bdi trang JSP M?c dinh MIME type la text / html
(phien)
du<jc khdi t(;lOtoi session hi~n t(;li cho trang JSP
session va d6i tu<jng session khong co san
klch thuoc cho buffer la 16 kbBytes
xua't cua trang du<jc ghi trtfc tie"p toi client
tran buffer
Klch thuoc m?c dinh cua buffer la 8 KiloBytes
Luljn van tfft nghi~p_
Trang 21Chu(Jng 1 C6ng ngh~ JavaServer Pages Trang 12
".
bi xoa (gia tri la "true") khi buffer bi dgy hay mot exception duqcsinh ra (gia tri la "false") do tran buffer
Gia tri m~c dinh la "true" Chli y rang b~n khong th€ thie't l~p gia
tri la "false" cho autoFlush khi buffer bang "none".
tac bdi trang Co 2 gia tri la "true" va "false"
trang khac Co 2 gia tri la "true" va "false"
Gia tri la "true" chi ra d6i tuqng exception cua JSP dUQcdinh nghla.Gia tri la "false" chi ra d6i tUQng khong co
Gia tri m~c dinh la "true"
exception nao khong bi bc1tcling d~u dUQcgdi tai trang nay d€ xtr
ly 16i
Chi dfin include chen van ban van trong mot file JSP llic dich Cliphap cho chi dfin nay nhu sau
<% include file = "duiJng dan" %>
1.2.2.3 Chi dan taglib (The taglib directive)
Chi dfin taglib khai bao mot thu vi~n tag duqc include bdi trang JSP.Cac thu vi~n tag nay chua cac custom tag (tag thong dl;mg ) rna b~n co th€str d\lng trong trang JSP
Vi d\l sau chi ra mot thu vi~n tag co chua mot cool Tag Sau chi dfin
nay, b~n co th€ tham chie'u cac tag trong thu vi~n tag nay str d\lng ti~n to"
myTag.
<%@ taglib uri ="myApp/appTags" prefix ="myTags" % >
<myTags:coolTag>
</myTags:coolTag>
Cli phap cua taglib nhu sau:
<%@ taglib uri = "duiJng dan" prefix= "tagPrefix" %>
Luljn van t6t nghi~p_
Trang 22ChucJng 1 Cang ngh~ JavaServer Pages Trang 13
tuong do'i hay kh6a tIm kie'rn trong t~p tin web.xrnl
• prefix :Dinh nghla chu6i ti~n to' rna chu6i nay phan bi~t rn(H
custom tag trong thu vi~n tag Cac ti~n to' jsp, jspx, java, javax,
khong hQp l~
1.2.3 Cac Scripting element (Scripting Elements)
Cac scripting element xac dinh rna hi~n hanh trong rnQt trang JSP
Ma nay c6 th~ dUQcvie't b~ng Java hay JavaScript
Cli phap chinh xac cua rna trong rnQt scripting element thl dUQcdinhnghla bdi ngon ngl1 kich ban rna b'.ln sl1 dl;lng trong trang JSP
C6 3 IO'.liscripting element dUQcli~t ke trong bang 1.2
sen tlet expression (bi~u thue)
M\Jc wch Tl;lOcae dinh nghla eho trang nhl1
la cae bie'n Chua dOl;lnrna eho tran
£)inh nghla cae ca u lt$nh dl1~e tinh toan tren server trl10e khi gdi dfi' lit$u xua't eua tran Wi client
~ Bang 1.2 1.2.3.1 Cae khai bao (Declarations)
MQt khai bao cho phep b'.ln khai bao cac dinh nghla rnd rQng trongrnQt trang JSP MQt khai bao dUQc sl1 dl;lng mQt cach tieu bi~u la d~ dinhnghla cac bie'n hay cac phuong thuc Cac khai bao khong ghi dl1 li~u xufttcho client
Cli phap cho mot khai bao nhu sau:
Khai bao sau dinh nghla rnQt bie'n va ham Java:
<%1 private String foo=null;
public String getFoo(){return this.foo;}
%>
".
Lugn van tat nghi~p_
Trang 23ChUdng 1 Cong ngh~ JavaServer Pages Trang 14
-.
1.2.3.2 Cae Scriptlet
nAm trong form cua HTML text
1.2.3.3 Cae biiu thuc (Expressions)
Cac bi~u thuc la cac diu l~nh hay cac khai bao dUQc tinh toan trenServer truoc khi gdi ke't qua v~ client Ke't qua tra v~ cua mQt bi~u thuc cod(;lng dl1 li~u la chu6i
Cli phap cho mot bi€u thuc nhu sau:
1.2.4 Cac hanh vi (Actions)
JSP Cac hanh vi se dUQc li~t ke trong bang 1.3:
Action Elements
trong mot bean
LwJn van t6t nghi~p_
Trang 24Chuang 1Cong ngh~ JavaServer Pages Trang 15
-
dich se tnl quy€n di€u khitin v€ cho trang du'Qc gQi
cua trang du'Qc gQi se bi ke't tht1c bdi chinh cuoc gQi do.
b<;tngdi request tu mot trang JSP nay tdi mot trang JSP khac
browser
~ Bang 1.3 1.2.4.1 jsp:useBean
Hanh vi jsp: useBean dinh nghla m(>t JavaBean trong m(>t trang JSP.Khi da du'Qc dinh nghla r6i, b(;lnco th~ tham chie"u Bean trong file JSP
com.myco.myapp Mybean
<jsp:useBean id= "myBean" class =" com.myco.myapp.Mybean"l>
Cli phap cd ban clla jsp:useBean nhu'sau:
Thu(>c Hnh beanName la ten clla bean, co d(;lng "a.b.c", rna ten nay
co th~ ho~c la ten clla m(>t lOp ho~c la ten clla m(>t tai nguyen, co d(;lng
Trang 25Chtldng 1 Cong ngh~ JavaServer Pages Trang 16
-.
body
</jsp:useBean>
Than nay se du<jc g9i ne'u bean du<jc tC;lora Di~n hlnh la than se
chua ho~c cac scriptlet ho~c cac jsp:setProperty tag du<jc sa dl,lng d~ c~pnh~t rnQt bean vila du<jc tC;lorndi ; nhung nQi dung clla than khong bi gidihC;ln
<jsp:useBean> tag co nhung thuQc tinh sau:
- id: Chi ra ten du<jc sa dl,lng d~ xac dinh mQt bean trong scope vacling la d~ xac dinh ten bie'n kich ban cho bean
• page: Bean luon co trong trang hi~n hanh.
• request: Bean luon co trong d6i tu<jng request clla trang hi~n
hanh sa dl,lng phuong thuc getAttribute.
• session: Bean luon co tfong d6i tu<jng session clla trang hi~n
hanh sa dl,lng phuong thuc getValue.
• application: Bean luon co trong d6i tu<jng appliction clla trang
hi~n hanh sa dl,lng phuong thuc getAttibute.
dQng cua rnQt bean
thuc instantiate cua ldp java.beans.Bean.
ThuQc tinh nay cho phep dC;lngbie'n kich ban la khac bi~t vdidC;lngkhac Ne'u bC;lnbo qua tharn so' nay thl type se gi6ng vdi gia
tri clla thuQc tinh ldp
Vi dl,l sau thie't l~p rnQt thuQc Hnh sa dl,lng rnQt bi~u thuc
i+l%>"/>
LW7n van tot nghi~p_
Trang 26ChucJng 1 Cong ngh~ JavaServer Pages
cac d?ng dfi' li~u khac nhti:
Chu @nd6i ki@u chu6i tron
)
~ Bang 1.4
Lugn Wln tot nghi~p_
Trang 27Chuang 1 Cang nghf JavaServer Pages Trang 18
Vi dl) : <jsp :getProperty name ="user" property ="name" / >
Cli phap cua hanh vi hay nhu' sau:
sinh ra mQt exception ne'u bean khong du'Qc tIm tha'y
• property: La ten cua thuQc tinh, co gia tri rna b(;lnmu6n xua't ra 1.2.4.4 jsp :include
Chen cac tai nguyen dQng va tInh trong trang hi~n hanh
Vi dl).sau chen mQt trang HTML
Cli phap cua jsp :include nhu'sau:
ho~c
• page: Chi ra du'ong dftn cuafile du'Qc chen N€u du'ong dftn biit
d~u vdi "/" thl du'ong dftn do la tu'ang d6i d6i vdi ling dl).ng cuatrang JSP N€u du'ong dftn khong bftt d~u vdi "\" thl no la tuy~td6i d6i vdi trang JSP dang du'Qcdich.
DC;lngthli 2 cua jsp:include co them hanh vi jsp :param Hanh vi nay
cho phep bC;lnthem cac tham s6 cho HTTP request du'Qc nh~n bdi trang JSPdich
1.2.4.5 jsp :forward
Hanh vi jsp :forward gQi mQt trang hay mQt JavaServlet trong cling
mQt ling dl).ng nhu' la mQt trang hi~n hanh jsp forward se cha'm dlit slf
hOC;ltdQng cua trang JSP hi~n hanh
Trang 28Chuang 1 Cong ngh~ JavaServer Pages Trang 19
-.
Ne'u du li~u xuftt nam trong buffer, rna buffer bi xoa thl co nghla lanQi dung cling bi xoa, ne'u b~n gQi hanh vi jsp forward hay gtYil~i mQt request stYd\lng phl1dng thuc redirect cua d6i tl1Qngresponse.
Vi d\l sau gQi mQt trang JSP til mQt trang khac:
<% String whereTo ="/templates/ "+someValue;%>
Cd phap cua jsp :forward nhl1 sau:
ho~c
<jsp :param name ="paramName" value ="paramValue" I>
</jsp forward >
1.2.4.6.jsp :param
pairs) cho mQt HTTP request khi b~n gdi mQt request til mQt trang JSP naytoi mQt trang JSP khac B~n chI co th~ stYd\lng hanh vi nay ke't hQp voi
cac hanh vi nhl1jsp :include, jsp forward, jsp :plugin.
1.3 CAC DOl TU(1NG JSP 1.3.1 Cae dol tli(jng JSP
Trong phgn nay se rna tel cac d6i tl1Qng rna b~n co th~ truy xuftt tilmQt trang JSP B~n co th~ stYd\lng cac d6i tl1Qng thtfc hi~n cac tac v\l cdban trong mQt trang JSP, bao g6m:
• D6i tl1Qng request :HTTP request dl1Qc gdi til client toi trang JSP.
nam trong request header
JSP B~n co th~ stYd\lng d6i tl1Qngd~ tra du li~u v€ cho client, baog6m cac c~p name/value dl1Qcd~t trong response header
Trang 29Chuong 1 Cong ngh~ JavaServer Pages Trang 20
• Doi tu<;fngout: Dong du li~u xuit dU<;fCghi xuong client
Cac doi tU<;fngJSP hOi'lll toan dU<;fCthao tac nhu nhung doi tU<;fngtrong trong Java Servlet API JSP cung cip cho b~n illQtky thu~t truy xuitnhanh cac doi tU<;fngcua Java Servlet API
Trong bang 1.5 li~t ke cac doi tu<;fngJSP va dinh nghia d~ng doitu<;fngtuong ang trong Serv let API
D6i tu'qn JSP va d6i tu'qn tu'dn un ella Servlet
tUQng D<;tngd6i trong Java Servlet API D<;tidi~n cho C<iigl
-
D6iSPApplication
response session
ja vax.serv let Serv letContext
j avax serv let.http HttpSession
d6i
dUQc t<;to cho
~ Bang1.5
B~n co th€ sa dl;lng doi tu<;fngapplication d€ chi a se du li~u giua cacuser MQt ang dl;lng dl!a tren n~n tang JSP du<;fcdinh nghla nhu la tit cacac t~p tin .jsp trong thu illl;lC£10 va trong cac thu illl;lCcon cua no
Cll phap:
application Phuong thilc(bitn )
application
GetAttributeN arnesO
LWJ,nwin tot nghi~p_
Tnt v~ thuQc Hnh vdi ten Cl;l th€ Phuong thuc nay tnl v~ null ne'u rnQt thuQc Hnh co ten
khan t6n t<;ti Tra v~ ten cua rn6i thuQc tinh tron
Trang 30Churmg 1 C6ng ngh? JavaServer Pages Trang 21
application
null ne'u tham so na y khang t6n t<;li
engine
~ Bang 1.6
1.3.1.2 DOl tzt(lng config (The config Object)
chuySn thong tin dlu hlnh cho servlet khi servlet nay dUQckhoi t~o Thong
etServ letN ameO
thue eua dol ttfc/o conti
1.3.1.3 DOl tzt(lng exception (The exception Object)
DO'itUQng exception d~i di~n cho ta't ca cac 16i va cac exception
LutJ-n van ttft nghi?p_
Trang 31Chl1(Jng 1 Cong ngh~ JavaServer Pages Trang 22
exception
~ Bang 1.8
1.3.1.4 DOl tli(jng out (The out Object)
D6i tu<1ngout dinh nghia mot d6i tu<1ngdung d~ ghi xu6ng dong dil'li~u xua't cua trang JSP
1.3.1.5 Dol t1i(jngpage Context (The page Context Object)
D6i tu<1ngpageContext cung cffp mot co ch€ htu tril' thong tin ClJCbOxu6ng trang JSP M6i trang JSP d~u co d6i tu<1ng pageContext rieng rnad6i tu<1ng nay du<1cte;tOra khi trang bat d~u va bi pha huy khi trang k€tthlic Cac phuong thl1c cua d6i tl1<1ngpageContext cho phep be;tntroy xua'tthong tin v~ trang JSP va cho phep be;tnthtfc hi~n cac hanh vi
Lugn van tfft nghi~p_
Trang 32Chu(Jng 1 C6ng ngh~ JavaServer Pages Trang 23
tha'y.
page scope Tnl v~ null ne'u d6i tUQng khang dUQc tim tha'y.
-attribute)
);> Bang 1.10
1.3.1.6 DOl t1i(lng request
D6i tUQngrequest nh~n cac gia tri rna client gdi tdi Web server trongsu6t mQt HTTP request
eli phap:
request.Phu(Jng thlic(bie'n )
Bang 1.11 li~t ke cac phuong thuc thong dl;lllg cua d6i tUQng request
thue ella d6i tu'i n re uest
Tnt v~ GET, POST, hay PUT cho phuong thuc HTTP du'QCsa dl,ln d€ t~o ra re uest
Tnt v~ gia tri clla mot tham so' trong request Tni v~ null ne'u tham so' khan t6n t~i
Tni v~ ten clla m6i tham so' tron re uest Tni v~ ta't ca cac gia tri clla tham so' Cl,lth€
Trang 33ChU(Jflg 1 Cong ngh~ JavaServer Pages Trang 24
response Phu(Jflg thrlc(bie'n )
response
them vao cac gia tri header dff t6n tai. .contains Header (String name) Tra v€ "true" neu response header dUQc d?t ten
dff dUQc thiet l~p
thay the ~:datri hi~n hanh cua header
~ BangI.12
1.3.1.8 DOltllf/ng session (The session Object)
D6i tU(jng session htu tru thong tin cho ID9t user - session d~c bi~t.Cac bie'n dU(jc htu tru trong d6i tu(jng session se khong bi xoa khi nguoi sli'dl;lng chuy€n d6i giua cac trang trong ling dl;lng
Cli phap :
session Phu(Jflg thrlc(bie'n )
Bang 1.13 li~t ke cac phuong thlic thong dl;lng cua d6i tu(jng session
Tra v€ d6i tUQng voi ten C\l th€ Tra v€ null neu
Trang 34ChLtdng 1 Cong ngh~ JavaServer Pages Trang 25
etIdO
getLastAccessedTimeO
getMaxlnacti velntervalO
dU<;5C tinh b~n mili ia
dU<;5c ke't h<;5 voi session na Tnl v~ so thai gian Ion nha't,du<;5Ctinh b~ng
MQt trong nhil'ng bQ ph~n quan trQng nha't cua ung dl;lng thuong m~i
di~n ti't la HTML Form rna Cido nguoi si't dl;lng nh~p thong tin vao Thong
tin Ciday co th~ la ten va dia chi cua mQt khach hang vv
1.4.1 Gdi diili~u tit form nhti the' nao?
Thong tin rna nguoi si't dl;lng nh~p vao trong form dUQc lu'u trong d6itUQngrequest D6i tUQng nay se dUQc gCiitu client de'n JSP engine Di~u gl
se xay ra tie'p theo ? Hlnh 1.5 se minh hQa dii' li~u dUQc chuy~n tu clientde'n server nhu the' nao
Lugn win tot nghi~p_
Trang 35Churmg 1 Cong ngh? JavaServer Pages Trang 26
~ Hinh 1.5:Mo tildft lieu chuyin til client den Server
JSP engine gdi d6i tUQng request Wi bftt cu server-side component
chi dinh Component se xii'19 request, co th~ Ia Ifty dcr li~u tu mQt databaseho~c co th~ gdi tnt mQt d6i tUQng response v~ cho JSP engine JSP engine
se chuy~n d6i tUQngresponse Wi trang JSP, d do dcr li~u se dinh dC;lngtuytheo m~u HTML cua trang JSP engine va Web server sau do se gdi trangJSP da: dUQcthayd6i v~ cho client, d do nguoi sii' d\lng co th~ xem ke't quatrong Web browser Giao thuc dung d~ giao tie'p gicra client va server coth~ la HTTP hay mQt giao thuc nao khac
1.4.2 T~o mQt Form nhtl the' nao ?
Don gian la bC;lndinh nghla mQt HTML form trong t~p tin JSP ngu6n,sii' d\lng cac JSP tag d~ chuy~n dcr li~u gicra cac form va gicra cac d6i tUQngserver-side
MQt cach t6ng quat, bC;lnthuc hi~n cac bUDcsau:
bi B~t d~u vie't mQt t~p tin JSP n:gu6n, tC;lomQt HTML form va gancho m6i form element (ph~n tii' form) mQt cai ten
Lu()n van tot nghi?p_
Trang 36Ch['(dng ] Cong ngh~ JavaServer Pages Trang 27
b2 Vie't Bean trong mQt t?P tin co du6i java, dinh nghla cac thuQctinh, cac phuong thuc GET va POST sao cho phil hQp vdi ten cua formelement
b3 Trd v~ t?P tin JSP ngu6n, them tag <jsp :useBean> dti t'.lo haydinh vi mQt instance cua Bean
b4 Them tag <jsp:setProperty> dti thie't l?p cac thuQc tinh trongBean til HTML form
bS.Them tag <jsp:getProperty> dti H1Y dil' lit%util Bean
b6.Ne'u b'.ln c~n thlfc hit%nthem c6ng vit%cxU'ly dil' lit%ungudi sU'dl;lng (user data) thl hay sU'dl;lng d6i tUQngrequest til trong mQt scriptlet
Vi dl;lHello va User sau se lam r6 them cac budc tren
1.4.2.1 Ung dlJ,ng Hello ddn gian :
1.4.2.1.1 NgliiJi sit dlJ,ng nhljp vao mf)t ten (hinh 1.6) va Duke noi
Trang 37ChucJng 1 Cong ngh~ JavaServer Pages
<td width ="150"> <ltd>
<td align= "right" width= "250">
<img src= "duke waving.gij">
<ltd>
<Itr>
<Itable>
<br>
1.4.2.1.2.-2 The Main JSP File (hellouser jspl
Lu(jn wIn tot nghi~p_
Trang 28
My name is Duke What's yours?
Trang 38ChUdng 1 Cong nghf JavaServer Pages
<%@ page import= "hello.NameHandler" %>
class= "hello.NameHandler" I>
<jsp:setProperty name= "mybean" property="*" I>
<html>
Trang 29
~ HZllh 1.9
<head> <title>Hello, User<ltitle></head>
<body bgcolor= "#FFFFFF" background= "background.gif">
<%@ include file ="dukebanner.html" %>
<table border= "0" width= "700">
<form method= "get">
<input type="text" name= "username" size= "25">
<br>
<input type="submit" value= "Submit">
<input type="reset" value= "Reset">
Trang 39Chu(Jng ] Cang ngh~ JavaServer Pages
<lhtml>
1.4.2.1.2.3 The Respollse File (respollsejsp)
<table border= "0" width='700">
private String username;
Trang 40Chu(Jng 1 Cong ngh~ JavaServer Pages Trang 31
1.4.3 Form Element
Html : < form action ="url" > <!form>
Target, Onsubmit, Onreset, Accept, va Accept-Charset.
1.4.3.1.Actioll
Tl].uQctinh Action chi ra URL clla servlet hay IIlQt chuong trlnh CGl xU'
ly FORM data (dii' li<%utrong FORM) hay mQt dia chi email rna d do FORMdata dUQcgdi di
1.4.3.2 Method
ThuQc tlnh Method chi ra dii' li<%use dUQc truy8n Wi HTTP server nhuthe nao Khi phuong thuc GET dUQcsU'd\lng, dii' li<%udUQc xuftt toi diSm cuO'iclla URL dUQc chi dinh sau mQt dftu chftm hoi Phuong thuc GET la phuongthuc m~c dinh va dUQc sU' dl;lng khi mQt bowser yeu cgu mQt URL Khiphuong thuc POST dUQcsU'dl;lng, dii' li<%udUQcgdi tren mQt day rieng bi<%t
fch lQi clla vi<%csU'dl;lng phuong thuc GET la: phuong thuc don gian; vavoi servlet rna sU'dl;lng GET, nguoi sU'd\lng co thS truy xuftt nhii'ng servlet do
dS kiSm tra va debug (go 16i )ma khong cgn phai t'.lOmQt form, rna don gianchi la nh~p vao URL voi dii' li<%udung da dUQc gdi M~t khac, do kich thuocclla URL bi giOi h'.ln tren mQt vai browser, nen GET yeu cgu sO'1uQng dii' li<%ugdi quaphai gioi h'.ln, trong khi do thl POST thl khong MQt IQi ich cua GET
la hgu he"t cac browser d8u hiSn thi URL trong mQt truong dia chi d dinh cuabrowser
1.4.3.3 Ellctype
ThuQc tlnh nay chi ra cach dii' li<%udUQc rna hoa truoc khi dUQc truy8n
di Trong do:
+ Cac ky tv d~c bi<%tdUQcrna hoa duoi d'.lng: %xx (xx: la cac sO'hexatuong ung voi ky tv trong ba ng rna ASCII)
tich bdi dftu (&)
LwJ,n van tot nghi~p_