-
-
-
-~
-------....,.-------------~----~
....••.
BQ GIAO Dl)C VA DAO T~O
TRU(1NG D~I HQC DAN L~P NGO~I NGU -TIN HQC
,
,,'
~
,
THANH PHO HO CHI MINH
03Wro
KHOA CONG NGHt THONG TIN
~
"
K
KHOA LUAN
TOT
•
NGHIEP
•
A
DE TAl:
NGHIEN CUU vA UNG DUNG
CONG NGHE.
.
JSP TRONG xA Y DUNG
MOT
.
. HE. THONG
"rHONG TIN QUAN LY NHAN LljC CHO
MOT
. TRUONG DAI
.. HOC
GVHD
SVTH
Lop
Nien khoa
:
:
:
:
ThS DO HOANG CIJ(1NG
LE MINH LU(1NG
MV9701
1997 - 2001
THANH PHQ HO CHi MINH - 7/2001
-----.----------------------------.4
MlfC l~lC
MlJC LlJC
CHU<1NG 1: CONG NGHt JAVASERVER PAGES (JSP) --------------
•
1.1 T6ng quan
1.1.1
1.1.1.1
1.1.2
1.1.2.1
1.1.2.2
1.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
1
v~ cong ngh~ JSP ------------------------------------------------2
Cong ngh~ JSP ---------------------------------------------------3
Khal lllym ve cong ng h"y JSP ----------------------------------3
Nhii'ng tinh nang n6i b~t cua cong ngh~ JSP ----------------- 4
Suc m~nh cua JavaServer side---------------------------------4
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
"o.",
;::
'"
1.2 Cli pha p JSP -------------------------------------------------------------------1.2.1
Cli pha p cd ban cua JSP ----------------------------------------1.2.1.1
Chen mQt JSP template text ------------------------------------1.2.1.2
D~ t tag bfit o~u va tag ke't thlic --------------------------------1.2.1.3
D~t cac gia tri thuQc tinh------------------------.----------------1.2.1.4
Chen cac chli thich -----------------------------------------------1.2.1.5
ChI ra mQt URL tu'dng o6i trong trang JSP-------------------1.2.2
Cac chI dftn--------------------------------------------------------1.2.2.1
ChI dftn bien dich trang -----------------------------------------1.2.2.2
ChI dftn nhling rna ngu6n ---------------------------------------1.2.2.3
ChI dftn taglib -----------------------------------------------------1.2.3
Cac Scripting element -------------------------------------------1.2.3.1
Ca c khai ba 0 ------------------------------------------------------1.2.3.2
Ca c Scriplet -------------------------------------------------------1.2.3.3
Cac bi~u thuc ---.:-------------------------------------------------1.2.4
Cac hanh vi --------------------------------------------------------
8
8
8
8
8
9
9
10
11
13
13
13
14
14
15
15
•...
'
'1
jsp: usebean -------------------------------------------------------jsp:setProperty ----------------------------------------------------jsp :getProperty ---------------------------------------------------jsp :include --------------------------------------------------------jsp :forward---------------------------------------------------------
16
17
18
19
19
1.3 Cae d6i tuqng JSP------------------------------------------------------------1.3.1
Cae d6i tuqng JSP------------------------------------------------1.3.2
E>6ituqng application -------------------------------------------1.3.3
E>6ituqng config -------------------------------------------------1.3 A
E>6ituqng exception ---------------------------------------------1.3.5
E>6ituqng out -----------------------------------------------------1.3.6
E>6ituqng pageContext -----------------------------------------1.3.7
E>6ituqng request ------------------------------------------------1.3.8
E>6ituqng response ----------------------------------------------1.3.9
E>6ituqng session -------------------------------------------------
20
21
21
22
22
23
23
24
25
104 JSP voi HTML Forms--------------------------------------------------------104.1
Gdi du li~u ttl form nhu the"nflO?------------------------------104.2
T~o mQt Form nhu the"nflO ? -----------------------------------104.3
Form Element-----------------------------------------------------10404
Password Fields --------------------------------------------------104.5
Text Controls -----------------------------------------------------104.6
Push Buttons ------------------------------------------------------104.7
Check Boxes va Radio Buttons --------------------------------104.8
Combo Boxes va List Boxes -----------------------------------104.9
Hidden Fields ------------------------------------------------------
26
27
27
32
33
33
34
35
36
36
1.204.1
1.204.2
1.204.3
1.20404
1.204.5
26
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
1.5.2.2
1.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-----------------------------Ghi da li~u til trang JSP xu6ng CSDL ------------------------DQc da li~u til CSDL len trang JSP ---------------------------D6 da li~u vao Combo box trong trang JSP -----------------Grid ---------------------------------------------------------------Update va Delete da li~u trong CSDL til trang JSP -------Store Procedure --------------------------------------------------GQi store procedure trong ling dl;lng JSP ----------------------
1.6 Ke't 1u~n------------------------------------------------------------------------CHU<1NG 2 : CONG NGHt
ENTERPRISE
42
45
47
50
51
53
54
58
59
JAVA BEANS (EJB) ----- 60
2.1 EnterPrise JavaBeans (EJB) ------------------------------------------------2.2 M6 hlnh thanh ph~n----------------------------------------------------------2.3 Enterprise Bean Component ------------------------------------------------
61
61
62
2.4 Lop va giao di~n -------------------------------------------------------------2.4.1
Lop va giao di~n -------------------------------------------------2.4.2
Giao di~n Home--------------------------------------------------2.4.3
Lop Bean ----------------------------------------------------------2.4.4
Primary key -------------------------------------------------------2.4.5
Session Bean------------------------------------------------------2.5 Deployment Descriptor va t~p tin JAR -----------------------------------2.6 XML Deployment Descriptor ----------------------------------------------2.7 Kie'n truc Enterprise JavaBeans --------------------------------------------
63
64
65
66
67
68
68
72
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
h" tnen
.,:1
82
2 . 10 V.altro cua ngu'ol pat
------------------------------------------------,?
,.
CHudNG 3 : Moi tnt
(J2EE) --------------------------------------------------------------------------------
83
3. 1 J2EE la gi ?--------------------------------------------------------------------3.2 Uu di€m clla nhi1ng Middle-Tier Servers ---------------------------------
84
85
3.3 Kie'n truc
3.3.1
3.3.2.
3.3.2.1
3.3.2.2
3.3.2.3
3.3.2.4
3.3.2.5
3.3.3
clla J2EE ----------------------------------------------------------J2EE Server -------------------------------------------------------EJB Container ----------------------------------------------------Transaction Management ---------------------------------------Security ------------------------------------------------------------Remote Client Connectivity ------------------------------------Life Cycle Management ----------------------------------------Database Connection Pooling ----------------------------------Web container -----------------------------------------------------
86
87
87
87
87
88
88
88
88
3.4 Enterprise
3.4.1
3.4.2
3.4.3
3.4.4
Beans -------------------------------------------------------------Session Beans ----------------------------------------------------Entity beans -------------------------------------------------------Nhi1ng gioi hC;lntn~n l~p trinh Enterprise Beans ------------Truy c~p cd sd di1li<%u--------------------------------------------
89
89
89
91
91
3.5
U ng dl;lng J2EE
3.5.1
3.5.2
---------------------------------------------------------------NQi dung clla mQt ling dl;lng J2EE-----------------------------Cac giai dOC;ln
phat tri€n clla ling dl;lng J2EE-----------------
92
92
94
3.5.2.1
3.5.2.2
3.5.2.3
3.5.2.4
Enterprise Bean Creation ---------------------------------------Web Component Creation --------------------------------------J2EE Application Assemply ------------------------------------J2EE Application Deployment ----------------------------------
95
96
96
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
---------------------------------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 ------------------------------------------------------------------------102
3.7.1
Authen tica tion ---------------- --------------------------- ----- ----- 104
J2EE Users, Realms va Groups --------------------------------3.7.1.1
104
3.7.L2
Clien t Au thentica ti 0 n --------------- ---- -------------------- ---- -- 105
3.7.1.3
Qmln ly J2EE users va groups ---------------------------------106
Auth 0 riza ti 0 n ------------------------------------------------------ 106
3.7.2
3.7.2.1
Khai bao Roles ---------------------------------------------------107
.
b"
P
..
Kh al ao ermlSSlon---------------------------------------------3.7.2.2
107
3.7.2.3
Anh X'.l Roles d€n J2EE Users va J2EE Groups ------------- 107
'" d~e k-y t h uat------------------------------------------------------".
3 .8 M"ot
. so'" van
3.8.1
Cac h~ di~u hanh dUQch6 trQ ---------------------------------3.8.2
Cd sd dli li~u va JDBC™ Drivers dUQch6 trQ --------------~ d'1 k'em can
~ p h?'
,
al co---------------------------------3 .8 .3
Ph~an mem
3.8.4
Gidi thi~u cac cong Cl;lcua J2EE SDK -----------------------3.8.5
Qua trlnh tri€n khai ling dl;lng-----------------------------------
108
108
108
108
108
114
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-------------------------
115
115
121
CHudNG
4: UNG DlJNG MINH HQA----------------------------------
133
4.1 Khao sat hien trang ----------------------------------------------------------4.1.1
Ml;lCdich ------------------------------------------------------------
134
134
-------------------------------4.1.2
4.1.3
4.2
Mo ta cae cong vi~c ---------------------------------------------135
Cae quy uoc v8 thong tin lu'u tru dil' li~u trong h~ th6ng quan ly
truong dai hoc ----------------------------------------------------135
Phan tich -----------------------------------------------------------------------4.2.1
So d6 chile nang (FHD) -----------------------------------------4.2.2
So d6 thl!c th~ (ERD)---------------------------------------------
136
137
145
4.3 Thie't ke' ------------------------------------------------------------------------4.3.1
Mo hlnh quan h~ dil' li~u mile v~t ly --------------------------4.3.2
Giao di~n chuang trlnh -------------------------------------------
146
146
147
4.4 Ke't lu~n -------------------------------------------------------------------------
155
,~
?
TAl LI~U THAM KHAO----------------------------------------------------------
156
Lui
ma ddu
LOi rnd d~u
.•..
Ngay nay gidi l?p trlnh m(;lng noi nhi~u v~ JavaServer Pages (JSP).
JavaServer Pages la cong ngh<%dtfa tren n~n Java dti t(;lOra nhung trang
Web vdi nQi dung dQng va ch(;ly duqc tren nhi~u h<%di~u hanh, cling nhu
nhi~u Web Server khac nhau.
Hi<%nnay a nudc ta, va'n d~ ap dl;lng tin hQc dti xli' ly thong tin trong
cong tac quan ly dff tra thanh nhu c~u buc thi€t, cac doanh nghi<%pcling nhu
cac truang £>(;lihQc dff tung budc Tin hQc hoa thong tin trong vi<%cquan ly
nhan ltfc clla mlnh.
Do do, trong khoa lu?n t6t nghi<%pnay, JSP duqc ung dl;lng dti xay
d~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 sinh
vien, 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 thai
ditim dti dam bao cho qua trlnh hO(;ltdQng giang d(;ly, dao t(;lOcua truang
duqc 6n dinh, trq giup cho nguai quan ly co thti xay dtfng nhung k€ hO(;lch
phat tritin, dao t(;lO,rna rQng clla truang. Ngoai ra, con co chuc nang tra cuu
nhanh 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 nguai
qmln ly th6ng ke, bao cao v~ so"luqng nhan vien, sinh vien, hQc vien cao
hQc & nghien cuu sinh, ...
Bao cao t6t nghi<%pduqc chia lam 4 chudng :
• CHUdNG 1: CONG NGHe JAVASERVER PAGES (JSP)
• CHUdNG 2: CONG NGHe ENTERPRISE JA VABEANS
(EJB)
• CHUdNG 3: Moi truang JAVA ™ 2 SDK, ENTERPRISE
EDITION
• CHUdNG 4 : UNG D1JNG MINH HOA
Do kinh nghi<%mcon h(;ln ch€ nen chudng trlnh va cu6n bao cao nay
khong tranh khoi nhi~u sai sot. Em ra't mong co duqc nhung y ki€n dong
gop quy bau clla quy Th~y Co va cac b(;ln.
LiJi
mo dc1u
Va cu6i cling, tit day long mInh, em xin cam on thffy B6 Hoang
Cltong, nguoi da huang dfin, giilp do em rftt t~n tlnh d~ em co th~ hoan
thanh dU9C cu6n khoa lu~n t6t nghi<%pnay. Em cling xin gdi den gia dinh
thffy Wi chilc suc khoe va Wi cam on chan thanh nhftt.
Ch1L(Jf1g1 C6ng ngh~ JavaServer
CHUONG 1
CONG NGHt JAVASERVER
."
t"
1.1.
1.2.
1.3.
1.4.
1.5.
1.6.
Trang 1
Pages
PAGES (JSP)
T6ng quan v~ cong ngh~ JSP
Cn pha p JSP
Tham chie'u dol biqng trong trang JSP
JSP v6'i HTML Forms
JSP v6'i Cd sd dilli~u
Ke't lu~n
ChLtdng 1 C6ng ngh~ JavaServer Pages
,:?
Trang 2
~
A
"
1.1. TONG QUAN VE CONG NGm: JSP
1.1.1.
Cong ngh~ JavaServer Pages
Sl1 phat triSn ling dl;lng Web phuc tC;lPdoi hoi phili co nhung thay
d6i, 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%nCGI
nay, 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;lo
nen mQt tie"n trinh ( process) tren Server. Ne"u nhiSu ~ser truy c~p ling
dl;lng d6ng thai, se xua't hit%nnhiSu tie'n trlnh va chung se tieu thl;l tai
nguyen cua Web Server, dftn de"n hit%usua't cua Web Server suy giam di
dang 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 phat
triSn ung dl;lng Web biing cach cung ca'p nhung "plug - ins" va cac ham
APls 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 cong
nght%Active Server Pages (ASP) cua Microsoft, co hit%uqua t5t trong vit%c
tC;lonQi dung dQng tren Web nhung chi lam vit%cdUQc vai Microsoft IIS hay
Personal Web Server.
Cling co nhung giai phap khac, nhung hoan toan khong d~ triSn
khai. 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
trlnh server - based cho nhung ling dl;lng tuang tac (interactive
applications). Java Servlet la mQt chuang trinh Java chC;lytren server
(nguQc IC;livai applet chi chC;lytren client). Nguai phat triSn co thS vie't
Servlet la'y nhung HTTP request til' Web Browser, phat sinh sl1 phan h6i
dQng (dynamic response) va gdi dap ling chua trang van ban HTML hay
XML trd IC;liBrowser. Vai phuong phap nay, toan bQ trang van ban HTML
phai dUQc sOC;lntrong Java Servlet. Ne"u co nhu c~u mu5n thay d6i giao
dit%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_
ChU(Jflg 1 Cong ngh~ JavaServer Pages
Trang 3
hoi mQt ky nang phat tri€n ling dl;lng thanh th~o, chuyen nghi~p cua ngu'ai
l~p trlOO.
Ngu'ai ta mu5n ding giai phap cho vi~c t~o trang Web dQng phai la
mQt giai phap mang Hnh cang nghi~p cao, d~ dang ph6 bie'n voi nhii'ng d~c
di€m sau:
• C6 kha nang hQat dQng tren ba't ky Web Server nao
• Tach bi~t nghi~p Vl;l,xu 19 cua ling dl;lng voi giao di~n cua trang
Web
• Qua trlnh pha t tri€n va thu nghi~m ling dl;lng c6 th€ du'Qc thl;l'c
hi~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 yeu
cgu tren. Cang ngh~ nay la ke't qua cua sl;l'hQp tac rQng rai, quy rna giii'a
nhii'ng nha cung ca'p Web Servers, Application servers, transactional
system va cang Cl;lphat tri€n, trong d6 Sun Microsystems d6ng vai tro quan
trQng. Gild phap nay chinh la mQt cach tie'p c~n moi d€ phat tri€n nhii'ng
ling 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
Y
f
tu'dng cd ban cua cang ngh~ JSP la du'a chu'dng trlnh Java van
trong mQt t~p tin HTML hay XML, sau d6 t~p tin nay se du'Qc chuy€n
thanh Java Servlet d€ thl;l'Chi~n vi~c t~o trang Web dQng. Java Servlets d~t
trQng 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 nho
nao 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 cling
khang th€ dung ba't ky mQt phgn m~m so~n thao HTML nao trong qua
trlnh 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 cua
servlet, thay VIt~p trung van chu'dng trlnh Java r6i d~t HTML vao, gia day
trong tam l~i la HTML voi cac do~n chu'dng trlnh Java du'Qc them vao, gia
day trQng tam l~i la HTML c6 th€ du'Qc phat tri€n bdi ngu'ai thiSt kS d6
hQa, sau d6 ngu'ai phat tri€n chu'dng trlnh Java (Java Developer) se them
nhung do~n chu'dng trlnh Java d€ biSn trang van ban HTML nay thanh
trang c6 khii nang thl;l'chi~n du'Qc nhii'ng nghi~p Vl;lmong mu5n. Qua trlnh
unload va reload servlet se du'Qc cac server hi€u JSP thl;l'chi~n mQt cach
Lug,n wIn t6t nghi~p_
Chuang 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.
Cong ngh~ JavaServer Pages hi~n dang la mOt phuong phap tC;lo
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 Web
dOng.
Cong ngh~ nay xac dinh cach thuc tuong tac giua server.va cac trang
JSP, cling nhu d?c ta va cu phap clla trang nay. Cong ngh~ JSP la mOt
thanh phgn trong hQ Java, sa dl;1ngngon ngu Java nhu la ngon ngu script.
Hi~n nay, JSP cilng vdi cac thanh phgn JavaBeans va Enterprise
JavaBeans dang tC;lonen suc mC;lnhcho hQ Java trong vi~c xay dlfng ung
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
tren n~n Web a may server. JavaServer Pages h6 trQ nhung nha l~p trlnh
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 va
h6 trQ da lu6ng. Them vao do, n~n Java con co tinh rna rOng a trong xi
nghi~p. C6ng ngh~ JSP la thanh phgn then ch6t clla Java 2 Enterprise
Edition (J2EE). Sa dl;1ngcong ngh~ JSP, cac t6 chuc co th~ thuc d~y slf t6n
tC;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
JavaSever Pages don gian hoa va nhanh chong trong qua trlnh phat
tri~n cho cac l~p trlnh vien. Thay VI vi€t mOt chuang trlnh Java, cac l~p
trlnh vien chi cgn vi€t cac trang HTML va them vao do cac the gi6ng vdi
XML (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 cac
component va thu vi~n cac the tily bi€n, cac trangJSP khong chi don gian
Luq.n van tat nghifp_
Chuang 1 Cong 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 cac
cong 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
n~n (JavaBeans hay Enterprise JavaBeans ) dS th11chi~n nhung cong vi~c
phuc t'.lP hon theo yeu c~u cua cac ling dl;lng. Nhung nha phat triSn co thS
chi a se va trao d6i cac component th11chi~n nhung chlic nang chung ho~c
dua chung vao slt dl;lng trong cac cQng d6ng nguai dung. Cach tie'p c~n
d11atren n~n tang cac component tang t6c toan bQ qua trlnh phat triSn va
cho 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 the
HTML ho~c XML dS dinh d'.lng trang. HQ cling slt dl;lng cac the JSP ho~c
scriptlet 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 cac
JavaBeans 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 phftn
m~m. Slf ph6 bie'n da giup cho JSP dUQc h6 trQ rQng rai tren cac server
ling dl;lng va Web. Sun Microsystem cam ke't duy trl tinh rna rQng va gQn
cua 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 tinh
nang tuy bie'n gi6ng nhu cac the cua XML. Chinh VI v~y cac nha phat triSn
thli 3 co thS t11t'.lOri~ng cho mlnh mQt bQ the dS phu hQp voi cong vi~c
cua hQ. Khong chI co v~y, cac the cua JSP con bao goi trong no nhi~u chlic
nang khac dap ling yeu cftu t'.lOnQi dung dQng cho trang Web. Cac the JSP
chuftn co thS troy nh~p vao cac JavaBeans component, gQi cac ham, thie't
l~p thuQc Hnh, .... va do v~y tie't ki~m thai gian l~p trlnh va cling nhu lam
cho cong vi~c nhy nhang hon.
,,--_./
l/
Luq,n wIn
tot nghi~p_
ChLt(Jng 1 Cong 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: cong
Cl;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 san
thl no se dUQCbien dich thanh mQt Java Servlet class va dUQc lu'u trong bQ
nho cua Server. E>i~unay cho phep tra loi nhanh cac request khi trang JSP
nay dUQcgQi d lfrn sau.
1.1.3.1 Mo hinh ung dl;lng ddn gian
B~ng mQt thao tac ddn gian, trlnh duy~t yeu cfru trlfc tie'p mQt trang
JSP. Trang nay se tlf dQng thlfC hi~n nQi dung dUQc yeu cfru (vi dl;l yeu cfru
JDBC lfty thong tin til trlfc tie'p til mQt Database).Trang JSP co th€ gQi
JDBC hay cac JavaBlend™ d€ tra ke't qua v~ trlnh duy~t.
Java invooaIlon
method (JOBC)
HTTPlHiMU
XMl
II
If
~~t~,
~ Rinh 1.1:Mo hinh ung dung ddn gian
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 tai
nguyen (resource) d xa, VI m6i mQt client se phai thie't l~p hay chia se mQt
ke't n6i Wi tai nguyen d€ thoa man yeu cfru.Vi dl;l, ne'u mQt trang JSP troy
xuftt de'n mQt Database thl no se yeu cfru rftt nhi~u ke't n6i de'n database
rna di6u nay thl co th€ anh hudng de'n thong suftt hO(;ltdQng cua Database.
1.1.3.2 Mo hinh ung dl;lng vfJi Java Servlets
Trong mQt cftu hlnh hQp ly, Web - based client co th€ thlfC hi~n mQt
request trlfc tie'p toi mQt Java Servlet rna Java Servlet nay se sinh ra nQi
dung dQng, dong goi cac ke't qua thanh mQt result bean va gQi mQt trang
JSP. Trang J
- tm
uftt nOOdoog QQn
. e't qua v6
trlnh duy~t.
~~~~f,'\
..
~
Response
Lui;in win
tot nghi?p_
••••
Chl£Clng 1 C6ng ngh~ JavaServer
Pages
Trang 7
~ Ri'lh 1.2: MfJ hi'lh ung dung vui Java Servlet
Phu'dng phap giai quye't nay t~o them cac component tai sa d\lng.
Cac component nay co th~ du'Qcchia se bdi cac ling d\lng.
1.1.3.3. MfJ hi'lh ung dl;lng vm cfJng nghf Enterprise JavaBean
(EiB)
Trang JSP cling co th~ ho~t dQng nhu'la nhu' mQt lOp trung gian trong
mQt kie'n truc Enterpise JavaBean (EJB). Trong tru'ong hQp nay, trang JSP
se 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. D6i
voi cac ling d\lng thu'dng m~i va cac ling d\lng khac, EJB cling quan ly cac
transaction 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 ) va
cac JSP element. Ta"t ca cac JSP element d6u du'Qc thong dich bdi JRun.
Ke't qua nao til cac JSP element se du'Qc tra v6 client cling voi HTML
text.
ChLldng i Cong ngh~ JavaServer Pages
Trang 8
Trong m9t trang JSP, template text la ba't cu text nao nam ngoai
m9t JSP element va do d6 n6 khong dUQcthong dich bai JRun. Ba't cu text
HTML nao trong trang JSP d~u dUQccoi la template 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 %>
<html>
<head>
<title> Greeting </title>
</head>
<body>
<%for(int i=O;i < 5; i++ )
out.println(" <hi> Hello World </hi>"); %>
</body>
<lhtml>
1.2.1.2. Bijt tag bitt dilu va tag ktt thuc
Cac JSP element d~u c6 tag b~t dgu va tag k€t thlic. Hai tag nay
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
«%) va d6ng (%» phai nam tren cling m9t file.
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
sa
dl;lng cac da'u ngo~c don va kep. Vi dl;l, page element trong vi dl;l sau
dl;lng thu9C Hnh d€ thi€t l~p vi~c dinh d~ng dil' li~u xua't cua m9t trang JSP:
< % page contentType = "text/plain" % >
N€u gia tri thu9c Hnh tl! ban than n6 chua da'u ngo~c don hay kep thl
b~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 2
d~ng d€ thoat khoi da'u ngo~c nhu sau.
• 'as\'
• "as \ "
1.2.1.4. Chen cae chu thich
sa
B~n c6 th€
dl;lng 2 chli thkh trong trang JSP: chli thkh cho ban
than trang JSP rna chli thkh nay khong dUQc tra gai v~ cho client; chli
thkh 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_
l
ChLtdng 1 Cong ngh~ JavaServer Pages
Trang 9
M(>t chli thich JSP du'9C sa dlfng d~ them thong tin cho trang JSP.
Chli thich nay khong phai la dii' li~u xua't cho client.
M(>t chli thich JSP co cli phap nhu' sau:
1. <%-- chu6i chu thfch ... --%>
Ngoai cli phap tren b~n cling co th~ sa dlfng cli phap chli thich trang
clla cac ngon ngii' kich ban khac, ch~ng h~n nhu' b~n sa dlfng Java nhu'la
m(>tngon ngii' kich ban cho trang JSP.
2. <% /** Chu thfch Java **/ %>
dlfng cli phap chli thich tren ( 2 ) tu'dng tt;l'voi JavaScript
Sa
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:
<!- chu thfch -- >
B~n co th~ t~o m(>tchu thich d(>ng bAng vi~c chen m(>tbi~u thli'c JSP
vao trong do. Vi dlf:
<% String pageName = "Example Comment Page" ,. %>