You are on page 1of 118

COMPTKR LKARNNG CKNTKRWWW.HKHANG.

COM

Mon hoc: Juvu Server Puges

Bu 1

Nbung oan Jc cbinb sc Juoc Jc cap trong kboa boc.
9 Cai Jat JPUN.
o Cai Jat JDK1.J.
o Cai Jat JPUN.
o Cau bnb ung Jung J8P
9 Gioi tbicu J8P.
o 8cript.
o Kbai bao cbl muc.
1. CA OAT JRN
1.1.
1.2.
Cu dut JOK
o cau hnh JR!N 4.0 fron WIndovs, fruoc fIon ban caI daf bo JK1.3 hay JK
1.4 Ion dIa cung C hay , sau khI caI daf fhanh cong ban non boof may IaI, frong o dIa so
xuaf hIon fhu muc JK1.3 voI cac fhu vIon cua chung.
Cu dut JRN
o caI daf JR!N, ban mua dIa C voI ung dung JR!N 4.0, sau do caI daf chung
vao may co caI daf JK. Trong khI caI daf fh JR!N co you cau chon fhu muc noI ban caI
daf JK.
Trong khI caI daf JR!N, co fho you cau ban caI daf chung duoI dang mof djch vu
cua hop dong hanh |mac djnh Ia Yos), khI do JR!N so caI daf voI haI djch vu Ia JR!N
AdmIn va JR!N ofauIf frong cua so SorvIcos |frong ConfroI PanoI hay AdmInIsfrafIvo
TooIs) cua ho dIou hanh WIndovs nhu hnh 1-1 sau:



Hnh 1-1: jch vu JR!N frong SorvIos
CIao vIon: Pham Huu Khang
COMPTKR LKARNNG CKNTKRWWW.HKHANG.COM

an phaI bao dam rang chung dang o cho do Sfarfod, frong fruong hop dang o cho
do STOP fh ban chon djch vu nay va nhan nuf Sfarf.

Nou JR!N dang o cho do Sfarf fh ban so go hffp://IocaIhosf:8000 fron frnh duyof
va cung cap usornamo cung voI passvord do dang nhap vao man hnh uqan frj JR!N nou
muon chuong.
Nou JR!N ofauIf Sorvor dang o cho do Sfarf fh ban co fho go dja chI sau fron
brovsor hffp://IocaIhosf:8100 do chay ung dung mac djnh cua JSP.

NgoaI ra, nou ban khong caI daf JR!N nhu mof djch vu cua ho dIou hanh WIndovs
fh moI Ian ban muon chay ung dung JSP fh phaI Sfarf no Ion bang cach chon Sfarf 1
Programs 1 JR!N 4.0 1 JR!N ofauIf Sorvor hay JR!N AdmIn Sorvor roI sau do khoI
dong JR!N ofauIf Sorvor, phan nay so frnh bay frong phan cau hnh.
1.3.
1.3.1.
1.3.2.
Cuu hInh ung dung JSP
o frIou goI frang JSP |fon mo rong .jsp) fron frnh duyof, ban co fho cau hnh mof
forng haI cach sau:
Cuch 1:
Nou khong muon fao ung dung Wob cho rIong mnh ma su dung fhu muc mac djnh
fh ban co fho khaI bao cac frang JSP va bo vao fhu muc JR!N4/Sorvors/ofauI/ dofauIf-
oar/ dofauIf-var/.
Chang han, frong fruong hop nay chung fa khaI bao frang fosf.jsp voI noI dung nhu
sau:

<HTML>
<HEAD>
<title>Test JSP</title>
</HEAD>
<BODY>
<%=Hello JSP%>
</BODY>
</HTML>

o kIom fra frang JSP nay, ban khaI bao fron frnh duyof nhu sau:


http://localhost1:8100/test.jsp

Tuy nhIon, ban co fho khaI bao cac fhu muc con bon frong cua fhu muc mac djnh
nay, sau do frIou goI fron frnh duyof fhoo fon fhu muc, chang han
hffp://IocaIhosf:8100/qldu/dunhmucphongbun.jsp.
Cuch 2:
o cau hnh ung dung JSP fron JR!N ban co fho fhao fac fhoo cac buoc sau:
1. an dang nhap vao JR!N AdmIn voI hffp://IocaIhosf:8000 bang cach cung cap
usornamo/pvd nhu hnh 1-2 sau.
CIao vIon: Pham Huu Khang
COMPTKR LKARNNG CKNTKRWWW.HKHANG.COM


Hnh 1-2: ang nhap JR!N AdmIn

2. Tao fhu muc Iuu fru vob sIfo fron o dIa, chang han frong fruong hop nay khaI
bao fhu muc jspsampIo nhu hnh 1-3.

Hnh 1-3: KhaI bao fhu muc do Iuu fru frang JSP


CIao vIon: Pham Huu Khang
COMPTKR LKARNNG CKNTKRWWW.HKHANG.COM

3. Chon vao monu Homo, JR!N so IIof ko danh sach cac sorvor dang cau hnh fron
JR!N nhu hnh 1-4.


Hnh 1-4: anh sach cac Sorvor fron JR!N

4. Chon !RI co fon Ia Croafo Nov Sorvor fron monu nam o dau frang, frong cua
so vua xuaf hIon |CroafIng a Nov JRun AppIIcafIon Sorvor) ban cung cap cac
fham so frong hnh 1-5 nhu sau:
Hosf Namo:IocaIhosf |hoac dja chI IP, fon sorvor)


JRun Sorvor Namo: Chon fon cua ung dung, v du frong fruong hop nay chon
jspsampIo.
JRun Sorvor Irocfory: Thu muc cua ung dung ban vua fao ra, chang han
:/jspsampIo |hay :/fhuvIon/hr).
5. Nhan nuf Croafo cho frong gIay Iaf cua so cua HOM pago so xuaf hIon fon ung
dung vob ban vua fao |jspsampIo), nhan nuf Sfarf do khoI dong ung dung nay.
Trong fruong hop phaf sInh IoI do porf bj dung do, mac djnh cua sIfo dofauIf Ia
8100 |admIn Ia 8000), khI ban fao ung dung xong, mof porf nao do duoc gan cho
ung dung cua ban v du nhu 8101 nhu hnh 1-6. Tuy nhIon, ban co fho fhay doI
porf nay bang cach odIf do cap nhaf.
CIao vIon: Pham Huu Khang
COMPTKR LKARNNG CKNTKRWWW.HKHANG.COM


Hnh 1-5: Tao vobsIfo


Hnh 1-6: Tao ung dung JSP fhanh cong

Sau khI fao fhanh cong, fon ung dung vua fao so xuaf hIon frong danh sach sorvor
cua JR!N nhu hnh 1-7.
CIao vIon: Pham Huu Khang
COMPTKR LKARNNG CKNTKRWWW.HKHANG.COM


Hnh 1-7: Ton sIfo vua fao

Xom fron bang danh sach sorvor ung voI jspsampIo co phan HTTP Porf Ia 8101,
sau do fron hffp, ban go hffp://IocaIhosf:8101/fosf.jsp, kof qua so xuaf hIon nhu hnh 1-8.


Hnh 1-8: Kof qua frang fosf.jsp
CIao vIon: Pham Huu Khang
COMPTKR LKARNNG CKNTKRWWW.HKHANG.COM

2. GO THK JSP
2.1.
2.2.
2.3.
Yeu cuu
JSP dua fron cu phap cua ngon ngu Iap frnh Java, chnh v vay khI Iam vIoc voI
JSP ban phaI Ia nguoI co kIon fhuc vo ngon ngu nay. Nou ban xay dung ung dung JSP
co kof noI co so du IIou fh kIon fhuc vo co so du IIou SQI Sorvor hay OracIo Ia dIou can
fhIof.
Go theu
JSP Ia kjch ban frnh chu |Sorvor ScrIpf) duoc chay fron non JK 1.3 fro vo sau,
cung voI ung dung Wob Sorvor do quan Iy chung. Wob Sorvor fhuong su dung Ia Tomcafo,
Java Wob Sorvor, JR!N, WobIogIc va Apacho, ...
TIon fhan cua JSP Ia xuaf phaf fu Java SorvIof, khI Iam vIoc voI Java SorvIof fh
hau hof cac Iap frnh vIvon gap kho khan khI xuaf nhap du IIou, cu fho Ia gIao dIon voI
nguoI su dung. Chnh v vay S!N MIcrosysfom cung cap kjch ban JSP Ia phan mo rong
cua Java SorvIof do cho phop qua frnh Iap frnh ung dung Wob fro non don gIan hon.
Tuy nhIon, nhung frang JSP nay khI bIon djch do fhong qua frang frung gIan Ia Java
SovrIof.
Ben d{ch trung JSP
KhI nguoI su dung goI frang J8P Ian dau fIon, Wcb 8crocr frIou goI frnh bIon djch
djch frang J8P |frong fruong hop nay Ia JK) fhanh fap fIn Java, ko don fap fIn java
|Java SorvIof) nay so bIon djch ra C/ass . Sau do, frang c/ass fhuc fhI va fra vo kof qua
cho nguoI su dung nhu hnh 1-9.
















Hnh 1-10: Qua frnh bIon djch frang JSP
Tap fIn
JSP
Wob
Sorvor
Java
ngIno
|JSK)
Tap fIn
Java
SorvIof
Tap fIn
CIass
CaII
CompIIo
Parso
InsfanfIafo
InsfanfIafo
Procoss and
Rondor
Roquosf
Roquosf
Rosponso
Rosponso
CIao vIon: Pham Huu Khang
COMPTKR LKARNNG CKNTKRWWW.HKHANG.COM

2.4.
3.
K{ch bun (scrpt)
NoI dung cua JSP co fho khaI bao Ian Ion voI HTMI, chnh v vay ban su dung cap
dau <%= %> do khaI bao ma JSP. Chang han, chung fa khaI bao:

<br>
1-Gia tr bien Str: <%=str%>
2-Gia tr bien i: <%=i%>
3-Gia tr cu the: <%=10%>

Trong fruong hop co nhIou khaI bao, ban su dung ScrIpfIof, dou nay co nghIa Ia su
dung cap dau fron nhu <%%> voI cac khaI bao JSP voI cu phap cua Java nhu sau:

<%
int i=0;
String str=Select * from tblABC;
out.println(str);
%>
-Khai bao tren la Scriptlet
Gia tr cua i: <br>
<%=i%> -Khai bao nay la Script

KKT LAN
Trong baI nay, chung fa fap frung fm hIou cach caI daf JSK va JR!N, sau do cau
hnh ung dung JSP frong JR!N hay su dung cau hnh mac djnh cua chung.
NgoaI ra, ban Iam quon cach khaI bao ma JSP frong frang .jsp cung voI scrIpf hay
scrIpfIof.
CIao vIon: Pham Huu Khang
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM

Mon hoc: Juvu Server Puges

Bu 2

Bai boc nay cbung ta sc /am qucn oa tm bicu cu pbap oa mot
so pbuong tbuc co ban cua J8P.

9 Cau /cnb.
9 Bicn oa kicu Ju /icu.
9 Hang.
9 Bang Jay
9 Mot so pbuong tbuc co ban
1. KHA NKM VK C PHAP JSP
Cu phap JSP chnh Ia cu phap frong ngon ngu Java, cac ban Iam quon voI ngon
ngu Java fh co IoI fho frong Iap frnh JSP.
o Iap frnh bang ngon ngu JSP can chu y nhung dIom sau:
CuoI cau Ionh co dau ;
MoI phuong fhuc dou baf dau { va dong bang dau }
KhI khaI bao bIon fh kIou du IIou nam fruoc fon bIon
Non co gIa frj khoI dau cho bIon khaI bao
PhaI co chI chu |commonf) cho moI foafuro moI
Su dung dau // do gIaI fhch cho moI cau ghI chu
Su dung /` va `/ cho moI doan ghI chu
KhaI bao bIon co phan bIof chu hoa hay fhuong
Ton fIIo va Iop cung nhu nhu khaI bao bIon

2. KHA BAO BKN
KhI fhuc hIon mof vIoc khaI bao bIon frong java, ban can phaI bIof fuan fhu quy
djnh nhu: kIou du IIou fruoc fon bIon va co gIa frj khoI dau
Xuaf phaf fu nhung dIou o fron, khaI bao bIon frong Java nhu sau:
afafypo varIabIo namo InIfIaI vaIuo|;

int licount=0;
String lsSQL=Select * from tblusers where active=1;
double account[];
boolean checkerror=false;
3. KK O LK
ang cac kIou du IIou fhong fhuong
Typo yfos Rango
ooIoan 2
CIao vIon: Pham Huu Khang
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM

yfo 1
Char 2
oubIo 8 cho am, 4
so duong

IIoaf 4
Inf 4
Iong 8
Shorf 2
ConnocfIon
Sfafomonf
RosuIfSof

3.1. Keu Arruy
KIou mang Ia mof mang so IIou do nguoI dung djnh nghIa, chung co cu phap nhu
sau:
doubIo accounf|; // mang so doubIo
hay co fho khaI bao nhu sau
doubIo accounf|={0,0,1,45.95,6.5};
fhu fu Indox frong mang baf dau fu vj fr 0. Nou nhu ban khaI bao mang haI chIou, fh
cu phap khaI bao nhu sau:
doubIo accounf||=nov doubIo2|5|;
Chang han khaI bao nhu sau:
<%
double account[][]=new double[2][100];
account[0][3]=43.95;
account[1][3]=43.95000;
out.println(Account 0-3 is + account[0][3] );
out.println(Account 1-3 is + account[1][3] );
%>

KhaI bao bIon SfrIng

<%
String strSQL=select * from tblusers ;
String strWhere= where active=0;
CIao vIon: Pham Huu Khang
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM

out.println(SQL Statement is + strSQL+strWhere );
%>
KhaI bao voI nhIou IoaI du IIou
<%
boolean bo;
byte by;
char c;
short s;
int i;
long l;
float f;
double d;
object o;
int[] intArray = new int[2];
object[] objectArray = new Object[2];
out.println("boolean: "+bo);
out.println("byte: "+by);
out.println("char: "+c);
out.println("short: "+s);
out.println("int: "+i);
out.println("long: "+l);
out.println("float: "+f);
out.println("double: "+d);
out.println("Object: "+o);
out.println("int[2]: "+intArray[0]+" "+intArray[1]);
out.println("Object[2]: "+objectArray[0]+" "+objectArray[1]);
%>

4. CAC PHONG THC VA PHONG THC TRONG JAVA
4.1. Phuong thuc tru ve cheu du mung
KhI quan fam don chIou daI cua mang fh ban can fhoo cu phap sau:
Array.Iongfh
CIa su rang, ban khaI bao bIon voI chIou daI mang mof va haI chIou
<%
double account[]={88,11,2.5,77};
double sum;
sum=account.length;
CIao vIon: Pham Huu Khang
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM

out.println(Length of Account is + sum);%>

4.2.
4.3.
4.4.
Chuyen sung keu chuo
KhI ban can chuyon doI fu kIou so IIou khac sang kIou chuoI, fh can khaI bao nhu
sau:
SfrIng.vaIuoOf|dafa);
V du chuyon doI kIou sang kIou chuoI
<%
double account[]={88,11,2.5,77};
String str;
str=String.valueOf(account[2]);
out.println(String of Account 2 is + str);
%>

No chuo
KhI can fhIof noI haI hay nhIou chuoI IaI voI nhau, ban su dung phuong fhuc
concaf, fhong fhuong chung fa hay dung phop foan + do noI haI hay nhIou chuoI IaI voI
nhau.
Cu phap concaf nhu sau:
Sfr1.conacf|Sfr2);
Kof noI chuoI
<%
String str1=Select * from tblemplyers;
String str2= where paid=1;
str1=str1.conact(str2);
out.println(String of Str1 is + str1);
%>

Chuo con
KhI ban can Iay mof chuoI con frong chuoI Ion, ban can dung don phuong fhuc voI cu
phap nhu sau:
sfr1=sfr2.subsfrIng|sfarf,chIou daI)
V du khaI bao do Iay chuoI con
<%
String str1=Select * from tblemplyers;
String str2=str1.substring(9,5);
out.println(Sub String of Str1 is + str2);
CIao vIon: Pham Huu Khang
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM

%>
Nhung nou co nhu cau Iay ra mof ky fu nao do frong chuoI, fh ban khong can dung
subsfrIng ma chI su dung cu phap charAf nhu sau:
Char=Sfr1.charAf|numbor);

Chang han, khaI bao do Iay 1 ky fu
<%
String str1=Select * from tblemplyers;
String str2=str1.charAt(5);
Out.println(charAt of Str1 is + str2);
%>
4.5.
4.6.
Chuyen do Strng sung Arruy
Thong fhuong frong khI fnh foa chuoI, doI khI cung can don chung nhu mof mang,
Iy do do chung fa co phuong fhuc chuyon doI nhu sau:
char char1|=sfr1.foCharArray|);

Chuyon chuoI sang mang
<%
String str1=Select * from tblemplyers;
char char1=str1.toCharArray();
out.println(Char of Str1[1] is + char1[5]);
%>

Thuy the chuo
KhI can fhay fho mof chuoI con nao do frong chuoI mo fhanh chuoI con khac, chung
fa can don phuong fhuc ropIaco co cu phap nhu sau:
sfr1=sfr2.ropIaco|,);
sfr1=sfr2.ropIaco|a,k);

V du khaI bao fhay fho chuoI
<%
String str1=Select * from tblemplyurs;
str1= ropIacoSfrIng (str1,u,o);
str1= ropIacoSfrIng (str1,,);
out.println(Char of Str1 is + str1);
%>
Trong do, khaI bao phuong fhuc ropIacoSfrIng nhu sau
CIao vIon: Pham Huu Khang
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM

<%!
pubIIc SfrIng ropIacoSfrIng|SfrIng sSfr,SfrIng oIdSfr,SfrIng novSfr)
{
sSfr=|sSfr==nuII7"":sSfr);
SfrIng sfrVar=sSfr;
SfrIng fmpSfr="";
SfrIng fInaISfr="";
Inf sfpos=0,ondpos=0,sfrIon=0;
vhIIo |fruo)
{
sfrIon=sfrVar.Iongfh|);
sfpos=0;
ondpos=sfrVar.IndoxOf|oIdSfr,sfpos);
If |ondpos==-1)
broak;
fmpSfr=sfrVar.subsfrIng|sfpos,ondpos);
fmpSfr=fmpSfr.concaf|novSfr);

sfrVar=sfrVar.subsfrIng|ondpos+oIdSfr.Iongfh|)>sSfr.Iongfh|)7ondpos:ondpos+oId
Sfr.Iongfh|),sfrIon);
fInaISfr=fInaISfr.concaf|fmpSfr);
sfpos=ondpos;
l
fInaISfr=fInaISfr.concaf|sfrVar);
rofurn fInaISfr;
l
%>
4.7. V{ trI ky tu trong chuo
KhI can bIof vj fr cua ky fu hay chuoI con nao do frong chuoI, ban su dung phuong
fhuc sau:
vIrfI=sfr1.IndoxOf|soIocf);
vIrfI=sfr1.IndoxOf|o);

Chang han fm vj fr chuoI hay ky fu frong ChuoI
<%
CIao vIon: Pham Huu Khang
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM

String str1=Select * from tblemplyurs;
int vitri=str1.indexOf(o);
Out.println(Location of \o\ is + vitri);
%>
4.8.
5.
Keu chu
Nou muon chuyon doI chu hoa sang fhuong hay nguoc IaI, fh ban dung phuong fhuc
co cu phap nhu sau:
Tu hoa sang fhuong: sfr1.foIovorCaso|);
Tu fhuong saung hoa: sfr1.fo!pporCaso|);

V du
<%
String str1=Select * from tblemplyors;
str1=str1.toLowerCase();
out.println(LowerCase is + str1);
str1=str1.toUpperCase();
out.println(UpperCase is + str1);
%>
TOM TAT
Trong baI hoc nay chung foI gIoI fhIou don cho cac ban cach khaI bao bIon, cac kIou
du IIou, dong fhoI gIup cho cac ban nhung phuong fhuc fron chuoI va ky fu frong JSP.


CIao vIon: Pham Huu Khang
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
Bai 3
PHKP TOAN VA PHAT BK CO OK KKN
TRONG JSP

Cbuong nay cbung ta sc /am qucn oa tm bicu toan tu, pbat bicu
co Jicu kicn oa oong /ap cua J8P.

Nbung oan Jc cbinb sc Juoc Jc cap trong bai boc nay
9 Toan tu.
9 Pbcp gan trong Jaoa
9 Pbat bicu co Jicu kbicn.
9 Vong /ap.


1. KHA NKM VK CAC TOAN T TRONG JSP
KhI ban Iap frnh fron JSP Ia su dung cu phap cua ngon ngu Java. Tuong
fu nhu nhung ngon ngu Iap frnh khac, foan fu gIup cho ban fhuc hIon nhung
phop foan nhu so hoc hay fron chuoI.
ang sau day gIup cho ban hnh dung duoc nhung foan fu su dung fron
Java
Java djng nghIa foa fu foan hoc, quan ho, so hoc, bIf, casfo, cIass, soIocfIon,
va nof so phop foan gan.

IoaI foan fu Toan fu Ion gIaI V du
ArIfhmofIc
+
-
*
/
%
AddIfIon
SubfracfIon
MuIfIpIIcafIon
IvIsIon
ModuIus
a + b
a - b
a * b
a / b
a % b
RoIafIonaI
>
<
>=
<=
!=
==
Croafor fhan
Ioss fhan
Croafor fhan or oquaI
Ioss fhan or oquaI
Nof oquaI
quaI
a > b
a < b
a >= b
a <= b
a != b
a == b
IogIcaI
!
&&
Nof
!a
a && b
huukhungyuhoo.com 3-1
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
||
AN
OR
a || b
If-
manIpuIafIon
~
&
|
^
<<
>>
>>>
CompIomonf
AN
OR
xcIusIvo OR
Ioff shIff
RIghf shIff
Zoro-fIIIod rIghf shIff
~a
a & b
a | b
a ^ b
a << b
a >> B
a >>> b
AssIgnmonf
=
++
--
+=
-=
*=
/=
%=
|=
&=
^=
<<=
>>=
>>>=
AssIgnmonf
Incromonf and assIgn
ocromonf and assIgn
Add and assIgn
Subfracf and assIgn
MuIfIpIy and assIgn
IvIdo and assIgn
Tako moduIus and assIgn
OR and assIgn
AN and assIgn
XOR and assIgn
Ioff shIff and assIgn
RIghf shIff and assIgn
Zoro-fIIIod Ioff shIff and
assIgn
a = b
a++
a--
a += b
a -= b
a *= b
a /= b
a %= b
a |= b
a &= b
a ^= b
a <<= b
a >>= b
a >>>= b
Casfo
(type)
Convorf fo fypo
(char) b
Insfanco
instance
of
Is Insfanco of cIass7
a instanceof b
AIIocafIon
new
Croafo a nov objocf of a
cIass
new A()
SoIocfIon
? :
If...Thon soIocfIon
a ? b : c

2. GO THK TOAN T
KhI noI don foan fu, chung fa Iuon IIon fuong don fhu fu xu Iy, cung nhu
frong foan hoc, foan fu frong java cung co do uu fIon add-subfracf-muIfI-dIvIdo.
2.1. Toun tu ANO
KhI fhuc hIon mof vIoc fang Ion gIa frj fh ban su dung cu phap nhu sau:
Inf I=0,j=0;
huukhungyuhoo.com 3-2
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
j=I++;// I fang sau khI gan I vao j, chnh v vay sau khI gan I vao j, j van
khong fhay doI
j=++I;// I fang fruoc khI gan I vao j, chnh v vay sau khI gan I vao j, j fhay
doI.

VI du 3.1: Phep toun ANO.

<%
int i=0,j=0;
j=i++;
out.println(Value of j is + j);
j=++i;
out.println(Value of j is + j);
%>
2.2. Toun tu Not: ~ And !
Toan fu ~ dao nghjch faf ca cac bIf cua fham so, con foan fu ! dao nghjch
gIa frj cua gIa frj fruoc do
VI du 3.2: Phep toun ~ und !

<%
short i=32767;
boolean b=true;
out.println(Value of ~ short is + ~i);
out.println(Value of !b is +!b);
%>
2.3. Toun tu nhun vu chu: * und /
an co fho fham khao v du sau
VI du 3.3: Phep toun * vu /, + vu -

<%
int i=767;
double j=10.5;
out.println(Value of multi is + i*j);
out.println(Value of divide is +i/5);
huukhungyuhoo.com 3-3
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
out.println(Value of add is +i+5);
out.println(Value of subtract is +i-5);
%>
2.4. Toun tu modulus: %
KhI chIa mof so cho mof so, ban can kof qua Ia so du cua phop chIa do fh
dung foan fu moduIus
VI du 3.4: Phep toun %

<%
int i=10;
int j=3;
out.println(Value of i%j is + i%j);
%>
2.5. Toun tu quun he: >=,>,<,<=,==,!=
KhI can so sanh kof qua gIua haI foan han voI nhau, fhong fhuong ban nghI
don phop foan so sanh nhu Ia bang, Ion hon, nho hon, v du sau dIon gIaI cho
ban cac foan fu fron:
VI du 3.5: Phep toun >,>=,<,<=,==,!=

<%
int i=10;
int j=3;
if(i>=j)
out.println(result is true);
else
out.println(result is false);
if(i!=j)
out.println(result is not equals);
else
out.println(result is equals);

%>

huukhungyuhoo.com 3-4
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
2.6. Toun tu && vu 11
&& Ia foa fu and frong so hoc
11 Ia foan fu or frong so hoc
HaI foan fu nay raf fhuong dung frong khI Iap frnh fron Java, v du duoI
day dIon gIaI cho ban day du haI foan fu nay. Chu y rang khI su dung foan fu
dou co kom phaf bIou co dIou kIon.
VI du 3.6: Phep toun && vu 11

<%
boolean b=true;
int j=3;
if((j>=3) &&(b!=true))
out.println(result is true);
if((j<3) ||(b==true))
out.println(result is false);
%>
2.7. Toun tu ?:
Toan fu nay fhay fho cho phaf bIou co dIou kIon If.. fhon .. oIso, khI ban
can Iay kof qua fhoo dIou kIon nao do, nou co fho khong can phaf bIou If-oIso,
fh hay fhay fho bang foan fu 7:, cu phap cua chung nhu sau:
sfr1=sfr2.oquaIs|khang)7WoIcomo fo Java:Cood byo JSP;

VI du 3.?: Phep toun ?:

<%
String str1=Pham Huu Khang;
String str2 =Khang;
out.println(result is true+ (str1.equals(str2)?Welcome to
Java:Good bye JSP));

%>
huukhungyuhoo.com 3-5
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
3. PHKP GAN
KhI gan mof gIa frj hay bIon vao mof bIon frong Java, ban phaI dung don
phop gan, nhung frong Java cung gIongnhu frong C fh co nhung phop gan duoc
don gIan hoa hay noI dung hon Ia chuan hoa do ruf gon IaI frong khI vIof.
3.1.
3.2.
3.3.
4.
Phep gun thong thuong nhut nhu suu:
Inf j=I;
SfrIng sfr1 = HoIIo!;
booIoan b=fruo;
Phep gun them mot gu tr{ lu 1
Inf k=0;
k++;
Phep gun them mot vo chInh no gu tr{
Inf k=0,j=1;
k+=j;
fuong fu nhu vay chung fa co k`=2, nghIa Ia k=k`2
PHAT BK CO OK KKN
Cac phaf bIou co dIou kIon nhu :
II |dIou kIon) { cau Ionh; }
II |dIou kIon) { cau Ionh; }ELSE { cau Ionh; }
svIfch |dIou kIon)
{
caso VaIuo1
cau Ionh1;
broak;
}
WhIIo |dIou kIon)
o - WhIIo |dIou kIon)
roak
ConfInuo

huukhungyuhoo.com 3-6
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
4.1. Phut beu F (deu ken) { cuu lenh, }
Su dung phaf bIou If do chon Ioc kof qua khI dIou kIon dung, v du nhu sau:
VI du 3.8: Phut beu F

<%
boolean b=true;
int j=3;
if((j>=3) &&(b!=true))
out.println(result is true);
if((j<3) ||(b==true))
out.println(result is false);
%>

4.2. Phut beu F (deu ken) { cuu lenh, }ELSE { cuu lenh, }
Su dung phaf bIou If do chon Ioc kof qua khI dIou kIon dung, va xuaf ra kof
qua khI dIou kIon saI, v du nhu sau:
VI du 3.9: Phut beu F - KLSK

<%
boolean b=true;
int j=3;
if((j>=3) &&(b!=true))
out.println(result is true);
else
out.println(result is false);

%>

4.3. Phut beu Swtch (deu ken)
Phaf bIou svIfch Ia phan cua phaf bIou If oIso nhIou nhanh, khI co nhIou
dIou kIon chon Iua fh ban su dung svIfch, cu phap cua chung nhu sau:
SvIfch|dIou kIon)
{
huukhungyuhoo.com 3-?
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
caso VaIuo1
cau Ionh1;
broak;
caso VaIuo2
cau Ionh2;
broak;

dofauIf:
cau Ionh dofauIf;
}
roak: dung do fhoaf ra khoI svIfch khI fhoa mof caso nao do frong svIfch,
dofauIf: khI khong co baf ky gIa frj nao fhoan frong cac caso fh gIa frj cuoI cung
Ia dofauIo sfafomonf
VI du 3.10: Phut beu Swtch

<%
int j=3;
switch(j)
{
case 1:
out.println(Today is Monday);
break;
case 2:
out.println(Today is Thurday);
break;
case 3:
out.println(Today is Tueday);
break;
default:
out.println(Today is Sunday);
}
%>
huukhungyuhoo.com 3-8
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
4.4. Phut beu Whle(deu ken)
Phaf bIou vhIIo fhuc fhI nhung cau Ionh frong vhIIo khI dIou kIon co dung.
VI du 3.11: Phut beu Whle

<%
int j=1;
while(j<=30)
{
out.println(Number of j + j);
j++;

%>
4.5. Phut beu For
Phaf bIou for dung cho vong Iap co gIoI han cho fruoc, cu phap co dang nhu
sau:
Inf I=0;
for|I=1;I<10;I++)
{
cau Ionh;
}
VI du 3.12: Phut beu For

<%
int mang[]={3,5,6,7,8,9};
for (int j=0;j<mang.length;j++)
{
out.println(Phan tu mang +j+ : +mang[j]);
}
%>
TOM TAT 5.
Trong baI hoc nay chung foI gIoI fhIou don cho cac ban cac phop gan, cac foan
fu, dong fhoI gIup cho cac ban hIou fhom vao cac phaf bIou co dIou kIon nhu
vhIIo, for, svIfch, .
huukhungyuhoo.com 3-9
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
Bai 4
OO TONG SKSSON, RKQKST, RKSPONSK
TRONG JSP

Chng nay chung ta se lam quen cac oi tng thng s dung trong
qua trnh thiet ke trang JSP.

Nhng van e chnh se c e cap trong bai hoc nay
9 oi tng Request.
9 oi tng Response.


OO TONG RKQKST
KhI muon Iay gIa frj fu mof fho nhap IIou do frnh |submIf) fu form hay fu chuoI QuorySfrIng, dIou
nay co nghIa Ia cho phop Iay gIa frj fu cIIonf goI Ion sorvor, doI fruong hop nay ban su dung doI
fuong Roquosf. oI fuong nay fhuoc Iop javax.sorvIof.SorvIofRoquosf.
1.
1.1. Request vo tu the nhup leu
V du chung fa khaI bao frang HTMI hay JSP co fho form, bon frong fho form khaI bao cac fho
nhap IIou nhu Inpuf, soIocf, foxfaroa nhu v du 4-1.

<%@ page contentType="text/html; charset=UTF-8" %>
<html>
<head>
<title>JSP's Objects</title>
<LINK href="style.css" rel=stylesheet>
<LINK href="newstyle.css" rel=stylesheet>
<META HTTP-EQUIV="Content-Type"
CONTENT="text/html ; charset=utf-8">
</head>
<body leftmargin="0" topmargin="0" >
<tr><td></td><td>Registration</td></tr>
<form name=form1 action=ex2.jsp method=post>
<table border=0>
<tr>
<td>Name: </td><td><input type=text name=txtname></td></tr>
<tr><td>Province: </td><td><select name=province>
<option value=HAN> Ha Noi </option>
<option value=HUE> Hue </option>
<option value=HCM> Ho Chi Minh </option>
</select></td></tr>
<tr><td>Description: </td><td>
<textarea name=txtdesc cols=30 rows=5></textarea></td>
</tr>
<tr><td></td><td><input type=submit value="Submit"></td></tr>
</table>
</form>
</body>
</html>

huukhungyuhoo.com 3-1
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
KhI nguoI su dung goI frang JSP nay fron frnh duyof va nhap cac fhong fIn you cau nhu hnh 4-1.



Hnh 4-1: Nhap IIou
o Iay duoc gIa frj cua cac phan da nhap fron hnh 4-1, chung fa su dung phuong fhuc
gofParamofor cua doI fuong roquosf nhu v du 4-2.

<%@ page contentType="text/html; charset=UTF-8" %>
<html>
<head>
<title>JSP</title>
<LINK href="style.css" rel=stylesheet>
<LINK href="newstyle.css" rel=stylesheet>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html ; charset=utf-8">
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<h4>Confirmation</h4>
<hr size=1><br>
<%
String name=request.getParameter("txtname");
String province=request.getParameter("province");
String desc=request.getParameter("txtdesc");
out.println("Name is "+ name +"<br>");
out.println("Province is " + province +"<br>");
out.println("Description is " + desc +"<br>");
%>
</body>
</html>

Kof qua frnh bay nhu hnh 4-2 nou fhong fIn nhap gIong nhu hnh 4-1.
huukhungyuhoo.com 3-2
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM


Hnh 4-2: Su dung phuong fhuc gofParamofor

1.2. Request vo tu thum so tren QueryStrng
Tuong fu nhu fron, frong fruong hop ban muon Iay cac gIa frj cua cac fham so fron QuorySfrIng,
ban cung su dung phuong fhuc gofParamofor cua doI fuong rquosf. Chang han, chung fa khaI bao
frang JSP co fho Inpuf va su dung phuong fhuc gof frong fho form nhu v du 4-3.

<%@ page contentType="text/html; charset=UTF-8" %>
<html>
<head>
<title>JSP's Objects</title>
<LINK href="style.css" rel=stylesheet>
<LINK href="newstyle.css" rel=stylesheet>
<META HTTP-EQUIV="Content-Type"
CONTENT="text/html ; charset=utf-8">
</head>
<body leftmargin="0" topmargin="0" >
<tr><td></td><td><b>Tim kiem va Liet ket</b></td></tr>
<form name=form1 action=ex4.jsp method=get>
<table border=0>
<tr>
<td>Keyword: </td><td><input type=text name=keyword></td></tr>
<tr><td></td><td><input type=submit value="Submit"></td></tr>
</table>
</form>
</body>
</html>

KhI nguoI su dung nhap mof fu khoa nao do va nhan SubmIf, frang ox4.jsp so duoc frIou goI.
Chang han, chung fa nhap fu khoa Ia SQI Sorvor nhu hnh 4-3.

huukhungyuhoo.com 3-3
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM


Hnh 4-3: Phuong fhuc CT
KhI frang ox4.jsp frIou goI, fron chuoI QuorySfrIng xuaf hIon
hffp://IocaIhosf:81/jsp/chapfor04/ox4.jsp7koyvord=SQI+Sorvor nhu hnh 4-4.



Hnh 4-4: Iay gIa frj fu QuorySfrIng
o Iay gIa frj fu chuoI QuorySfrIng, chung fa su dung phuong fhuc gofParomofor cua doI fuong
roquosf nhu v du 4-4.

<%@ page contentType="text/html; charset=UTF-8" %>
<%
huukhungyuhoo.com 3-4
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
// Lay gia tr keyword t trang ex3.jsp
String keyword=request.getParameter("keyword");
// Lay gia tr sort t trang QueryString
String sort=request.getParameter("sort");
%>
<html>
<head>
<title>JSP</title>
<LINK href="style.css" rel=stylesheet>
<LINK href="newstyle.css" rel=stylesheet>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html ; charset=utf-8">
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<h4>Result</h4>
<!--Khai bao cac link e gi lai keyword
va khai bao gia tr cho tham so sort-->
<a href="ex4.jsp?keyword=<%=keyword%>&sort=ItemName">ItemName</a>
<a href="ex4.jsp?keyword=<%=keyword%>&sort=UnitPrice">Unit Price</a>
<br>
<hr size=1><br>
<%
// xuat gia tr lay c
out.println("Keyword is "+ keyword +"<br>");
sort=(sort==null)?"ItemName":sort;
out.println("Sort by " + sort +"<br>");
%>
</body>
</html>

1.3. Request vo mung thum so
Nou nhu co nhIou fho fron form hay fham so fron QuorySfrIng cung fon, chung fa phaI su dung
phuong fhuc gofParamoforVaIuos cua doI fuong roquosf. V du, chung fa khaI bao frang JSP co
nhIou fho Inpuf dang chockbox cung fon nhung khac gIa frj nhu v du 4-5.

<%@ page contentType="text/html; charset=UTF-8" %>
<html>
<head>
<title>JSP's Objects</title>
<LINK href="style.css" rel=stylesheet>
<LINK href="newstyle.css" rel=stylesheet>
<META HTTP-EQUIV="Content-Type"
CONTENT="text/html ; charset=utf-8">
</head>
<body leftmargin="0" topmargin="0" >
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<form action=ex6.jsp method=post>
<tr><td><b>#</b></td><td><b>DepartmentID</b></td><td><b>Department
Name</b></td></tr>
<tr><td colspan=3><hr size=1></td></tr>
<%
int i=0;
while(i<10)
{
out.println("<tr><td width=50 valign=top><input type=checkbox "):
out.println("name=chkid value='"+i+"'></td>");
out.println("<td width=100 valign=top>"+ i +"</td>");
out.println("<td width=150 valign=top>Phong ban thu " + i+ " </td><tr>");
i++;
}
%>
huukhungyuhoo.com 3-5
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
<tr><td colspan=3><hr size=1></td></tr>
<tr><td colspan=3><input type=submit value="Delete"></td></tr>
</table>
</form>
</body>
</html>

KhI frIou goI frang JSP nay fron frnh duyof, bang cach chon mof vaI phong ban do xoa ban co
gIao dIon nhu hnh 4-5.



Hnh 4-5: Tho cung fon va khac gIa frj
Nhu hnh fron, ban chon cac phong ban co gIa frj Ia 1,5,6,8, khI submIf form nay frang ox6.jsp so
duoc frIou goI, do Iay duoc gIa frj 1,5,6,8 nhu da chon bang cach su dung phuong fhuc
gofParamoforVaIuos, ban khaI bao nhu v du 4-6.

<%@ page contentType="text/html; charset=UTF-8" %>
<html>
<head>
<title>JSP</title>
<LINK href="style.css" rel=stylesheet>
<LINK href="newstyle.css" rel=stylesheet>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html ; charset=utf-8">
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<h4>Delete </h4>
<hr size=1><br>
huukhungyuhoo.com 3-6
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
<%
String[] deleterecord=null;
String delStr="";
deleterecord=request.getParameterValues("chkid");
if(deleterecord!=null){
for(int k=0;k<deleterecord.length;k++){
delStr+= deleterecord[k]+",";
}
delStr=delStr.substring(0,delStr.length()-1);
}
out.println("Select values are : " + delStr);
%>
</body>
</html>

KhI do, kof qua frnh bay fron frnh duyof nhu hnh 4-6, frong fhuc fo ban co fho gan gIa frj nay
voI chuoI SQI va su dung phop foan IN hay NOT IN do fruy van hay fhao fac frong du IIou.



Hnh 4-6: Kof qua Iay mang gIa frj

1.4. Request ket hop vo JuvuScrpt
NgoaI cac cach fron, khI Iam ung dung fhuong chung fa frnh bay danh sach mau fIn phu fhuoc
vao gIa frj chon fron fho soIocf hay chockbox hoac roadIobuffon, ban co fho su dung phuong fhuc
gofParamofor cua doI fuong roquosf do fhuc hIon y djnh nay nhu v du 4-7.

<%@ page contentType="text/html; charset=UTF-8" %>
<%
// Lay gia tr chon trong the select co ten selectid
int selectid=0;
// Chuyen qua so nguyen neu co chon
if (request.getParameter("selectid")!=null)
{
try {
selectid=Integer.parseInt(request.getParameter("selectid"));
huukhungyuhoo.com 3-?
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
}
catch(Exception ex)
{
selectid=0;
}
}
%>
<html>
<head>
<title>JSP's Objects</title>
<LINK href="style.css" rel=stylesheet>
<LINK href="newstyle.css" rel=stylesheet>
<META HTTP-EQUIV="Content-Type"
CONTENT="text/html ; charset=utf-8">
</head>
<body leftmargin="0" topmargin="0" >
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<!--Khai bao the select co ten selectid-->
<form action=ex7.jsp method=post name=form1>
<tr><td colspan=2><h4>Show</h4></td><td>
<select name=selectid onchange="document.form1.submit();">
<option value=0>Greater than 0</option>
<option value=1>Greater than 1</option>
<option value=2>Greater than 2</option>
<option value=3>Greater than 3</option>
<option value=5>Greater than 5</option>
</select>
<script>
// Chon lai gia tr chon trc o trong the select co ten selectid
for(var j=0;j<form1.selectid.length;j++)
{
if(form1.selectid[j].value=="<%=selectid%>")
form1.selectid.selectedIndex=j;
}
</script>
</td></tr>
</form>
<tr><td><b>#</b></td><td><b>DepartmentID</b></td><td>
<b>Department Name</b></td></tr>
<tr><td colspan=3><hr size=1></td></tr>
<%
// Trnh bay so mau tin >= gia tr chon trong the select co ten selectid
int i=selectid;
while(i<10)
{
out.println("<tr><td width=50 valign=top>");
out.println("<input type=checkbox name=chkid value='"+i+"'></td>");
out.println("<td width=100>"+ i +"</td>");
out.println("<td width=150>Phong ban thu " + i+ " </td><tr>");
i++;
}
%>
<tr><td colspan=3><hr size=1></td></tr>

</table>
</body>
</html>

Ian dau fIon goI don frang ox7.jsp fh kof qua frnh bay Ia 10 phong ban, nou nguoI su dung chon
gIa frj frong phan Shov Croafor fhan fh so mau fIn frnh bay Ion hon hoac bang gIa frj dang
chon nhu hnh 4-7.
huukhungyuhoo.com 3-8
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM


Hnh 4-7: Trnh bay mau fIn chon Ioc

OO TONG RKSPONSK
KhI muon fra gIa frj fu sorvor xuong cIIonf fh su dung doI fuong rosponso. oI fuong nay fhuoc
Iop javax.sorvIof.SorvIofRosponso.
Chang han, sau khI kIom fra gIa frj usornamo va passvord hop Io fh fu dong chuyon don frang
myaccounf.jsp frong frang IogIn_aufhonfIcafIon.jsp.
o Iam dIou nay, chung fa khaI bao frang IogIn.jsp co haI fho nhap IIou Ia usornamo va passvord
nhu v du 4-8.
2.

<%@ page contentType="text/html; charset=UTF-8" %>
<html>
<head>
<title>JSP</title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html ; charset=utf-8">
<script language="JavaScript">

// Khai bao kiem tra gia tr nhap tren trnh khach
function checkinput(){
if(document.form1.username.value==""){
alert("Xin vui long nhap username");
document.form1.username.focus();
return false;
}
if(document.form1.password.value=="" ){
alert("Xin vui long nhap password");
document.form1.password.focus();
return false;
}

return true;
huukhungyuhoo.com 3-9
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
}
</script>

</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="100%" border="0" cellspacing="5" cellpadding="5">
<tr><td>
<form action=login_authentication.jsp name=form1
method=post onSubmit="return checkinput();">
<table align=center>
<tr>
<td colspan="2" height="19">
<h4><b><font color="#FF0000">
<font color="#0000CC">
Administration Module</font>
</font></b></h4><hr>
</td>
</tr><tr>
<td colspan=2 height="19">
<div align="left">Please enter username and password</div>
</td>

</tr>
<tr>
<td height="19">
<div align="left">Username</div>
</td>
<td height="19">
<div align="left">
<input type="text" name="username" size="30" maxlength="50">
</div>
</td>
</tr>
<tr>
<td height="31">
<div align="left">Password</div>
</td>
<td height="31">
<div align="left">
<input type="password" name="password"
size="30" maxlength="10">
</div>
</td>
</tr>
<tr>
<td >&nbsp;</td>
<td>&nbsp;</td>
</tr><tr>
<td ><input type=submit value="Login"></td>
<td ><input type=reset value=Reset></td>
</tr>
</table></form>
</body>
</html>

KhI frIou goI frang IogIn.jsp fron frnh duyof nhu hnh 4-8, nou ban khong nhap gIa frj cho
usornamo hay passvord fh cua so fhong bao you cau xuaf hIon, qua frnh submIf Ion sorvor chI
xay ra khI ban nhap ca haI gIa frj hop Io.


huukhungyuhoo.com 3-10
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM


Hnh 4-8: ang nhap
KhI submIf fhanh cong, frang IogIn_aufhonfIcafIon.jsp duoc goI, nou usornamo va passvord ban
nhap fuong ung Ia khang, 123456 fh frang myaccounf.jsp fro don nguoc IaI fh goI IaI frang
IogIn.jsp nhu v du 4-9.

<%
String username="";
String password="";
username= request.getParameter("username");
password= request.getParameter("password");
if (username.equals("khang")){
if(password.equals("123456")){
response.sendRedirect("myaccount.jsp");
}
else{
/*sai password*/
response.sendRedirect("login.jsp");
}
}
else{
/*sai user*/
response.sendRedirect("login.jsp");
}
%>

TOM TAT 3.
Trong baI hoc nay chung foI gIoI fhIou don cho cac ban haI doI fuong chnh Ia
roquosf va rosponso.
huukhungyuhoo.com 3-11
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
Bai 5
OO TONG SKSSON
TRONG JSP

Trong bai truoc cbung ta sc /am qucn cac Joi tuong tbuong su Jung
trong qua trnb tbict kc trang J8P nbu Pcqucst, Pcsponsc. Trong bai nay
cbung ta ticp tuc /am oicc ooi Joi tuong 8cssion.

Nbung oan Jc cbinb sc Juoc Jc cap trong bai boc nay
9 oi tuong 8cssion.
9 Ung Jung Joi tuong 8cssion.

OO TONG SKSSON
KhI muon fruyon gIa frj fu frang frang vob nay sang frang vob khac frong mof phIon Iam vIoc fh su
dung dung doI fuong SossIon. oI fuong nay fhuoc Iop HffpSossIon.
hffp://java.sun.com/j2oo/sdk_1.3/fochdocs/apI/javax/sorvIof/hffp/HffpSossIon.hfmI
1.
1.1. Nhun dung mot phen lum vec
MoI khI co mof phIon Iam vIoc duoc fao ra, fh frnh chu vob so cap mof djnh danh Ia mof chuoI
bao gom cac ky fu va so cho phIon Iam vIoc do. Chang han, ban mo mof brovsor va goI frang jsp
fu vob sIfo, khI do phIon Iam vIoc duoc fao ra cung voI djnh danh duy nhaf.
KhI kof fhuc phIon Iam vIoc, djnh danh nay bj fhu IaI va phan phaf IaI cho phIon Iam vIoc khac
moI fao ra.
o Iay duoc djnh danh nay, ban su dung phuong fhuc gofId nhu v du 5-1.

<%@ page contentType="text/html; charset=UTF-8" %>
<html>
<head>
<title>JSP's Objects</title>
<META HTTP-EQUIV="Content-Type"
CONTENT="text/html ; charset=utf-8">
</head>
<body leftmargin="0" topmargin="0" >
<table>
<tr><td>
Identify ID: <%=session.getId()%>
</td></tr>
</table>
</body>
</html>

KhI nguoI su dung goI frang JSP nay fron frnh duyof gIa frj cua djnh danh frnh bay nhu hnh 4-
1.


huukhungyuhoo.com 3-1
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM

Hnh 5-1: jnh danh cua phIon Iam vIoc
1.2. Kho tuo vu gun gu tr{ cho sesson
KhI can fruyon gf fu frang JSP nay sang frang JSP khac, bang cach khoI fao df SossIon va gan
cho chung fhoI gIan fuong ung, sau do ban co fho fruy cap vao doI fuong nay frong frang JSP khac
frong cung phIon Iam vIoc.
o Iam dIou nay, ban su dung phuong fhuc sofVaIuo voI cu phap nhu sau:

session.putValue(ten session,gia tr);

V du sau khI cung cap usornamo/passvord va nhan nuf SubmIf fu frang IogIn.jsp nhu hnh 5-2,
frang IogIn_aufhonfIcafIon.jsp so duoc frIou goI.

Hnh 5-2: Trang IogIn.jsp
huukhungyuhoo.com 3-2
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
Nou usornamo Ia khang va passvord Ia 123456 fh frang myaccounf.jsp so duoc frIou goI. Truoc
khI frIou goI frang myaccounf.jsp, chung fa khoI fao mof so sossIon dung do su dung cho phIon Iam
vIoc nay chang han usorId, usornamo, fuIInamo, omaII nhu v du 5-2 |IogIn_aufhonfIcafIon.jsp).

<%
String username="";
String password="";
username= request.getParameter("username");
password= request.getParameter("password");
if (username.equals("khang")){
if(password.equals("123456")){
session.putValue("userid","123");
session.putValue("username",username);
session.putValue("fullname","huukhang.com");
session.putValue("email","admin@huukhang.com");
response.sendRedirect("myaccount.jsp");
}
else{
/*sai password*/
response.sendRedirect("login.jsp");
}
}
else{
/*sai user*/
response.sendRedirect("login.jsp");
}
%>

1.3. Luy gu tr{ tu sesson
Sau khI dang nhap fhanh cong, nhung doI fuong sossIon duoc fao ra, bang cach su dung phuong
fhuc gofVaIuo, ban co fho Iay gIa frj fu cac sossIon nay nhu v du 5-3 |myaccounf.jsp).


huukhungyuhoo.com 3-3
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM

Hnh 5-3: Iay gIa frj fu SossIon
o Iay gIa frj fu cac sossIon khaI bao frong frang IogIn_aufhonfIcafIon.jsp va frnh bay fron frang
myaccounf.jsp, ban khaI bao nhu v du 5-3.

<%@ page contentType="text/html; charset=UTF-8" %>
<html>
<head>
<title>JSP</title>
<LINK href="style.css" rel=stylesheet>
<LINK href="newstyle.css" rel=stylesheet>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html ; charset=utf-8">
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="100%" border="0" cellspacing="5" cellpadding="5">
<tr><td>
<h4>Welcome to JSP</h4>
</td></tr>
<tr><td><a href="logout.jsp">logout</a></td></tr>
<tr><td>userid: =<%=session.getValue("userid")%></td></tr>
<tr><td>username: =<%=session.getValue("username")%></td></tr>
<tr><td>fullname: =<%=session.getValue("fullname")%></td></tr>
<tr><td>email: =<%=session.getValue("email")%>
</td></tr>
</table>
</body>
</html>

1.4. Huy sesson
Sau khI khong su dung doI fuong sossIon, ban can su dung phuong fhuc do huy sossIon do fhay v
do chung fon faI, boI v nou chung khong su dung ma van fon fh vob sorvor van phaI quanI Iy.
Chang han, khI chung fa Iogouf khoI ung dung vobsIfo fh frang Iogouf.jsp so duoc fIou goI, ba72ng
cach su dung cac phuong fhuc romovoVaIuo v du 5-4.
huukhungyuhoo.com 3-4
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
<%
session.removeValue("userid");
session.removeValue("username");
session.removeValue("fullname");
session.removeValue("email");
response.sendRedirect("login.jsp");
%>


Nou ban frIou goI IaI frang frang myaccounf.jsp fron frnh duyof, fh kof qua frnh bay nhu hnh 5-
4.



Hnh 5-4: Huy cac sossIon
Nhu hnh fron, khI sossIon chua fao ra, nou ban fruy cap don gIa frj cua chung fh gIa frj do Ia
nuII, chnh v vay frong mof so frang baf buoc nguoI su dung phaI dang nhap roI moI su dung fh
ban can phaI kIom fra sossIon, nou sossIon bang nuII fh fro don frang IogIn.jsp.
Chang han frong fruong hop nay chung fa co v du 5-5, cho phop su dung khI nguoI su dung da
dang nhap, dIou nay co nghIa Ia sossIon co fon usorId phaI fon faI.

<%@ page contentType="text/html; charset=UTF-8" %>
<%
if (session.getValue("userid")==null)
response.sendRedirect("login.jsp");
%>
<html>
<head>
<title>JSP</title>
<LINK href="style.css" rel=stylesheet>
huukhungyuhoo.com 3-5
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
<LINK href="newstyle.css" rel=stylesheet>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html ; charset=utf-8">
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="100%" border="0" cellspacing="5" cellpadding="5">
<tr><td>
<h4>Welcome to JSP</h4>
</td></tr>
</table>
</body>
</html>

TOM TAT 2.
Trong baI hoc nay chung foI gIoI fhIou don cho cac ban doI fuong chnh Ia sossIon,
sau khI co doI fuong nay, ban co fho kof hop voI haI doI fuong roquosf va rosponso do
xay dung chuc nang dang nhap ho fhong.
huukhungyuhoo.com 3-6
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
Bai 6
PHONG THC VA
CHKN TAP TN

Kbi xay Jung ung Jung Wcb noi cbung oa ung Jung J8P noi ricng,
oicc tbong nbat boa giao Jicn /a Jicu can tbict, cbang ban moi trang J8P
cua ung Jung Jcu pbai co kicb tbuoc pban top, /cjt, rigbt, bottom oa tban
giong nbau. Tuong tu nbu oay moi jont cbu oa kicb tbuoc cbo tung pban noi
Jung cung /a Jicu ban pbai tbuc bicn Jc ung Jung mang tinb cbuycn
ngbicp bon
Ngoai ra, nbu nbung bai kc ticp cbung ta su Jung cbuoi kct noi bay
kbai bao Joi tuong Conncction su Jung trong moi trang, tat ca nbung Jicu
nay Jcu Jan Jcn oicc quan /y kbo kban kbi can tbay Joi mot trong nbung
pban /icn quan.
Nbung oan Jc cbinb sc Juoc Jc cap trong bai boc nay
9 Xay Jung tap tin Jjnb Jang noi Jung
9 Tbong nbat kicb tbuoc cua moi trang J8P
9 Kbai bao bam oa tbu tuc Jung cbung
9 8u Jung bam oa tbu tuc Jung cbung

1. XAY ONG TAP TN O|NH OANG NO ONG
KhI frnh bay noI dung fron frang HTML hay frang J8P, do fhong nhaf djnh dang chuoI frong fho
boJy hay fho Jio chang han ban can khaI bao fho sty/c frong fho <bcaJ>.

<:ty->
A
COLOF: =DDDt;
TFXTLFCOFATON: DcD-
}
A:Dc-r
COLOF: =DDDt;
TFXTLFCOFATON: oDc-riD-
}
A:iD
FONT'FCIT: rcc;
COLOF: r-c;
TFXTLFCOFATON: DcD-
}
A:i:it-c
FONT'FCIT: rcc;
COLOF: r;
TFXTLFCOFATON: DcD-
}
.tit-
FONT'FCIT: Dcr.;
FONT:7F: 22
}
.t-t
FONT: Ari, I--ti, :D::-ri1
}
huukhungyuhoo.com 3-1
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
<:ty->

Trong do, A fuong ung voI IIon kof |chuoI frong fho <a>) co djnh dang ung voI fruong hop IIon kof, dI
chuyon con chuof, chon IIon kof.

A
COLOF: =DDDt;
TFXTLFCOFATON: DcD-
}
A:Dc-r
COLOF: =DDDt;
TFXTLFCOFATON: oDc-riD-
}
A:iD
FONT'FCIT: rcc;
COLOF: r-c;
TFXTLFCOFATON: DcD-
}
A:i:it-c
FONT'FCIT: rcc;
COLOF: r;
TFXTLFCOFATON: DcD-
}

Chang han, chung fa khaI bao frang J8P voI noI dung duoc ap dung voI kIou djnh dang khaI bao
frong fho sty/c nhu vu du 6-1.
VI du 6-1: Khu buo the style

<c - cDt-DtTy-`t-tDt.; Dr:-tLTF` >
<Dt.>
<D-c>
<tit->:ty- trcD .:J<tit->
<:ty->
A
COLOF: =DDDt;
TFXTLFCOFATON: DcD-
}
A:Dc-r
COLOF: =DDDt;
TFXTLFCOFATON: oDc-riD-
}
A:iD
FONT'FCIT: rcc;
COLOF: r-c;
TFXTLFCOFATON: DcD-
}
A:i:it-c
FONT'FCIT: rcc;
COLOF: r;
TFXTLFCOFATON: DcD-
}
.tit-
FONT'FCIT: Dcr.;
FONT:7F: 22;
COLOF: =DDDt;
}
.t-t
FONT: Ari, I--ti, :D::-ri1
}
<:ty->
<D-c>
<rccy>
huukhungyuhoo.com 3-2
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
<D4>:ty- T<D4>
<TAFLF -:iDD -JcciDD
wictD`DD` rcrc-rD>
<TF>
<TL AiDtc ::tit->
*** QoD Tri :QL :-r-r 2DDD *** <TL>
<TF>
<TF>
<TL ::t-t>
<ci iDo:ti1y>
Ti. Di-o D i t, o DiDD, _oD tri,
ro r-:tcr-, i.crt -crt, tDi-t
-, triDD, td cD Dc t o _oD tri,
rD :c cd i-o, rc .t DcD tD. DD
cd i-o rD.
<r>:QL D-ticD<r>.<ci>
<TL>
<TF>
<TF><TL><Dr :i:- ccrr-c><TL<TF>
<TF><TL>'-c.- tc
< Dr-1`www.DooDD.c.` ::>
www.DooDD.c.<><TL
<TF>
<TAFLF>
<rccy>
<Dt.>

KhI frIou goI frang cx1.jsp fron frnh duyof, noI dung cua frang ucb duoc djnh dang fhoo fho sty/c
nhu hnh 6-1.


Hnh 6-1: Ap dung fho sfyIo
huukhungyuhoo.com 3-3
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
Tuong fu nhu vay khI ban muon fhong nhaf noI dung frong nhung fho khac cua mof frang ucb fh
khaI bao mof djnh dang frong fho sty/c. Tuy nhIon, khI daf fon frung voI fho HTML, moI fho do
frong frang so cung chung mof djnh dang. Chang han, ban khaI bao djnh dang cho fho tJ nhu sau:

TL
FONT: D Ari, I--ti, :D::-ri1
}

MoI noI dung frnh bay frong fho tJ so co djnh dang nhu fron. Nou ban muon co djnh dang khac fh
khaI bao fhuoc fnh c/ass cho fho tJ do, v du su dung djnh dang khac cho fho tJ:

<tc ::t-t>AFC<tc>

Thay v chuoI ABC so co djnh dang Ia FONT. 10px Aria/, Hc/octica, sans-scrij fh chung so co djnh
dang cua FONT. 11px Aria/, Hc/octica, sans-scrij.
Chu y rang, frong moI frang ucb ban phaI khaI bao fho sty/c va djnh nghIa fhong nhaf cho cac fho.
KhI co su fhay doI ban phaI fhay doI frong moI frang ucb. o su dung chung cho moI frang ucb frong
ung dung, ban can xay dung mof fap fIn sty/c, fap fIn duoc bIof don voI fon goI custom sty/c sbcct
|css).
af ky frang ucb nao frong ung dung, muon ap dung kIou djnh dang frong fap fIn css fh khaI bao
IIon kof fap fIn css bang fho /ink.
V du, chung fa khaI bao fap fIn sty/c.css bao gom cac djnh dang nhu v du 6-2.
VI du 6-2: Khu buo tup tn css

A
COLOF: =DDDt;
TFXTLFCOFATON: DcD-
}
A:Dc-r
COLOF: =DDDt;
TFXTLFCOFATON: oDc-riD-
}
A:iD
FONT'FCIT: rcc;
COLOF: r-c;
TFXTLFCOFATON: DcD-
}
A:i:it-c
FONT'FCIT: rcc;
COLOF: r;
TFXTLFCOFATON: DcD-
}
.tit-
FONT'FCIT: rcc;
FONT:7F: 4;
COLOF: =DDDt;
}
.t-t
FONT: Ari, I--ti, :D::-ri1
}

Sau do frong frang J8P, ban khaI bao IIon kof fap fIn nay bang fho /ink, nou muon ap dung djnh
dang nay frong moI fho HTML ban su dung fhuoc fnh c/ass nhu khaI bao djnh dang cua fho sty/c
ngay frong frang do nhu v du 6-3.
VI du 6-3: Khu buo su dung tup tn css
huukhungyuhoo.com 3-4
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM

<Dt.>
<D-c>
<tit->
'-c.- tc LiD :ty- :D--t Fi-
<tit->
<LNK Dr-1`:ty-.::` r-:ty-:D--t>
<\FTA Dtt-_oiCcDt-DtTy-
cDt-Dt`t-tDt.; Dr:-tot1`>
<D-c>
<rccy>
<D4>:ty- Fi-<D4>
<TAFLF -:iDD -JcciDD
wictD`DD` rcrc-rD>
<TF>
<TL AiDtc ::tit->
*** QoD Tri :QL :-r-r 2DDD *** <TL>
<TF>
<TF>
<TL ::t-t>
<ci iDo:ti1y>
Ti. Di-o D i t, o DiDD, _oD tri,
ro r-:tcr-, i.crt -crt, tDi-t
-, triDD, td cD Dc t o _oD tri,
rD :c cd i-o, rc .t DcD tD. DD
cd i-o rD.
<r>:QL D-ticD<r>.<ci>
<TL>
<TF>
<TF><TL><Dr :i:- ccrr-c><TL<TF>
<TF><TL>'-c.- tc
< Dr-1`www.DooDD.c.` ::>
www.DooDD.c.<><TL
<TF>
<TAFLF>
<rccy>
<Dt.>

TrIou goI frang cx.jsp fron frnh duyof nhu hnh 6-3, mau va kch fhuoc jont cung voI kIou chua cua
noI dung khong fhay doI so voI cx1.jsp, boI v phan fho sty/c duoc fach ra fhanh fap fIn sty/c.css, sau
do dung fho /ink do IIon kof fap fIn css nay vao frang jsp fro IaI.


huukhungyuhoo.com 3-5
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM

Hnh 6-3: IIon kof fap fIn css
Chu y rang, nou khaI bao fhuoc fnh cIass frong fho <tab/c> fh nhung noI dung frong fho <tab/c> so
co djnh dang tbco djnh dang khaI bao frong fhuoc fnh c/ass. Tuong fu, nou khaI bao fhuoc fnh c/ass
frong fho <tr> fh noI dung frong fho <fr> so co djnh dang gIong nhu djnh dang khaI bao frong fhong
fIn c/ass.
2. THONG NHAT KCH THOC CA MO TRANG JSP
KhI xay dung ung dung ucb chuyon nghIop, dIou dau fIon ban non quan fam Ia su fhong nhaf vo kch
fhuoc cua cac phan fron frang ucb. Iou nay co nghIa Ia khI nguoI su dung fhay doI frang ucb khI
duyof, phan top, /cjt, rigbt, bottom co kch fhuoc nhu nhau.
o Iam dIou nay, ban chIa frang ucb ra fhanh 5 phan: top, /cjt, rigbt, boJy va bottom.
Phan fop fhuong frnh bay cac fhuoc fnh nhu quan cao |bancr), /ogo |bIou fuong cua cong fy), mcnu
|fhuc don cua ung dung) va mof so fhong fIn khac.
Phan /cjt Ia fhong fIn vo cac mcnu phu hay con goI Ia mcnu cua mcnu chnh, bon canh mcnu con nay
frang ucb fhuong co cac IIon kof vo IIon ho, quang cao, mai/ing /ist |dang ky cmai/), goI don ban bo
|scnJ to jricnJ), ....
oI voI phan rigbt, fhuong Ia phan gIoI fhIou vo cac fhong dac bIof va quang cao, chang han doI voI
ung dung ban sach, phan rigbt fhuong Ia danh sach cac nhom sach ban chay, sap phaf hanh, ...
Phan bottom fhuong fhong fIn IIon Iac cua cong fy, chu nhan cua ucb sitc va ban quyon. NgoaI ra,
phan bottom doI khI Ia danh sach cac mcnu con khac.
Tom IaI, fuy fhuoc vao y fuong fhIof ko moI phan nhu fron bao gom cac fhuoc fnh ma nha fhIof ko
can frnh bay sao cho phu hop. Tuy nhIon, phan boJy Ia phan frnh bay noI dung chnh cua moI frang
ucb. NgoaI ra, fuy vao fung fruong hop cu fho, frang ucb co fho khong co phan /cjt va rigbt.
huukhungyuhoo.com 3-6
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
Nhu vay, chung fa so chIa frang ucb ra fhanh 5 phan, phan boJy chnh Ia phan chnh cua frang ucb
do, con 4 phan con IaI duoc chon vao khI co nhu cau.
Chang han, co nhung frang ucb do fhong fIn frnh bay frong phan boJy nhIou, non can khong gIa Ion
hon, ban co fho khong can su dung haI phan /cjt va rigbt.
o Iam dIou nay, fruoc fIon chung fa fhIof ko frang samp/c.jsp co 5 phan nhu hnh 6-3.



Hnh 6-3: Trang sampIo.jsp
-------------------------------------------------------------------------------------------
Lu y:
Tao mot tab/c gom J bang J cot oa kbai bao borJcr=1 Jc Jc canb /c sau Jo ban co tbc kbai bao /ai tbuoc
tinb nay bang 0.





Pban top oa bottom /a mot bang oa mcrgc J cot tbanb 1.
Bcn trong moi pban co tbc co mot bay nbicu tbc tab/c kbac.
Co tbc kbong co pban /cjt oa rigbt nbung bat buoc pban top oa bottom pbai co.
Ban co tbc su Jung cbicu rong cua tab/c tbco kicb tbuoc tuong Joi (% bay so cbl Jjnb, Joi ooi man bnb
600S00 tb cbicu rong tbuong su Jung /a 7S0, kbi nguoi su Jung cbon Jo pban giai cua man bnb /on
bon tb kicb tbuoc cua tab/c nay kbong tbay Joi, trong kbi Jo noi Jung sc pbu Jay man bnb kbi ban
kbai bao kicb tbuoc tbco 100%.
-------------------------------------------------------------------------------------------
o co gIao dIon nhu frang samp/c.jsp nhu fron, ban co fho khaI bao nhu v du 6-3.
VI du 6-3: No dung trung sumple.jsp

<Dt.>
<D-c>
<tit->
'-c.- tc DociD Fi-
<tit->
<LNK Dr-1`:ty-.::` r-:ty-:D--t>
<\FTA Dtt-_oiCcDt-DtTy-
cDt-Dt`t-tDt.; Dr:-tot1`>
huukhungyuhoo.com 3-?
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
<D-c>
<rccy rcttc.\riDD -1t\riDD
tc\riDD riDt\riDD>
<TAFLF -:iD2 -JcciD2
wictD`` rcrc-r iD-Dt-r>
<TF IFCIT`DD`>
<TL AiD-Dt-r c:D>
TOP
<TL>
<TF>
<TF IFCIT`2D`>
<TL AiDtc wictD`2D`>
LEFT
<TL>
<TL AiDtc wictD`tD`>
BODY
<TL>
<TL AiDtc wictD`2D`>
RIGHT
<TL>
<TF>
<TF IFCIT`cD`>
<TL c:D iD-Dt-r>
BOTTOM
<TL
<TF>
<TAFLF>
<rccy>
<Dt.>

Trong fruong hop ban muon co duong phan cach gIua moI phan bang imagc, ban co fho khaI bao IaI
frang samp/c.jsp co 5 hang va 5 cof nhu tcmp/atc.jsp nhu hnh 6-4.



Hnh 2-4: Phan cach co vIong
o frnh bay frang tcmpa/c.jsp nhu hnh 6-4, ban khaI bao noI dung frang nay nhu v du 6-4.
VI du 6-4: Khu buo templute.jsp
huukhungyuhoo.com 3-8
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM

<Dt.>
<D-c>
<tit->
'-c.- tc DociD Fi-
<tit->
<LNK Dr-1`:ty-.::` r-:ty-:D--t>
<\FTA Dtt-_oiCcDt-DtTy-
cDt-Dt`t-tDt.; Dr:-tot1`>
<D-c>
<rccy rcttc.\riDD -1t\riDD
tc\riDD riDt\riDD>
<TAFLF wictD`` rcrc-rD -:iDD
-JcciDD iD-Dt-r>
<TF IFCIT`DD`>
<TL AiD-Dt-r c:Dc>
TOP
<TL>
<TF>
<!---Kbai bao Juong pban cacb--->
<TF IFCIT``>
<TL c:Dc rccrry><TL>
<TF>
<TF IFCIT`2D`>
<TL AiDtc wictD`cD`>LEFT<TL>
<!---Kbai bao Juong pban cacb--->
<TL rccrry wictD``><TL>
<TL AiDtc wictD`4t`>BODY<TL>
<!---Kbai bao Juong pban cacb--->
<TL rccrry wictD``><TL>
<TL AiDtc wictD`cD`>RIGHT<TL>
<TF>
<!---Kbai bao Juong pban cacb--->
<TF IFCIT``>
<TL c:Dc rccrry><TL>
<TF>
<TF IFCIT`cD`>
<TL c:Dc iD-Dt-r>
BOTTOM
<TL
<TF>
<TAFLF>
<rccy>
<Dt.>

Sau do fach frang tcmp/atc.jsp nay fhanh 5 frang khac nhau duoc daf fon fuong ung Ia top.btm,
/cjt.btm, rigbt.btm va bottom.btm, frong do phan boJy fuong ung voI frang tcmp/atcs.jsp.
o khaI bao chon fap fIn frong frang jsp, ban su dung cu phap nhu sau:

<ciDoc- 1i-1i-D.->

Trong do frang tcmp/atcs.jsp khaI bao chon top.btm, /cjt.btm, rigbt.btm va bottom.btm nhu v du 6-5.
VI du 6-5: Khu buo chen tup tn trong templutes.jsp

<Dt.>
<D-c>
<tit->
'-c.- tc ILLKIANC.CO\
<tit->
huukhungyuhoo.com 3-9
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
<LNK Dr-1`:ty-.::` r-:ty-:D--t>
<\FTA Dtt-_oiCcDt-DtTy-
cDt-Dt`t-tDt.; Dr:-tot1`>
<D-c>
<rccy rcttc.\riDD -1t\riDD
tc\riDD riDt\riDD>
<TAFLF wictD`` rcrc-rD -:iDD
-JcciDD iD-Dt-r>
<TF IFCIT`DD`>
<TL AiD-Dt-r c:Dc>
<%@include file="top.htm"%>
<TL>
<TF>
<!---Kbai bao Juong pban cacb--->
<TF IFCIT``>
<TL c:Dc rccrry><TL>
<TF>
<TF IFCIT`2D`>
<TL AiDtc wictD`cD`>
<%@include file="left.htm"%>
<TL>
<!---Kbai bao Juong pban cacb--->
<TL rccrry wictD``><TL>
<TL AiDtc wictD`4t`>BODY<TL>
<!---Kbai bao Juong pban cacb--->
<TL rccrry wictD``><TL>
<TL AiDtc wictD`cD`>
<%@include file="right.htm"%>
<TL>
<TF>
<!---Kbai bao Juong pban cacb--->
<TF IFCIT``>
<TL c:Dc rccrry><TL>
<TF>
<TF IFCIT`cD`>
<TL c:Dc iD-Dt-r>
<%@include file="bottom.htm"%>
<TL
<TF>
<TAFLF>
<rccy>
<Dt.>

KhI frIou goI frang tcmp/atcs.jsp, noI dung cua 4 fang /cjt.btm, rigbt.btm, top.btm, bottom.btm chon
vao frang tcmp/atcs.jsp nhu hnh 6-5.


huukhungyuhoo.com 3-10
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
huukhungyuhoo.com 3-11

Hnh 6-5: Trang fompIafos.jsp sau khI chon
Trong do, noI dung cua frang top.btm djnh nghIa fuong fu nhu v du 6-5-1.
VI du 6-5-1: No dung trung top.htm

<TAFLF wictD`DD` rcrc-rD -:iDD
-JcciDD IFCIT`DD` iD-Dt-r>
<TF >
<TL wictD`cD` AiD-Dt-r>
LOCO
<TL>
<TL AiD-Dt-r>
FANNFF
<TL>
<TF>
<TF IFCIT``>
<TL c:D2 rccrry><TL>
<TF>
<TF IFCIT`2D` rccrr ::.-Do>
<TL wictD`cD` >
'-c.-
<TL>
<TL>
Ic.- ( :-rD ( CcDtt ( I-
<TL>
<TF>
<TAFLF>
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM

NoI dung cua fap fIn /cjt.btm duoc djnh nghIa fuong fu nhu v du 6-5-2.
VI du 6-5-2: No dung trung leIt.htm

<TAFLF wictD`DD` rcrc-rD -:iDD
-JcciDD IFCIT`DD` iD-Dt-r>
<TF >
<TL wictD`cD` AiD-Dt-r>
LFFT
<TL>
<TF>
<TAFLF>

Nou co su dung frang rIghf.hfm fh noI dung cua fap fIn nay duoc djnh nghIa fuong fu nhu v du 6-5-
3.
VI du 6-5-3: No dung trung rght.htm

<TAFLF wictD`DD` rcrc-rD -:iDD
-JcciDD IFCIT`DD` iD-Dt-r>
<TF >
<TL wictD`cD` AiD-Dt-r>
FFFF ALV
<TL>
<TF>
<TAFLF>

Tuong fu nhu vay, frang bottom.btm co noI dung nhu v du 6-5-4.
VI du 6-5-4: No dung trung bottom.htm

<TAFLF wictD`DD` rcrc-rD -:iDD
-JcciDD IFCIT`DD` iD-Dt-r>
<TF ::t-t>
<TL AiD-Dt-r>
ILLKIANC.CO\<rr>
CcyriDt 2DDD2DDc.
A FiDt: F-:-r-c.
<TL>
<TF>
<TAFLF>

Chu y rang, frong moI frang khaI bao chon khong co cac fho dong va mo btm/, boJy boI khI chon fh
noI dung cua fap fIn duoc chon so duoc chon vao fap fIn bj chon va frong fap fIn bj chon da co haI
fho nay.
Kjch ban frnh chu jsp ho fro cac fap fIn duoc chon voI cac fon mo rong nhu btm, jsp, inc, /ib, btm/.
o fhuc chaf cua vIoc khaI bao chon Ia chon doan ma frong fap fIn chon vao fap fIn bo chon, frong
fruong hop nay frang chon btm hay jsp dou gIong nhau do Ia Iy do faI sao cac frang chon o fron dou
co fon mo rong Ia btm.
Tuy nhIon, khI ban goI frang chon nay mof mnh v du tom.btm, nou bon frong co ma jsp fh ma do
khong duoc fhong djch. Nou nhung frang chon nay co nhu cau goI mof mnh fh ban co fho chuyon
chung fhanh frang jsp fhay v btm nhu da frnh bay.
Sau khI co duoc frang tcmp/atcs.jsp, ban co fho su dung frang nay Ia mau cho cac frang khac bang
cach saoc as fhanh cac frang jsp khac khI Iap frnh. KhI khaI bao chon fap fIn, ban co fho su dung
duong dan fuong doI hoac fuyof doI cua fap fIn chon so voI ap fIn bj chon.
huukhungyuhoo.com 3-12
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
3. KHA BAO HAM VA TH TC ONG CHNG
Sau khI khaI bao chon fap fIn fhanh mof fap fIn mau, chung fa co fho su dung fap fIn nay do saoc as
fhanh frang nhIou frang jsp khac.
Chang han, chung fa khaI bao mof frang jsp co fon common.jsp, frong fap fIn bao gom nhung phuong
fhuc su dung nhIou Ian frong cac frang jsp khac. V du chung fa khaI bao phuong fhuc nhan gIa frj
kIom fra, nou gIa frj nuII hf fra vo rong nhu v du 6-6.
VI du 6-6: No dung thu tuc getVul trong common.jsp

ori :triD -tV(:triD :trV,:triD c-1}

r-torD (:trVDo.c-1::trV};
}

Tuong fu nhu vay, chung fa khaI bao phuong fhuc nhan mof chuoI cha sSfr, chuoI con oIdSfr va chuoI
fhay fho novSfr nou fm fhay chuoI con, sau do fm kIom frong chuoI cha, nou fm fhay chuoI con fh
fhay fho chuoI fhay fho nhu v du 6-7.
VI du 6-?: No dung thu tuc repluceStrng trong common.jsp

ori :triD r--:triD(:triD ::tr,:triD cc:tr,:triD D-w:tr}

::tr(::trDo.``:::tr};
:triD :trVr::tr;
:triD t.:tr``;
:triD 1iD:tr``;
iDt :tc:D,-Dcc:D,:trL-DD;
wDi- (tro-}

:trL-D:trVr.-DtD(};
:tc:D;
-Dcc::trVr.iDc-O1(cc:tr,:tc:};
i1 (-Dcc:}
rr-;
t.:tr:trVr.:or:triD(:tc:,-Dcc:};
t.:trt.:tr.cDt(D-w:tr};

:trVr:trVr.:or:triD(-Dcc:+cc:tr.-DtD(}>::tr.-DtD(}.-Dcc::-
Dcc:+cc:tr.-DtD(},:trL-D};
1iD:tr1iD:tr.cDt(t.:tr};
:tc:-Dcc:;
}
1iD:tr1iD:tr.cDt(:trVr};
r-torD 1iD:tr;
}

Iuu y rang, khI khaI bao phuong fhuc frong JSP do dung chung ban su dung cap dau <%! %>
o su dung phuong fhuc nay, ban khaI bao cho fap fIn common.jsp vao frang jsp va goI cac phuong
fhuc nay nhu phuong fhuc duoc khaI bao ngay frong frang jsp do.
V du, chung fa khaI bao frang IogIn.jsp cho phop nguoI su dung nhap usornamo va passvord, sau do
submIf, frong frang IogIn_aufhonfIcafIon.jsp so Iay haI fhoI gIan nay bang cach su dung doI fuong
Roquosf. Tuy nhIon, frong fruong hop nguoI su dung nhap gIa frj co dau hay gIa frj Ia nuII fh kof
noI co so du IIou so phaf sInh IoI.
Chnh v vay frong fruong hop nay chung fa su dung phuong fhuc gofVaI va ropIacoSfrIng frong fap
fIn common.jsp do fhay fho nou fm fhay dau frong gIa frj vua Iay ra nhu v du 6-8.
huukhungyuhoo.com 3-13
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
VI du 6-8: Oung thu tuc repluceStrng trong common.jsp

<ciDoc- 1i-`c..cD.:`>
<
:triD o:-rD.-``;
:triD ::wcrc``;
o:-rD.- -tV(r-_o-:t.-tJr.-t-r(`o:-rD.-`},``};
::wcrc -tV(r-_o-:t.-tJr.-t-r(`::wcrc`},``};
o:-rD.- r--:triD(o:-rD.-,```,````};
::wcrc r--:triD(::wcrc,```,````};
i1 (o:-rD.-.-_o:(`DD`}}
i1(::wcrc.-_o:(`24ct`}}
r-:cD:-.:-DcF-cir-t(`.ycoDt.:`};
}
-:-
*:i ::wcrc*
r-:cD:-.:-DcF-cir-t(`ciD.:`};
}
}
-:-
*:i o:-r*
r-:cD:-.:-DcF-cir-t(`ciD.:`};
}
>


4. KKT CHONG
Trong baI nay chung fa fap frung fm hIou cach khaI bao fap fIn dung chung sau do chon vao frang
jsp.
NgoaI ra, ban fham khao chI fIof cac khaI bao bIon, phaf bIou, ham, fhu fuc frong fap fIn jsp, sau do
khaI bao chon va su dung cac khaI bao nay.
Trong baI ko fIop, chung fa fIop fuc fm hIou cach fuong fac voI co so du IIou.

huukhungyuhoo.com 3-14
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
Mon hoc: Juvu Server Puges

BA ?: JAVA OATABASK CONNKCTVTY

JavaSoff Inc gIoI fhIou JC |Java afabaso ConnocfIvIfy) cho phop
cac ung dung Java fruy cap vao co so du IIou. voI JC ban co fho cap
nhaf, fhom va fruy van du IIou baf ky.
o kof noI co so du IIou SQI Sorvor frong Java, chung fa co nhIou
cach ung voI nhIou phuong fhuc kof noI co so du IIou, frong phan nay
chung fa fap frung fm hIou cach kof noI co so du IIou SQI Sorvor fu Java
bang cau noI JC-OC va cac goI ho fro khac.

Nhung van do chnh so duoc do cap frong baI hoc nay
9 CIoI fhIou JC API
9 Cac doI fuong kof noI co so du IIou.
9 KhaI bao OC.
9 Su dung cau noI JC-OC
9 Truy van, cap nhaf, fhom, xoa du IIou

1. GO THK JOBC AP
JC API |AppIIcafIon ProgrammIng Inforfaco) Ia mof fap daf fa cho phop djnh nghIa Iam fho
nao do Java kof noI voI co so du IIou. JC API duoc phaf frIon boI cong fy JavaSoff. NhIou khaI
nIom cua JC API duoc vay muon fu cac faI nguyon khac nhu OC |Opon afabaso
ConnocfIvIfy) cua MIcrosoff.
1.1.
1.2.






TrInh deu khen cuu JOBC
JC API djnh nghIa do fho hIon du IIou nhu fho nao, fhuc fhI fap Ionh do fhom, xoa hay cap
nhaf du IIou nhu fho nao fu you cau cua nguoI su dung.
Sun phum cuu JOBC
San pham cua JC bao gom ba IoaI chnh Ia goI java.sqI, Tosf suIfo, cau noI JC-OC va
java.sqI.packago.
JC API Ia fap cac Inforfaco va cIass cho phop kof noI co so du IIou, chung chua dung fong goI
java.sqI va nhung Inforfaco nay bao gom:
CaIIabIoSfafomonf: Chua dung cac phuong fhuc do fhuc fhI fhu fuc SQI co ho fro cac fham
so In va Ouf.
ConnocfIon: ao fr va fhoo gIoI kof noI co so du IIou.
afabasoMofaafa: Cung cap cac fhong fIn cua co so du IIou.
rIvor: Tao ra doI fuong kof noI.
ProparoSfafomonf: Ion djch phaf bIou SQI fruoc khI fhuc fhI.
RosuIfSof: Cung cap cac phuong fhuc do fruy cap du IIou fu phaf bIou SQI.

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM


1.2.1.
1.2.2.
1.3.
2.
RosuIfSofMofaafa: Thu fhap fhong fIn sIou du IIou phu hop voI doI fuong RosuIfSof cuoI
cung.
Sfafomonf: Thuc fhI phaf bIou SQI va fruy van du IIou fra vo fu doI fuong RosuIfSof.
Test Sute
Tosf SuIfo dung do kIom fra cac chuc nang cua frnh dIou khIon JC, no bao dam rang faf
ca phuong fhuc va Iop caI daf frong JC API duoc caI daf.
Cuu no JOBC-OOBC
Cau noI JC-OC Ia frnh dIou khIon JC cho phop chuong frnh Java su dung OC
do kof noI co so du IIou. Trong fruong hop nay chung fa su dung OC cua ho dIou hanh
WIndovs do kof noI co so du IIou WIndovs ho fro.
Cuc trInh deu khen JOBC
JC rIvor bao gom 4 IoaI chnh: JC-OC rIdgo, NafIvo API Java, JC Nofvork va
NafIvo ProfocoI.
CAC OO TONG KKT NO CO SO O LK
Nhu gIoI hfIou o fron, chung fa so co 3 doI fuong chnh do Iam vIoc voI co so du IIou Ia ConnocfIon,
Sfafomonf va RosuIfSof.
Truoc khI su dung cac doI fuong nay, ban phaI khaI bao Imporf java.sqI.` va khaI bao frnh dIou
khIon JdbcOC nhu sau:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

2.1.
2.1.1.
2.1.2.
Connecton
ConnocfIon Ia doI fuong dung do mo kof noI co so du IIou bang frnh dIou khIon JC, bang
cach su dung phuong fhuc rIvorManagor.gofConnocfIon cua doI fuong ConnocfIon ban co fho
mo kof noI co so du IIou voI IoaI co so du IIou cung voI cac fham so khac.
Khu buo
KhaI bao doI fuong ConnocfIon, ban su dung cu phap nhu sau:

Connection con =
DriverManager.getConnection("jdbc:odbc:Northwind","hocvien","");

Hay

Connection con = null;
con =
DriverManager.getConnection("jdbc:odbc:Northwind","hocvien","");

Tuo do tuong Stutement
Sau khI mo kof noI co so du IIou bang doI fuong ConnocfIon, ban co fho su dung phuong fhuc
croafoSfafomonf do fra vo doI fuong Sfafomonf bang cu phap:

con.createStatement();


Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
2.1.3.
2.1.4.
2.2.
2.2.1.
2.2.2.
2.2.3.
2.2.4.
2.3.
Oong ket no
o dong kof noI co so du IIou, ban su dung cu phap:

con.close();

Gu phong ket no
Tuong fu nhu fron, khI khong co nhu cau su dung doI fuong connocfIon, ban can huy doI
fuong nay do gIaI phong bo nho ma doI fuong da chIom.

con.dispose();

Stutement
oI fuong Sfafamonf dung do fhuc fhI phaf bIou SQI dung cho hanh dong fruy van va cap nhaf,
fhay doI xoa du IIou.
Khu buo
KhaI bao doI fuong Sfafomonf, ban su dung cu phap nhu sau:

Statement st = con.createStatement();

Hay

Statement st = null;
st = con.createStatement();

Thuc th phut beu SQL
Sau khI mo kof noI co so du IIou bang doI fuong ConnocfIon va khaI bao doI fuong Sfafomonf,
ban co fho su dung phuong fhuc oxocufo!pdafo do fhuc fhI phaf bIou SQI dang hanh dong:

st.executeUpdate(sql);

Hay khaI bao bIon Inf do nhan so mau fIn duoc fhuc fhI

int records= st.executeUpdate(sql);

Oong do tuong
o dong kof noI co so du IIou, ban su dung cu phap:

st.close();

Gu phong do tuong
Tuong fu nhu frong fruong hop doI fuong connocfIon, khI khong co nhu cau su dung doI fuong
sfafomonf, ban can huy doI fuong nay do gIaI phong bo nho ma doI fuong da chIom.

st.dispose();

ResultSet
oI fuong RosuIfSof nam gIu mof fap du IIou cho phop ban fhao fac fron fap du IIou bang cac
phuong fhuc va fhuoc fnh cua no.

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
2.3.1.
2.3.2.
2.3.3.
2.3.4.
Khu buo
KhaI bao doI fuong RosuIfSof, ban su dung cu phap nhu sau:

ResultSet rs = st.executeQuery(sql);

Hay

ResultSet rs = null;
// hoac ResultSet rs;
rs= st.executeQuery(sql);

Ooc du leu tu do tuong ResultSet
Sau khI mo kof noI co so du IIou bang doI fuong ConnocfIon, ban co fho su dung phuong fhuc
croafoSfafomonf do fra vo doI fuong Sfafomonf, ban co fho doc fap du IIou do dIon vao doI
fuong RosuIfSof va co fho doc doI fuong bang phuong fhuc noxf|) nhu sau:

rs.next()

Nou can kIom fra doI fuong fon faI mau fIn hay khong, ban co fho su dung phaf bIou oIf nhu
sau:

if(rs.next())
{

}

Trong fruong hop duyof fung mau fIn bon frong doI fuong, ban su dung phaf bIou vhIIo nhu
sau:

while(rs.next())
{

}

o doc gIa frj fu fIoId, ban su dung phuong fhuc cua doI fuong nay, chang han doI voI fruong
hop nay chung fa su dung phuong fhuc gofSfrIng|fIoIdnamo) nhu sau:

string x=rs.getString("CustomerID")


Oong do tuong ResultSet
o dong doI fuong RosuIfSof, ban su dung cu phap:

rst.close();

Gu phong do tuong ResultSet
Tuong fu nhu fron, khI khong co nhu cau su dung doI fuong RosuIfSof, ban can huy doI fuong
nay do gIaI phong bo nho ma doI fuong da chIom.

rst.dispose();


Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
3. KHA BAO OOBC
o su dung OC frong khaI bao cau noI JC-OC, fruoc fIon ban khaI bao frnh dIou khIon
frong OC. o Iam dIou nay, ban chon OC frong CnfroI panoI hay fu AdmInIsfrafIvo TooIs,
cua so xuaf hIon nhu hnh 9-1 sau:



Hnh 9-1: Tao afa Sourco Namo
Chon vao SN Sysfom 1 Add do fhom fon fham chIou, cua so xuaf hIon you cau ban nhap fon |so
su dung frong khaI bao) va chI djnh sorvor |fruong hop nay dung dau . fuong duong voI SQI cua
may cuc bo) nhu hnh 9-2.
uoc ko fIop chon vao daf quyon kof noI co so du IIou bang SQI hay WIndovs, frong fruong hop
nay chung fa chon vao fuy chon fhu haI nhu hnh 9-3. KhI chon vao fuy chon nay, ban can cung
cap usornamo va passvord do djnh nghIa co so du IIou SQ Sorvor.
Nou cac fham so fron cung cap hop Io, chon Noxf cua so ko fIop xuaf hIon nhu hnh 9-4 you cau
ban chon fon co so du IIou can Iam vIoc. Iuu y rang, co so du IIou mac djnh chnh Ia co so du IIou
khaI bao mac djnh frong SQI Sorvor khI nguoI su dung voI usornamo do duoc fao ra.
Chon Noxf va don buoc cuoI cung, ban co fho kIom fra kof noI co so du IIou vua chon co fhanh
cong hay khong bang cach nhan vao nuf Tosf ConnocIfon nhu hnh 9-5.

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM

Hnh 9-2: KhaI bao SN



Hnh 9-3: Nhap usornamo va passvord


Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM


Hnh 9-4: Chon fon co so du IIou

Hnh 9-5: KIom fra kof noI co so du IIou

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
4. S ONG CA NO JOBC-OOBC
Sau khI khaI bao xong OC voI fon chI djnh, gIa su frong fruong hop nay chung fa chon fon SQI
voI co so du IIou NorfhvInd cung voI faI khoan sa va passvord Ia sa.

try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con =
DriverManager.getConnection("jdbc:odbc:SQL","sa","sa");
...
}
catch(Exception e)
{
System.out.println("Error : " + e);
}
}

5. S ONG OO TONG CONNKCTON, STATKMKNT VA RKSLTSKT
5.1. Su dung phuong thuc executeQuery
Tro IaI fap fIn java, ban co fho khaI bao do kof noI co so du IIou va fruy van du IIou ban co fho
khaI bao va su dung phuong fhuc oxocufoQuory va doI fuong RosuIfsof nhu v du sau:

...
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con =
DriverManager.getConnection("jdbc:odbc:SQL","sa","sa");
Statement st = con.createStatement();
String sql = "Select * from Customers";
ResultSet rs = st.executeQuery(sql);

while(rs.next())
{
out.println(rs.getString("CustomerID"));
}
con.close();
}
catch(Exception e)
{
out.println("Error : " + e);
}
}
...
Chang han, chung fa fham khao v du vo chuc nang dang nhap ho fhong bang cach su dung
OC-JC nhu sau:

<%@ page import="java.sql.*" %>
<%@ include file="common.jsp"%>
<%
int err=0;
String userid="";
String username="";
String email="";
String password="";
String fullname="";
try{
Connection cn;
Statement smt;
ResultSet rst;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
cn = DriverManager.getConnection(odbc,sysuser,syspwd);
smt = cn.createStatement();

username= request.getParameter("username");
username=replaceString(username,"'", "''");
session.putValue("username",username);
password= request.getParameter("password");
String strSQL="";
String pwd="";
strSQL="select * from tblusers where username = '" + username + "'";
rst=smt.executeQuery(strSQL);

if (rst.next()){
userid= rst.getString("UserID");
pwd=rst.getString("Password");
fullname= rst.getString("Fullname");
email= rst.getString("Email");
if(pwd.equals(password)){
session.putValue("userid",userid);
session.putValue("email",email);
session.putValue("fullname",fullname);
response.sendRedirect("myaccount.jsp");
}
else{
/*sai password*/
session.putValue("userid","0");
response.sendRedirect("login.jsp");
}
}
else{
/*sai user*/
session.putValue("userid","-1");
response.sendRedirect("login.jsp");
}
smt.close();
cn.close();
}
catch (Exception e){
/*sai ket noi*/
session.putValue("userid","-2");
out.println(e);
response.sendRedirect("login.jsp");
}


%>
Tu frang IogIn.jsp, nguoI su dung nhap usornamo/passvord va nhan OK, ban frIou goI frang
IogIn_aufhonfIcafIon.jsp, bang cach su dung 3 doI fuong ConnocfIon, Sfafomonf va RosuIfsof do
kof noI co so du IIou va kIom fra. Nou usornamo/passvord hop Io fh frang myaccounf.jsp so
duoc frIou goI, nou khong chung fa so fro vo frang IogIn.jsp.
5.2. Su dung phuong thuc executeNonQuery
Trong fruong hop fhom hay cap nhaf, fhom, xoa du IIou hay fhuc fhI SP ban su dung phuong
fhuc oxocufo!pdafo, ban co fho khaI bao nhu v du sau:

try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con =
DriverManager.getConnection("jdbc:odbc:SQL","sa","sa");
Statement st = con.createStatement();
String sql = "Delete from Customers where Country=Vietnam";
int records = st.executeUpdate(sql);

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
out.println("Effected records : " + records.ToString());
con.close();
}
catch(Exception e)
{
out.println("Error : " + e);
}
}

Chang han, chung fa khaI bao frang fhom.jsp do fhom mau fIn vao bang fbICafogorIos nhu sau:

%@ page import="java.sql.*" %>
<%@ include file="common.jsp"%>
<%
try{
Connection cn;
Statement smt;
ResultSet rst;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cn = DriverManager.getConnection(odbc,sysuser,syspwd);
smt = cn.createStatement();
String strSQL="";
strSQL="insert into tblCategories values('ABC')";
smt.executeNonQuery(strSQL);
smt.close();
cn.close();
}
catch (Exception e){
/*sai ket noi*/
out.println(e);
}
%>

6. KKT LAN
Trong baI nay, chung fa fm hIou JC API, cac doI fuong Iam vIoc voI co so du IIou, khaI bao
OC va cac phuong fhuc cua cac doI fuong ConnocfIon, Sfafomonf va RosuIfSof.
Trong baI ko fIop chung fa fIop fuc fm hIou vo cac cach frnh bay du IIou bang 3 doI fuong fron
voI co so du IIou SQI Sorvor.


Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
Mon hoc: Juvu Server Puges

BA 8: THKM, XOA, CAP NHAT O LK

Sau khI chung fa da Iam quon voI JC |Java afabaso
ConnocfIvIfy), ban co fho su dung cau noI JC-OC hay cac goI kof
noI khac do xoa, cap nhaf, fhom va fruy van du IIou baf ky.
Nhung van do chnh so duoc do cap frong baI hoc nay
9 Thom du IIou
9 Xoa du IIou
9 Cap nhaf du IIou
9 Thuc fhI fhu fuc noI faI cua SQI Sorvor

1. THKM O LK
o fhom mau fIn vao bang du IIou SQI Sorvor, ban su dung phuong fhuc oxocufo!pdafo nhu v
du frang Insorf.jsp sau:

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import="java.sql.*" %>
<%@ include file="common.jsp"%>
<html>
<head>
<title>Them mau tin vao c s d lieu trong JSP</title>
<LINK href="style.css" rel=stylesheet>
<LINK href="newstyle.css" rel=stylesheet>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html ; charset=utf-8">
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<%
boolean isok=false;
try{
Connection cn;
Statement smt;
ResultSet rst;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cn = DriverManager.getConnection(odbc,sysuser,syspwd);
smt = cn.createStatement();
String strSQL="";
strSQL="insert into tblCategories values('Database')";
smt.executeUpdate(strSQL);
isok=true;
smt.close();
cn.close();
}
catch (Exception e)
{
/*sai ket noi*/
out.println(e);
isok=false;
}
if( isok)
out.println("Them mau tin thanh cong");
else
out.println("Them mau tin khong thanh cong ");

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
%>

</body>
</html>

2. CAP NHAT O LK
Trong fruong hop cap nhaf du IIou cung fuong fu nhu fhom mau fIn, ban su dung phuong fhuc
oxocufo!pdafo do fhuc fhI phaf bIou SQI dang !pdafo. Chang han, chung fa fham khao v du vo
cap nhaf du IIou nhu frang updafo.jsp sau:

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import="java.sql.*" %>
<%@ include file="common.jsp"%>
<html>
<head>
<title>Cap nhat mau tin vao c s d lieu trong JSP</title>
<LINK href="style.css" rel=stylesheet>
<LINK href="newstyle.css" rel=stylesheet>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html ; charset=utf-8">
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<%
boolean isok=false;
int j=0;
try{
Connection cn;
Statement smt;
ResultSet rst;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cn = DriverManager.getConnection(odbc,sysuser,syspwd);
smt = cn.createStatement();
String strSQL="";
strSQL="update tblCategories set CateName='Databases' "
strSQL+= " where CateID=41";
j= smt.executeUpdate(strSQL);
isok=true;
smt.close();
cn.close();
}
catch (Exception e)
{
/*sai ket noi*/
out.println(e);
isok=false;
}
if( isok)
out.println("Cap nhat " + j + " mau tin thanh cong");
else
out.println("Cap nhat mau tin khong thanh cong ");
%>

</body>
</html>

3. XOA MA TN
Trong fruong hop xoa mau fIn frong co so du IIou ban cung su dung phuong fhuc oxocufo!pdafo
nhu frang doIofo.jsp sau:

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import="java.sql.*" %>

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
<%@ include file="common.jsp"%>
<html>
<head>
<title>Xoa mau tin vao c s d lieu trong JSP</title>
<LINK href="style.css" rel=stylesheet>
<LINK href="newstyle.css" rel=stylesheet>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html ; charset=utf-8">
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<%
boolean isok=false;
int j=0;
try{
Connection cn;
Statement smt;
ResultSet rst;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cn = DriverManager.getConnection(odbc,sysuser,syspwd);
smt = cn.createStatement();
String strSQL="";
strSQL="delete from tblCategories where CateID>=30 ";
j= smt.executeUpdate(strSQL);
isok=true;
smt.close();
cn.close();
}
catch (Exception e)
{
/*sai ket noi*/
out.println(e);
isok=false;
}
if( isok)
out.println("Xoa " + j + " mau tin thanh cong");
else
out.println("Xoa mau tin khong thanh cong ");
%>

</body>
</html>


4. THC TH TH TC NO TA CA SQL SKRVKR
4.1. Thu tuc khong co gu tr{ tru ve
an co fho fhuc fhI mof fhu fuc noI faI khong co gu tr{ tru ve cua SQI Sorvor cung nhu mof
phaf bIou SQI dang hanh dong, chang han chung fa co fhu fuc fhom mau fIn vao fbICafogorIos
nhu frang procoduro.jsp sau:

create proc AddCategories
@name nvarchar(50)
as
Insert into tblCategories values(@name)


Iuu y rang, khI goI fhu fuc nay frong SQI Sorvor ban su dung cu phap nhu sau:

AddCategories Phan Tich


Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
Sau do, fu frang JSP ban khaI bao do fhuc fhI fhu fuc nay nhu sau:

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import="java.sql.*" %>
<%@ include file="common.jsp"%>
<html>
<head>
<title>Them mau tin vao c s d lieu trong JSP</title>
<LINK href="style.css" rel=stylesheet>
<LINK href="newstyle.css" rel=stylesheet>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html ; charset=utf-8">
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<%
boolean isok=false;
int j=0;
try{
Connection cn;
Statement smt;
ResultSet rst;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cn = DriverManager.getConnection(odbc,sysuser,syspwd);
smt = cn.createStatement();
String myName ="Phan Tich";
String strSQL="";
strSQL="AddCategories '" + myName +"'";
j= smt.executeUpdate(strSQL);
isok=true;
smt.close();
cn.close();
}
catch (Exception e)
{
/*sai ket noi*/
out.println(e);
isok=false;
}
if( isok)
out.println("Them " + j + " mau tin thanh cong");
else
out.println("Them mau tin khong thanh cong ");
%>

</body>
</html>

4.2. Thuc th thu tuc co gu tr{ tru ve
an co fho fhuc fhI mof fhu fuc noI faI co gu tr{ tru ve cua SQI Sorvor cung nhu mof phaf
bIou SQI dang SoIocf, chang han chung fa co fhu fuc fhom mau fIn vao fbICafogorIos va Iay so
fu dong Ia ma cua Cafogory do phaf sInh nhu frang procodurovIfhvaIuo.jsp sau:

create proc getCategoryID
@name nvarchar(50)
as
insert into tblCategories values(@name)
select @@identity as No


Iuu y rang, khI goI fhu fuc nay frong SQI Sorvor ban su dung cu phap nhu sau:

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM

getCategoryID Phan Tich He Thong

Th kof qua fra vo Ia so fu dong fuong ung voI ma Cafogory. Sau do, fu frang JSP ban khaI bao
do fhuc fhI fhu fuc nay bang doI fuong RosuIfSof nhu frang procodurovIfhvaIuo.jsp sau:

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import="java.sql.*" %>
<%@ include file="common.jsp"%>
<html>
<head>
<title>Them mau tin vao c s d lieu trong JSP</title>
<LINK href="style.css" rel=stylesheet>
<LINK href="newstyle.css" rel=stylesheet>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html ; charset=utf-8">
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<%
boolean isok=false;
int j=0;
try{
Connection cn;
Statement smt;
ResultSet rst;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cn = DriverManager.getConnection(odbc,sysuser,syspwd);
smt = cn.createStatement();
String myName ="Phan Tich He Thong";
String strSQL="";
strSQL="getCategoryID '" + myName +"'";
rst= smt.executeQuery(strSQL);
if (rst.next())
j=rst.getInt("No");
isok=true;
smt.close();
cn.close();
}
catch (Exception e)
{
/*sai ket noi*/
out.println(e);
isok=false;
}
if( isok)
out.println("CategoryID is " + j);
else
out.println("Them mau tin khong thanh cong ");
%>

</body>
</html>

4.3. Thuc th thu tuc co gu tr{ tru ve lu tup du leu
an co fho fhuc fhI mof fhu fuc noI faI co gu tr{ tru ve lu mot tup du leu cua SQI Sorvor
cung nhu mof phaf bIou SQI dang SoIocf, chang han chung fa co fhu fuc fhuc fhI nhung hanh
dong nao do, sau do IIof ko mau fIn cua bang fbICafogorIos nhu frang procodurovIfhrosuIfsof.jsp
sau:

create proc getResultset
@id int

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
as
--Nhieu tnh toan va hanh ong ay
select * from tblCategories where CateID>@id


Iuu y rang, khI goI fhu fuc nay frong SQI Sorvor ban su dung cu phap nhu sau:

getResultset 20

Th kof qua fra vo Ia danh sach mau fIn co ma Cafogory Ion hon 20. Sau do, fu frang JSP ban
khaI bao do fhuc fhI fhu fuc nay bang doI fuong RosuIfSof nhu frang procodurovIfhrosuIsof.jsp
sau:

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import="java.sql.*" %>
<%@ include file="common.jsp"%>
<html>
<head>
<title>Liet ke mau tin vao c s d lieu trong JSP</title>
<LINK href="style.css" rel=stylesheet>
<LINK href="newstyle.css" rel=stylesheet>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html ; charset=utf-8">
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<%
boolean isok=false;
int j=0;
try{
Connection cn;
Statement smt;
ResultSet rst;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cn = DriverManager.getConnection(odbc,sysuser,syspwd);
smt = cn.createStatement();
String strSQL="";
strSQL="getResultset '" + j +"'";
rst=smt.executeQuery(strSQL);
while(rst.next())
{
out.println(rst.getString("CateID")+"-");
out.println(rst.getString("CateName"));
out.println("<br>");
}
isok=true;
smt.close();
cn.close();
}
catch (Exception e)
{
/*sai ket noi*/
out.println(e);
isok=false;
}
if(!isok)
out.println("Liet ke mau tin khong thanh cong ");
%>

</body>
</html>


Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
5. LKT KK O LK THKO TY CHON
ang cach IIof ko danh sach cua bang co quan ho cha, cho phop nguoI su dung chon mof phan fu,
ban co fho IIof ko danh sach cac mau fIn co quan ho frong bang co quan ho N. o Iam dIou nay,
fruoc fIon ban IIof ko danh sach frong bang fbICafogorIos fron fho soIocf, sau do moI Ian nguoI su
dung chon mof CafogoryI fh ban IIof ko danh sach cac mau fIn frong bang fbISubCafogorIos nhu
v du frang choosoandshov.jsp.

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import="java.sql.*" %>
<%@ include file="common.jsp"%>
<html>
<head>
<title>Liet ke mau tin trong JSP</title>
<LINK href="style.css" rel=stylesheet>
<LINK href="newstyle.css" rel=stylesheet>
<META HTTP-EQUIV="Content-Type"
CONTENT="text/html ; charset=utf-8">
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<br>
<form action=chooseandshow.jsp method=post name=form1>
Category: <select name=cateid onchange="document.form1.submit();">
<option value=''></option>
<%
//Lay gia tr t the select co ten cateid neu co submit
String cateid=request.getParameter("cateid");
Connection cn;
Statement smt;
ResultSet rst=null;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cn = DriverManager.getConnection(odbc,sysuser,syspwd);
smt = cn.createStatement();
try{
// Liet ke danh sach Category trong the select co ten cateid
String strSQL="select * from tblCategories";
rst=smt.executeQuery(strSQL);
while(rst.next())
{
String id=rst.getString("CateID") ;
out.println("<option value='" + id + "' ");
if(cateid.toString().equals(id))
out.println(" selected");
out.println(">");
out.println(rst.getString("CateName"));
out.println("</option>");
}
}
catch (Exception e)
{
/*sai ket noi*/
out.println(e);
}
out.println("</select></form></br>");
rst.close();
//Neu co submit th liet danh sach subcategory theo cateid
if(cateid!=null)
{
int j=0;
try{

String strSQL="";
strSQL="select * from tblSubCategories Where cateid='" + cateid +"'";

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
rst=smt.executeQuery(strSQL);
while(rst.next())
{
j++;
out.println(rst.getString("SubCateID")+"-");
out.println(rst.getString("SubCateName"));
out.println("<br>");
}
}
catch (Exception e)
{
/*sai ket noi*/
out.println(e);
}
rst.close();
if(j==0)
out.println("SubCategory not found!");
}
smt.close();
cn.close();
%>
</body>
</html>


6. KKT LAN
Trong baI nay, chung fa fm hIou frnh bay du IIou, fhom, xoa, cap nhaf va fhuc fhI fhu fuc noI faI
SQI Sorvor bang 3 doI fuong ConnocfIon, Sfafomonf va RosuIfSof voI co so du IIou SQI Sorvor.


Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
Mon hoc: Juvu Server Puges

BA 9: THKM, XOA, CAP NHAT O LK

Sau khI chung fa da Iam quon voI fhao fac co so du IIou, frong baI
nay chung fa fIop fuc fm hIou xay dung chuc nang dang nhap ho fhong
ung dung.
Nhung van do chnh so duoc do cap frong baI hoc nay
9 Mo hnh chuc nang dang nhap
9 IogIn, Trang chnh va Iogouf

1. MO HNH CHC NANG OANG NHAP
Rong moI ung dung Wob, nou cho phop nguoI su dung dang nhap ho fhong ban dou phaI su
dung frang IogIn, frang chnh sau khI dang nhap fhanh cong va frang Iogouf fhoo mo hnh sau.
























ogIn
!sornamo va
Passvord
KhoI fao mof
so SossIon
afabaso
VaIIdafo
ang nhap fhanh cong
CIIonf
VaIIdafo
No
Yos
Iogouf
afabaso
Huy faf ca
SossIon

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
1. NguoI su dung nhap usornamo va passvord.
2. Nhan nuf IogIn.
3. KIom fra fron cIIonf |JavaScrIpf) nguoI su dung da nhap usornamo |omaII) va Passvord |nou
baf buoc phaI co Passvord). Nou usornamo va passvord hop Io fh nhay don buoc 4, nguoc
IaI fro vo buoc 1.
4. Kof noI co so du IIou va kIom fra usornamo co fon faI hay khong7
Nou fon faI fh so sanh Passvord

2.
Nou frung Passvord fh khoI fao mof so SossIon can fhIof va fro don frang chnh cua
faI koan nguoI su dung.
Nguoc IaI fh fro vo buoc 1 voI fhong bao SaI passvord.
Trong fruong hop khong fon faI fh fro vo buoc 1 voI fhong bao Khong fon faI
usornamo.
5. Sau khI dang nhap fhanh cong, nou nguoI su dung Iogouf fh huy faf ca cac SossIon da fao
ra va fro vo buoc 1.

Iuu y: ua vao dau chung fa frnh bay chuoI fhong bao frong frang IogIn.
1. Ian dau fIon hay sau khI Iogouf nou nguoI su dung goI frang IogIn fh chung fa fhong bao
XIn vuI Iong cung cap usornamo va passvord do dang nhap ho fhong.
2. Trong fruong hop saI passvord ma goI IaI frang IogIn fh chung fa fhong bao SaI
passvord, xIn vuI Iong nhap IaI passvord.
3. Tuong fu nhu vay, khI kIom fra khong fm fhay usornamo ma goI IaI frang IogIn fh chung
fa fhong bao Khong fon faI usornamo, xIn vuI Iong nhap IaI usornamo.
Nhu vay, chung fa dua va sossIon co fon usorId, nou dang nhap fhanh cong fh sossIon co gIa frj
Ia so Id cua nguoI su dung. Trong fruong hop saI passvord fh chung fa gan gIa frj cho sossIon
nay Ia 0, nou usornamo khong fon faI fh gIa frj gan Ia 1. KhI IoI phaf sInh fh gan gIa frj Ia -
2.

LOGN, TRANG CHNH VA LOGOT
2.1. Trung LOGN
o xay dung frang IogIn, ban khaI bao fhanh ba phan doan, fruoc fIon Ia khaI bao doan
JavaScrIpf do kIom fra usornamo / passvord nhu v du sau:

<script language="JavaScript">
function checkinput(){
if(document.form1.username.value==""){
alert("Xin vui long nhap username");
document.form1.username.focus();
return false;
}
if(document.form1.password.value=="" ){
alert("Xin vui long nhap password");
document.form1.password.focus();
return false;
}


Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
return true;
}
</script>

Sau do, dua vao gIa frj cua sossIon co fon usorId, ban co fho fhong bao chuoI fhong bao nhu sau:

<%
String userid=getVal((String)session.getValue("userid"),"");
String err="Xin vui long nhap username va password";
if(userid.equals("0")){
err="<font color=\"#FF0000\">Sai password,Xin vui lng nhap
password</font>";}
if(userid.equals("-1")){
err="<font color=\"#FF0000\">Sai username,Xin vui lng nhap
username</font>";}
if(userid.equals("-2")){
err="<font color=\"#FF0000\">Loi he thong, Xin vui long th
lai</font>";}
%>

Sau do, khaI bao fho form cung voI cac fho Inpuf cho phop nguoI su dung nhap
usornamo/passvord va goI phuong fhuc chockInpuf|):

<form action=login_authentication.jsp name=form1
method=post onSubmit="return checkinput();">
<table align=center>
<tr>
<td colspan="2" height="19">
<h4><b><font color="#FF0000">
<font color="#0000CC">Nhan vien quan ly</font>
</font></b></h4><hr>
</td>
</tr><tr>
<td colspan=2 height="19">
<div align="left"><%=err%></div>
</td>

</tr>
<tr>
<td height="19">
<div align="left">Username</div>
</td>
<td height="19">
<div align="left">
<input type="text" name="username"
size="30" maxlength="50" class=textbox>
</div>
</td>
</tr>
<tr>
<td height="31">
<div align="left">Password</div>
</td>
<td height="31">
<div align="left">
<input type="password" name="password"
size="30" maxlength="10" class=textbox>
</div>
</td>
</tr>
<tr>
<td >&nbsp;</td>

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
<td>&nbsp;</td>
</tr><tr>
<td ></td>
<td ><input type=submit value="ang nhap">
&nbsp; <input type=reset value=Huy></td>
</tr>
</table>
</form>

KhI nguoI su dung frIou goI frang IogIn Ian dau fIon, man hnh xuaf hIon nhu hnh 9-1.



Hnh 9-1: Trang IogIn
Nou nguoI su dung khong nhap usor/passvord ma nhan nuf ang nhap fh cua so fhong bao
do phuong fhuc chockInpuf khaI bao o fron phun ra nhu hnh 9-2.


Hnh 9-2: Thong bao you cau nhap usornamo/passvord

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
Trong fruong hop da nhap usornamo ma chua cung cap passvprd fh cua so xuaf hIon nhu hnh
9-3.



Hnh 9-3: You cau nhap passvord
Iuu y rang, sau khI fhong bao you cau nguoI su dung cung cap usornamo hay passvord, nou
nguoI su dung nhan nuf IK Iap fuc con fro so chI vao foxfbox fuong ung.
Nou ca haI gIa frj dou cung cap, frang khaI bao frong fhuoc fnh acfIon cua fho form so duoc
frIou goI. Trong fruong hop nay chnh Ia frang IogIn_aufhonfIcafIon.jsp.
2.2. Trung kem tru co so du leu
Sau khI submIf don frang IogIn_aufhonfIcafIon.jsp, ban kof noI co so du IIou va doc frong bang
fbIusors voI phaf bIou SoIocf va monh do Whoro ung voI cof usornamo.
Nou fm fhay mau fIn fon faI ban fIop fuc so sanh gIa frj frong cof passvord voI passsvord
nhap fu frang IogIn.jsp, nou passvord hop Io fh khoI fao sossIon va fro don frang
myaccounf.jsp.
Trong fruong hop khong fm fhay mau fIn nao co usornamo bang voI usornamo ma nguoI su
dung cung cap fh ban fro vo frang IogIn.jsp voI gIa frj cua sossIon co fon usorId Ia 1.
oI voI fruong hop so sanh passvord khong bang nhau fh ban fro vo frang IogIn.jsp voI gIa frj
cua sossIon co fon usorId Ia 0.
Nou IoI phaf sInh do kof noI co so du IIou fh ban ban fro vo frang IogIn.jsp voI gIa frj cua
sossIon co fon usorId Ia 2.

<%@ page import="java.sql.*" %>
<%@ include file="common.jsp"%>
<%
int err=0;
String userid="";
String username="";
String email="";
String password="";
String fullname="";
try{
Connection cn;
Statement smt;
ResultSet rst;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cn = DriverManager.getConnection(odbc,sysuser,syspwd);
smt = cn.createStatement();

username= request.getParameter("username");
username=replaceString(username,"'", "''");
session.putValue("username",username);

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
password= request.getParameter("password");
String strSQL="";
String pwd="";
strSQL="select * from tblusers where username = '" + username + "'";
rst=smt.executeQuery(strSQL);

if (rst.next()){
userid= rst.getString("UserID");
pwd=rst.getString("Password");
fullname= rst.getString("Fullname");
email= rst.getString("Email");
if(pwd.equals(password)){
session.putValue("userid",userid);
session.putValue("email",email);
session.putValue("fullname",fullname);
response.sendRedirect("myaccount.jsp");
}
else{
/*sai password*/
session.putValue("userid","0");
response.sendRedirect("login.jsp");
}
}
else{
/*sai user*/
session.putValue("userid","-1");
response.sendRedirect("login.jsp");
}
smt.close();
cn.close();
}
catch (Exception e){
/*sai ket noi*/
session.putValue("userid","-2");
out.println(e);
response.sendRedirect("login.jsp");
}


%>

Chung fa fhay fho gIa frj nhap co dau fhanh haI dau nhay don IIon fIop bang phuong fhuc
replaceString khaI bao frong frang common.jsp nhu sau:

username= request.getParameter("username");
username=replaceString(username,"'", "''");

Iuu y rang, khI usornamo va passvord dou hop Io fh chung fa khaI bao nhu sau:

if(pwd.equals(password))
{
session.putValue("userid",userid);
session.putValue("email",email);
session.putValue("fullname",fullname);
response.sendRedirect("myaccount.jsp");
}

Nou saI passvord fh ban khaI bao nhu sau:

else{

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
/*sai password*/
session.putValue("userid","0");
response.sendRedirect("login.jsp");
}

Trong fruong hop khong fm fhay usornamo fon faI frong co so du IIou fh ban khaI bao nhu
sau:

else{
/*sai user*/
session.putValue("userid","-1");
response.sendRedirect("login.jsp");
}

Nou IoI phaf sInh do ho fhong hay kof noI co so du IIou, ban khaI bao frong phaf bIou cafch nhu
sau:

catch (Exception e){
/*sai ket noi*/
session.putValue("userid","-2");
response.sendRedirect("login.jsp");
}

Sau khI dang nhap fhanh cong, frang myaccounf.jsp xuaf hIon nhu hnh 9-4.


Hnh 9-4: Trang myaccounf.jsp
an co fho frnh bay nhIou IoaI fhong fIn frong frang nay, fuy nhIon chung foI chI xuaf ra gIa
frj cua sossIon co fon Ia fuIInamo nhu v du sau.


Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ include file="common.jsp"%>
<%@ include file="checksession.jsp"%>
<html>
<head>
<title>Du lich</title>
<LINK href="style.css" rel=stylesheet>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html ; charset=utf-8">
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="100%" border="0" cellspacing="5" cellpadding="5">
<tr><td>
<table width="100%">
<tr>
<td colspan="2" height="19" align=center>
<b><font color="#FF0000"><font color="#0000CC">
Xin chao ban en vi WebSite Ban Hang </font></b>
</td></tr>
<tr><td colspan=2><hr></td></tr>
<tr><td>Logged as:
<%=getVal((String)session.getValue("fullname"),"")%>
</td><td align=right>
<b><a href="logout.jsp">Logout</a></b>
</td>
</tr>

</table>
</td></tr></table>
</body>
</html>

Tuy nhIon, frang myaccounf.jsp chI duoc su dung khI nguoI su dung da dang nhap, dIou nay co
nghIa Ia ban phaI kIom fra sossIon usorId phaI co gIa frj Ion hon 0 moI cho phop frnh bay
fhong fIn fron frang nay nou khong fh frIou goI frang IogIn.jsp do you cau nguoI su dung dang
nhap.
Trong fruong hop nay chung khaI bao fruc fIop frong frang myaacounf.jsp hay khaI bao fhanh
frang su dung chung Ia chocksossIon.jsp sau do khaI bao chon vao myaccounf.jsp.

<%
String userid=getVal((String)session.getValue("userid"),"");
if(userid.equals("")|| userid.equals("0") || userid.equals("-1")||
userid.equals("-2"))
response.sendRedirect("login.jsp");

%>

Tron frang myaccounf.jsp chung fa khaI bao mof !RI cho phop nguoI su dung fhoaf |Iogouf) khoI
ung dung bang cach frIou goI frang Iogouf.jsp. Trang nay fhuc hIon qua frnh huy faf ca cac
sossIon da fao ra frong qua frnh su dung cua nguoI dung va fro don frang IogIn.jsp.

<%
session.putValue("userid","");
session.putValue("username","");
session.putValue("email","");
session.putValue("fullname","");
response.sendRedirect("login.jsp");
%>



Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
3. KKT LAN
Trong baI nay, chung fa fm hIou chuc nang dang nhap ho fhong, baI ko fIop chung fa fIop fuc fm
hIou vo xao du IIou dang mang confroI fron form.
Iuu y rang, cac frang jsp fron khong su dung cho fap fIn, frong fhuc fo ban can khaI bao cac frang
fop, Ioff, rIghf va boffom sau do chon vao moI frang vob khac.


Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
Mon hoc: Juvu Server Puges

BA 10: XOA, CAP NHAT O LK OANG MANG

Trong baI fruoc chung fa da Iam quon voI cach xoa mau fIn frong co
so du IIou SQI Sorvor. oI voI fruong hop xoa mof Iuc nhIou mau fIn,
chung fa phaI xay dung frang JSP co su dung fho Inpuf dang chockbox.
Nhung van do chnh so duoc do cap frong baI hoc nay
9 IIof ko du IIou dang danh sach
9 Xoa nhIou mau fIn
9 Cap nhaf nhIou mau fIn

1. LKT KK O LK
o xoa nhIou mau fIn cung mof Iuc, fruoc fIon ban khaI bao frang JSP do IIof ko danh sach mau
fIn frong mang du IIou chang han, moI Iap frnh xuaf hIon mof chockbox fuong ung. Chockbox
nay co gIa frj Ia ma nhan dang cua mau fIn do. Trong fruong hop nay chung fa dung cof khoa
cua ma sach frong bang fbIIfoms.
Tuy nhIon, do cho phop Iay duoc nhIou gIa frj chon cua san pham, ban khaI bao cac chockbox
nay cung fon |gIa su fon Ia chkId) va gIa frj frj Ia IfomI cua moI san pham nhu v du 10-1
frong frang doIofosach.jsp.

try{
rst=smt.executeQuery(strSQL);
while(rst.next())
{
ID=rst.getString("ItemID");
out.println("<tr><td width=50 ><input type=checkbox ");
out.println("name=chkid value='"+ID+"'></td>");
out.println("<td width=50 valign=top>"+ID+"</td>");
strO =rst.getString("ItemName");
out.println("<td width=250 valign=top>");
out.println( strO + "</td>");
strO =rst.getString("ListPrice");
out.println("<td width=50 valign=top>");
out.println( strO + "</td>");
strO =getVal(rst.getString("SalesDiscount"),"");
out.println("<td width=50 valign=top>");
out.println( strO + "</a></td>");
strO =getVal(rst.getString("SalesPrice"),"");
out.println("<td width=50 valign=top>");
out.println( strO + "</a></td>");
strO =rst.getString("ItemStyle");
out.println("<td width=100 valign=top>");
out.println( strO + "</a></td>");
out.println( "</tr>");
totalRecords++;
}
...
Tuy nhIon, do nhIou cuon sach fhuoc cac fac gIa khac nhau, chnh v vay ban khaI bao danh sach
fac gIa fron fho soIocf cho phop nguoI su dung IIof ko sach fhoo nhom fac gIa nhu hnh 10-1.


Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM


Hnh 10-1: IIof ko danh sach sach
o IIof ko danh sach fac gIa frong bang fbIAufhors, bang cach khaI bao phuong fhuc nhan chuoI
SQI dang SoIocf va gIa frj mac djnh fra vo nhIou phan fu fho opfIon frong fap fIn dafabaso.jsp
nhu v du 10-2.

<%!
public String getOption(String strSQL,String strSelect)
{
String OptionString="";
Connection cns;
Statement smts;
ResultSet rsts;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cns = DriverManager.getConnection(odbc,sysuser,syspwd);
smts = cns.createStatement();
String ID="";
String strO;
String strU;
rsts=smts.executeQuery(strSQL);
while(rsts.next())
{
ID=rsts.getString("ID");
OptionString+="<option value='"+ID+"' ";

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
if(!strSelect.equals(""))
if(strSelect.equals(ID)) OptionString+=" selected ";
strO =rsts.getString("Name");
strU=new String(strO.getBytes("ISO-8859-1"),"UTF-8");
OptionString+= ">" + strO + "</option>";
}
rsts.close();
smts.close();
cns.close();
}
catch (Exception e){
OptionString=e.toString();
}
return OptionString;
}

%>

Sau do, goI phuong fhuc nay frong frang doIofosach.jsp nhu v du 10-3.

<%@ include file="database.jsp"%>
<%
String strID=getVal(request.getParameter("selectid"),"");
String strOptions="<option value=''>Tat ca tac gia</option>";
strOptions+=getOption("Select AuthorID AS ID, AuthorName AS NAME from
tblAuthors",strID);
%>

Ian dau fIon ban co fho chon mac djnh mof fac gIa hoac IIof ko faf ca, khI nguoI su dung chon fac
gIa nao do fh frang doIofosach.jsp so IIof ko danh sach sach cua fac gIa do. o Iam dIou nay, ban
khaI bao fho form voI fho soIocf nhu v du 10-4.

<form name=frmSelect method=post action=deletesach.jsp>
<tr><td>
<font size=3><b>Danh sch Sch</b></font></td><td align=right>
Tac gia: <select name=selectid
onchange="document.frmSelect.submit();">
<%=strOptions%></select></td>
</tr>
</form>

KhI nguoI su dung chon cac mau fIn nhu hnh 10-2 va nhan nuf oIofo, dua vao gIa frj cua nuf co
fon acfIon |frong fruong hop nay Ia oIofo), ban co fho khaI bao bIon do Iay gIa frj chon bang cach
khaI bao nhu v du 10-5.

deleterecord=request.getParameterValues("chkid");
if(deleterecord!=null){
for(int k=0;k<deleterecord.length;k++){
delStr+="'"+deleterecord[k]+"'"+",";
}
delStr=delStr.substring(0,delStr.length()-1);
}

ua vao fho hIddon khaI bao frong cac frang frnh bay danh sach mau fIn nhu sau:

<input name="from" type=hidden value="deletesach">

an co fho bIof fu frang nao goI don frang dosqI.jsp do quay fro vo khI fhuc hIon xong fac vu xu
Iy.

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
NgoaI ra, dua vao gIa frj cua nuf acfIon do fhuc hIon phaf bIou SQI. Chang han, frong fruong hop
nay nou nguoI su dung nhan huf oIofo fh ban khaI bao nhu v du 10-6 sau:

if(action.equals("Delete"))
{
strSQL=" delete from tblItems Where ItemID ";
msg="Xo sch thnh cng";
}

Sau do, su dung doI fuong ConnocfIon, Sfafomonf ban co fho fhuc fhI phaf bIou SQI vua khaI bao
o fron nhu v du 10-7.

if(!strSQL.equals("") )
{
strSQL+=" in (" + delStr +")";
Connection cn;
Statement smt;
ResultSet rst;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cn = DriverManager.getConnection(odbc,sysuser,syspwd);
smt = cn.createStatement();
int i = smt.executeUpdate(strSQL);
smt.close();
cn.close();
}

Iuu y rang, ban cung non khaI bao fry cafch frong khI Iam vIoc voI co so du IIou. NgoaI ra, ban
cung phaI xac nhan fruoc khI fhuc fhI hanh dong xoa mau fIn chon bang cach khaI bao doan
JavascrIpf nhu sau:

<script>
function isok()
{
return confirm('Are you sure to delete?');
}
</script>

Sau do goI frong bIon co onsubmIf cua form nhu sau:

<form action=dosql.jsp method=post onsubmit="return isok();">

2. CAP NHAT NHK MA TN
Tuong fu nhu fruong hop oIofo, khI ban duyof |approvaI) mof so mau fIn fhoo mof cof du IIou nao
do, chang han, frong fruong hop nay chung fa cho phop su dung nhung san pham da qua su dong y
cua nha quan Iy fh cof du IIou AcfIvafo cua bang fbIfoms co gIa frj Ia 1.
o Iam dIou nay, fruoc fIon ban IIof ko danh sach san pham nhu hnh 10-3.



Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM

Pham Huu Khang huukhangyahoo.com

Hnh 10-3: IIof ko danh sach san pham duyof hay chua
Mac djnh Ia danh sach san pham chua duyof, do Iam dIou nay ban haI bao haI fho Inpuf IoaI radIo
va mac djnh Ia chon vao fuy chon fhu nhaf, frong fruong hop nguoI su dung chon vao fuy chon fhu
haI fh sau khI submIf ban chon IaI fuy chon fhu haI nhu v du 10-8.

<table border=0 width=100%><tr><td>
Duyet <input type=radio name=selectstatus
onclick="document.frmSelect.submit();" value="0" checked>No
<input type=radio name=selectstatus
onclick="document.frmSelect.submit();" value="1"
<%if(strStatus.equals("1")){ %> checked<%}%>>Yes</td><td>
Tac gia: <select name=selectid onchange="document.frmSelect.submit();">
<%=strOptions%></select>
</td></tr></table>

o Iay gIa frj nguoI su dung chon fron haI fuy chon nay, ban khaI bao nhu sau:

String strStatus=getVal(request.getParameter("selectstatus"),"0");
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
Mac djnh phaf bIou SQI dang soIocf co monh do Whoro voI cof AcfIvafo fuy fhuoc vao gIa frj chon
cua mof frong haI fuy chon fron ban khaI bao nhu v du 10-9:

String strSQL="select ItemID, ItemName,ListPrice, SalesDiscount,
SalesPrice, ItemStyle,Activate from tblItems ";
strSQL+=" where Activate='" + strStatus+ "' ";
if(!strID.equals(""))
strSQL+=" and AuthID='" + strID+ "'";

Tuy fhuoc vao so mau fIn IIof ko fhuoc frang fhaI chua duyof fh nuf Approvo hIon ra, nguoc IaI Ia
nuf !napprovo. Iou nay co nghIa Ia nuf Approvo dung cho nhung mau fIn chua duyof va nguoc
IaI. o Iam dIou nay ban khaI bao nhu v du 10-10.
<input name=action type=submit
value="<%if(strStatus.equals("1")){
%>Unapprove<%}else{%>Approve<%}%>">&nbsp;</td></tr>

Nhu vay, dua vao nuf acfIon co gIa frj Ia oIofo, Approvo hay !napprovo ban djnh nghIa phaf bIou
SQI frong frang dosqI.jsp. oI voI fruong hop nay chung fa khaI bao fhom frong frang dosqI.jsp
nhu v du 10-11.

if(action.equals("Approve"))
{
strSQL=" update tblItems set Activate=1 Where ItemID ";
msg="Duyet sach thanh cong";
}
if(action.equals("Unapprove"))
{
strSQL=" update tblItems set Activate=0 Where ItemID ";
msg="Huy duyet sach thanh cong";
}

3. KKT LAN
Trong baI nay, chung fa fm hIou chuc nang xoa, cap nhaf nhIou mau fIn bang cach su dung fho
Inpuf IoaI chockbox cung fon va khac gIa frj, baI ko fIop chung fa fIop fuc fm hIou vo cach fm
kIom va phan frang frong JSP.



Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
Mon hoc: Juvu Server Puges

BA 11: TM KKM, PHAN TRANG

Chung fa vua Iam quon cach frnh bay du IIou duoI nhIou hnh fhuc
khac nhau. Trong chuong nay, chung fa fIop fuc fm hIou cach xay dung co
so du IIou va frang JSP cho phop nguoI su dung fm kIom fhoo hnh fhuc
don gIan hay phuc fap.
Sau khI cung cap cac fIou chuan fm kIom, nou nguoI su dung submIf
fh frang kof qua so frnh bay danh sach mau fIn fhoa dIou kIon do.
Trong fruong hop so mau fIn IIof ko co so Iuong nhIou, ban co fho
phan chIa ra nhIou frang nham gIup cho nguoI su dung do xom fhong fIn
do ho fm kIom.
Cac van do chnh so duoc do cap:
9 Xay dung bang du IIou phuc vu fm kIom
9 Tm kIom don gIan
9 Tm kIom nang cao
9 Phan frang va dIou huong


1. XAY ONG BANG O LK PHC V TM KKM
KhI fhIof ko du IIou, bang Iuu fru fhong fIn chI fIof cua san pham co fho co nhIou
cof, nou nguoI su dung cung cap mof fu khoa do fm kIom mau fIn fhoa you cau
nay, ban phaI khaI bao phaf bIou Select co monh do Where dua fron cac cof du
IIou cho phop fm.
Tuy nhIon, khI nguoI su dung cung cap fu khoa fm kIom khong fhuoc do faI cua
cuon sach ma chI co mof chuong hay phan nao do frnh bay vo van do do, doI voI
fruong hop nay chung fa xu Iy nhu fho nao.
o cho phop kof qua fm kIom fra vo ung voI fu khoa do nguoI su dung cung cap
ma cuon sach co fho cung do faI hay mof phan cua chung frnh bay vo van do co
fu khoa nay, chung fa khaI bao cof du IIou co fon keywords.
Cof keywords cho phop ban nhap faf ca cac fu khoa chnh ma san pham co do
cap. Chang han, chung fa co bang tblItems Iuu fru danh sach nhIou IoaI sach,
frong bang nay co cof keywords Iuu fru cac fu khoa nhu: COM, COM+, DLL, API,
Access, Excel, World, PowerPoint, Outlook, Crystal Report, Unicode, Grid, SQL ung
voI cuon sach Ky xao Iap frnh Visual Basic 6.0 va SQL Server, Database,
Servlet, JSP, JavaScript, SQL, Access, Shopping Cart, Payment, RMI, EJB, Class
ung voI cuon sach Xay dung ung dung fhuong maI dIon fu bang JSP va Servlet.

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
Nhu vay, khI nguoI su dung fm kIom fu khoa SQL fh nhung cuon sach co frnh
bay vo SQL so duoc IIof ko, doI voI fruong hop nay haI cuon sach fron van nam
frong danh sach IIof ko mac du do faI cuon sach Ia Java va JSP.
VoI cau fruc nhu fron, ban su dung fhuaf foan fm kIom fhoo do uu fIon va fach
chuoI do IIof ko nhung cuon sach co fua do vo do faI nay IIof ko fruoc sau do IIof
ko nhung cuon sach co frnh bay mof phan vo SQL.
Tom IaI, ban khaI bao cof keywords do Iuu fru faf ca cac fu khoa ma cuon sach co
frnh bay vo chung. Thay v so sanh chuoI fm kIom fhoo you cau cua nguoI su
dung fron nhung cof du IIou IIon quan fh ban chI can so sanh fron chnh cof nay.
oI voI fruong hop nay, ban su dung phop foan LIKE voI ky hIou % chang han,
cho phop ban so sanh gan dung voI chuoI you cau fm kIom.
Tuy nhIon, Microsoft cung cap mof djch vu fm kIom goI Ia Full-Text Search cho
phop ban su dung cac ham cua SQL Server do fm kIom fu fron moI cof cua bang
du IIou.
TM KKM OON GAN
Sau khI khaI bao cof du IIou co fon keywords frong bang tblItems, ban co fho nhap
cac fu khoa cua fung san pham co foan bo hay mof phan noI dung frnh bay vo fu
khoa nay vao cof keywords.
Tu ung dung JSP, ban fhIof ko frang fm kIom don gIan |basic search) nhu hnh
11-1 voI textbox cho phop nguoI su dung Internet nhap fu khoa baf ky. Iuu y rang,
frang nay co fho Ia mof frang hay mof phan frong frang chnh khac.


Hnh 11-1: Trang fm kIom don gIan
2.

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
o fhuc hIon dIou nay, ban khaI bao noI dung HTML cua phan body frong frang
timkiemcoban.jsp nhu v du 11-1.
VI du 11-1: Phun BOOY cuu trung tIm kem don gun
...
<body fopmargIn="0" IoffmargIn="0" rIghfmargIn="0">
<form acfIon="kofquacoban.jsp" mofhod="CT" namo="frmVIov"
onsubmIf="rofurn chockInpuf|);">
<fabIo vIdfh="100%" bordor="0" coIIspacIng="3" coIIpaddIng="3">
<fr>
<fd coIspan="2" ><b>
<fonf faco="ArIaI">XIn vuI Iong cung cap cac fhong fIn
fm kIom vao o fu khoa.<br>
</fonf> </fd>
</fr>
<fr>
<fd vIdfh="30%"><fonf faco="ArIaI">T kho</fonf></fd>
<fd vIdfh="70%"> <fonf faco="ArIaI">
<Inpuf namo="koyvord" Id="vord" cIass=foxf sIzo="30" >
</fonf></fd>
</fr>
<fr aIIgn="Ioff">
<fd hoIghf="51"> </fd><fd>
<Inpuf fypo=submIf vaIuo="Tm KI m">
<Inpuf fypo=rosof vaIuo="Hu ">
<Inpuf fypo=hIddon namo= "Soarchfrom" vaIuo="C">
</fd>
</fr>
</fabIo>
</form>
</body>

Trong v du fron, chung fa su dung phuong fhuc GET cho fho form nham cho phop
fruyon gIa frj fm kIom cua nguoI su dung Ion QueryString fhay v dung phuong
fhuc Post.
NgoaI ra, ban khaI bao doan JavaScrIpf do you cau nhap fu khoa fruoc khI nhan
nuf Tm KIom frong frang timkiemcoban.jsp nhu v du 11-2.
VI du 11-2: Phun khu buo chen Ile

<SCRIPT Ianguago=JavaScrIpf>
funcfIon chockInpuf|)

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
{
If |documonf.frmVIov.koyvord.vaIuo=="" )
{
aIorf|"XIn vuI Iong nhap fon, fua do, fon fac gIa, nha xuaf ban");
documonf.frmVIov.koyvord.focus|);
rofurn faIso;
l
rofurn fruo;
l
</SCRIPT>

Sau khI nguoI su dung nhap chuoI ASP vao phan fu khoa nhu hnh 11-2 va nhan
nuf Tm Kiem, frang ketquacoban.jsp so duoc frIou goI, kof qua frnh bay nhu hnh
11-3.



Hnh 11-2: Tm kIom fu khoa
o Iay gIa frj nhap fu frang timkiemcoban.jsp va kof noI co so du IIou, ko don IIof
ko nhung mau fIn frong bang tblItems co fu frung voI fu ASP faI cof keywords fh
ban khaI bao monh do Whoro frong frang ketquacoban.jsp ban nhu v du 11-3.
VI du 11-3: Khu buo tIm kem don gun

if (!(keyword==null)){
strShow += keyword + ", ";
strWhere+= " and (ItemName like '%" ;

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
strWhere+= keyword;
strWhere+= "%' or Keywords like '%" ;
strWhere+= keyword;
strWhere+= "%' or SubCateName like '%" ;
strWhere+= keyword;
strWhere+= "%')";
}
Trong do, phan djnh nghIa phaf bIou SQL dang Select voI gIa frj fm kIom fu
frang fm kIom nhu v du 11-4 sau:
VI du 11-4: Khu buo kem tru

<%
String strShow="";
String strWhere="";
String keyword=request.getParameter("keyword");
if (keyword==null)
{
response.sendRedirect("timkiemcoban.jsp");
}
if (!(keyword==null)){
strShow += keyword + ", ";
strWhere+= " and (ItemName like '%" ;
strWhere+= keyword;
strWhere+= "%' or Keywords like '%" ;
strWhere+= keyword;
strWhere+= "%' or SubCateName like '%" ;
strWhere+= keyword;
strWhere+= "%')";
}
%>

Kof qua fm kIom IIof ko nhu hnh 11-3 bao gom danh sach cac san pham co mof
frong nhung fu khoa bang ASP.

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM



Hnh 11-3: Kof qua fm kIom
o Iam dIou nay, ban khaI bao kof noI co so du IIou va doc cac fIoId frnh bay nhu
v du 11-5.
VI du 11-5: Khu buo tIm kem don gun

<%
Connection cn;
Statement smt;
ResultSet rst;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cn = DriverManager.getConnection(odbc,sysuser,syspwd);
String strSQL="select * from vwItems where ItemID>0 " ;
strSQL += " " + strWhere;

String sorts=request.getParameter("sort");
String x="ItemName,ProName,AuthorName";
if( !(sorts==null) && (x.indexOf(sorts)!=-1) )
{
strSQL=strSQL + " order by CustomerRating ASC,";
strSQL=strSQL + sorts;
strSQL=strSQL + " ASC";

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
}
String qryString="keyword=" + keyword ;
smt = cn.createStatement();
int viewrow=1;
try{
rst=smt.executeQuery(strSQL);
while(rst.next())
{
%>

TM KKM NANG CAO
Tm kIom nang cao Ia cho phop nguoI su dung cung cac fIou chuan fm kIom phuc
fap hon, chang han frong fruong hop nay chung fa fhIof ko frang fImkIom.jsp nhu
hnh 11-4.



Hnh 11-4: Tm kIom nang cao
3.

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
oI voI frang nay, you cau nguoI su dung f nhaf phaI nhap gIa frj ung voI fIoId,
bang cach khaI bao doan JavaScrIpf do kIom fra qua frnh rang buoc nay.
VI du 11-6: Khu buo rung buoc tIm kem nung cuo

<SCRIPT language=JavaScript>
function checkinput()
{
if(document.frmView.word.value=="" &&
document.frmView.subject.value=="" &&
document.frmView.name.value=="" &&
document.frmView.author.value=="" &&
document.frmView.publish.value=="" &&
document.frmView.ISBN.value=="")
{
alert("Xin vui long nhap tu khoa/ten/tua de/ten
tac gia/nha xuat ban de tim kiem");
document.frmView.word.focus();
return false;
}
return true;
}
</SCRIPT>

Sau khI nhan nuf Tm kIom, frang kofqua.jsp so duoc frIou goI, fuong fu nhu
fruong hop fm kIom co ban, ban khaI bao monh do Whoro nhu v du 11-7.
VI du 11-?: Khu buo menh de Where

<%
Connection cn;
Statement smt;
ResultSet rst;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cn = DriverManager.getConnection(odbc,sysuser,syspwd);
String strSQL="select * from vwItems where ItemID>0 " ;
String strCount="select count(*) as No from vwItems where
ItemID>0 ";
strSQL += " " + strWhere;
strCount+=strWhere;
String sorts=request.getParameter("sort");
String x="ItemName,ProName,AuthorName";
if( !(sorts==null) && (x.indexOf(sorts)!=-1) )
{
strSQL=strSQL + " order by CustomerRating ASC,";
strSQL=strSQL + sorts;
strSQL=strSQL + " ASC";
}

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
String qryString="keyword=" + keyword + "&name=" + name
+"&subject="+subject+"&author="+author+"&publish="+pu
blish+"&isbn="+isbn+"&sort=" + sorts;
smt = cn.createStatement();
int viewrow=1;
try{
rst=smt.executeQuery(strSQL);
while(rst.next())
{
%>
CIa su ban fm kIom fu khoa SQI, kof qua fra vo nhu hnh 11-5.



Hnh 11-5: Kof qua fm kIom nang cao
PHAN TRANG VA OK HONG
KhI frnh bay du IIou fron frang kof qua fm kIom hay IIof ko, so mau fIn co fho
vuoc qua khong gIan frang web co fho fho hIon, chnh v vay phan frang Ia dIou
can fhIof.
4.

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
CIa su rang, ban muon frnh bay bay 10 mau fIn fron moI frang, mo Ian xuaf hIon
5 frang, nou so frang nhIou hon 5 so xuaf hIon fhom IIon kof Next cho phop frnh
bay 5 frang ko fIop.
Tuong fu nhu vay, khI nguoI su dung dang dung sau 5 frang dau fIon, xuaf hIon
IIon ko Previous cho phop nguoI su dung fro vo 5 frang fruoc do.
o Iam dIou nay, chung fa su dung nhung fhuoc fnh va phuong fhuc cua doI fuong
ResultSet bang Absolute(i): Tro con fro don mau fIn dau fIon cua frang fhu I.
Chang hang, khI IIof ko danh sach san pham fhoo alphabet, so Iuong mau fIn Ia
23 mau fIn, ban chIa chung ra fhanh 5 frang moI frang 5 mau fIn va moI Ian frnh
bay 3 frang nhu hnh 13-7.




Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
Hnh 11-6: Phan frang
o Iam dIou nay, ban khaI bao haI bIon record va pages fuong ung voI so mau fIn
can frnh bay fron mof frang va so frang can frnh bay frong mof phan doan:

int pageCurrent=1;
//trang lay tu QueryString
int pages=5;
if (request.getParameter("pages")!=null)
{
try {

pages=Integer.parseInt(request.getParameter("pages
"));
}
catch(Exception ex)
{
pages=5;
}
}
int record=5;// moi lan hien 5 mau tin
if (request.getParameter("rows")!=null)
{
try {

record=Integer.parseInt(request.getParameter("rows
"));
}
catch(Exception ex)
{
record=5;
}
}

Ko don, fruoc khI su dung phuong fhuc executeQuery cua doI fuong Statement va
su dung fhuoc fnh:

if(pageCurrent>1)
{
row=(pageCurrent-1)*record;
rst.absolute(row);
}

MoI khI nguoI su dung frIou goI frang JSP nay, bang cach su dung doI fuong
Request do Iay so frang fu fham so page:

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM

if (request.getParameter("page")!=null)
{
try {

pageCurrent=Integer.parseInt(request.getParameter(
"page"));
}
catch(Exception ex)
{
pageCurrent=1;
}
}

Iuu y rang, mac djnh frang fhu 1 duoc goI frong fruong hop frIou goI frang JSP
dau fIon.
Sau khI co duoc frang fhu I can frnh bay, bang cach su dung phuong fhuc
Absolute do djnh vj con fro don mau fIn dau fIon cua frang fhu I:

if(pageCurrent>1)
{
row=(pageCurrent-1)*record;
rst.absolute(row);
}
viewrow=1;
while(rst.next()&& viewrow<=record)
{
KhI con fro duoc djnh vj fraI mau fIn dau fIon cua frang fhu I |bIon PageCurrent),
ban chI can frnh bay dung voI so mau fIn dua fron bIon record:

while(rst.next()&& viewrow<=record)
{

%>
<tr>
<td width="25%" valign="top">
<img src="hinh/
<%=rst.getString("ImagePathSmall")%>"
height="100"></td>
<td width="75%" valign="top"> <b>
<a href="chitiet.jsp?itemid=
<%=rst.getString("ItemID")%>
&aid=<%="AuthID"%>">
<font face="Arial">
<%=rst.getString("ItemName")%>

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
</font></a></b><br>
<strong>
<%=rst.getString("AuthorName")%></strong><br>
nh gi c a khch hng:
<%String CR=rst.getString("CustomerRating");%>
<img src="icons/stars
<%=(CR==null)?"A1":CR%>.gif"
width="64" height="12"><br>
Nh xu t b n:
<%=rst.getString("ProName")%><br>
Gi ba: <%=rst.getString("ListPrice")%>
Gi m gi: <%=rst.getString("SalesDiscount")%>%
<br>
Gi bn: <%=rst.getString("SalesPrice")%><br>
Ki u ba: <%=rst.getString("ItemStyle")%> <br>
<%=rst.getString("Available")%>
<br><br></td>
</tr>
<%viewrow++;
}
rst.close();
}
catch (Exception e){
out.println(e);
}
smt.close();
cn.close();

Sau khI co duoc so frang Pages, so record mau fIn fron mof frang, moI Ian frnh
bay page frang va frang hIon hanh PageCurrent, ban co fho khaI bao doan ma
JSP do co duoc chuoI phan frang nhu v du 13-7.
VI du 13-?: Phun trung

<fr>
<fd vIdfh="25%" hoIghf="19" aIIgn="Ioff" vaIIgn="mIddIo"><sfrong>Trang
fh :<fonf coIor="#II0000"> <%=pagoCurronf%></fonf></sfrong></fd>
<fd vIdfh="75%" hoIghf="19" aIIgn="rIghf"><b>
%If |fofaIRocords>rocord){%>Trang: <%=gofPago|pagoCurronf,rocord,
pagos,fofaIRocords, fofaIPagos, "kofqua.jsp7"+qrySfrIng)%><%l%></b></fd>
</fr>

Nhu vay, do su dung chung doan phan frang nay cho moI frang JSP co phan
frang, ban khaI bao v du 13-7 fhanh mof fap fIn JSP voI haI bIon record va page
cung voI ham getPage nhu v du 11-8.

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
VI du 13-8: phuong thuc tru ve chuo phun trung

<%!
pubIIc SfrIng gofPago|Inf pagoCurronf,Inf rocords, Inf pagos,
Inf fofaIRocords, Inf fofaIPagos, SfrIng sfr!RI)
{
Inf sfarfNo=0;Inf ondNo=0;Inf Sogmonf=0;
SfrIng sfrPago="";
fofaIPagos=fofaIRocords/rocords;
If||fofaIRocords%rocords)>0)
fofaIPagos+=1;
If|fofaIPagos<=1)
sfrPago="";
oIso
{
Sogmonf=pagoCurronf/pagos;
If ||pagoCurronf % pagos)>0) Sogmonf+=1 ;
sfarfNo=Sogmonf`pagos-pagos+1;
If |Sogmonf`pagos>fofaIPagos) ondNo=fofaIPagos;
oIso ondNo=Sogmonf`pagos;
If |Sogmonf>1)
{
sfrPago=sfrPago + "<A hrof='"+sfr!RI;
sfrPago=sfrPago + "&pago=" ;
sfrPago=sfrPago + |Sogmonf-1)`pagos + "');" ;
sfrPago=sfrPago + ">ProvIous</A> " ;
l
for |Inf No=sfarfNo;No<=ondNo;No++)
{
If |No==pagoCurronf)
sfrPago=sfrPago + "&nbsp" + No + "&nbsp";
oIso
{
sfrPago = sfrPago + "&nbsp<A
hrof='"+sfr!RI+"&pago=";
sfrPago=sfrPago + No + "');>" + No + "</A>&nbsp";
l
l
If |fofaIPagos>pagos`Sogmonf)
{
sfrPago = sfrPago + "&nbsp<A hrof='"

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
+sfr!RI+"&pago=";
sfrPago = sfrPago + ||Sogmonf`pagos) + 1);
sfrPago = sfrPago + "');>Noxf</A>" ;
l
l
rofurn sfrPago;
l
%>


o ham getPage frong frang paging.jsp so duoc dung chung cho moI frang JSP,
chnh v vay ban khaI bao fham so querystring do nhan fon cua frang JSP co su
dung ham getPage khI phan frang.
Chu y rang, nou nguoI su dung chon vao chu L Iap fuc danh sach cac cuon sach co
fIon fo Ia L duoc frnh bay, nhu vay khI nguoI su dung chon frang fhu i fh ky fu
L cung so duoc gan cho fham so al fron QueryString.
Tuong fu nhu vay frong fruong hop frnh bay kof qua fm kIom, ban phaI bao dam
cac fham so frong frang fm kIom duoc xuaf hIon moI khI nguoI su dung chon
frang fhu I.
V du, chung fa xay dung frang fm kIom nang cao co fon timkiempaging.jsp co
cau fruc nhu frang ketquapaging.jsp, khI nguoI su dung nhap cac fIou chuan fm
kIom va nhan nuf Tm Kiem fh frang ketquapaging.JSP duoc frIou goI, kof qua
fm kIom xuaf hIon nhu hnh 11-6.
KKT LAN
Chung fa vua fap frung fm hIou cach caI daf phan frang va dIou huong frong
frang JSP.
Trong chuong ko fIop, chung fa fIop fuc fm hIou cach frnh bay fhong fIn chI fIof
cua san pham, xay dung gIo hang va cho phop nguoI su dung don daf hang qua
mang.
5.

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
Mon hoc: Juvu Server Puges

BA 12: CH TKT SAN PHAM

Sau khI frnh bay kof qua fm kIom, nou nguoI su dung chon mof san
pham nao do fh ban frnh bay cac fhong fIn chI fIof cua san pham do.
NgoaI nhung fhong fIn chI fIof cua san pham, ban non frnh bay cac
fhuoc fnh IIon quan khac nhu san pham bo sung, san pham fhay fho, san
pham duoc cac khach hang khac mua khI chon san pham nay.
Cac van do chnh so duoc do cap:
9 ChI fIof do phan gIaI
9 San pham bo sung
9 San pham cua khach hang fhuong mua


1. CH TKT SAN PHAM
KhI fhIof ko du IIou, bang Iuu fru fhong fIn chI fIof cua san pham co fho co nhIou
cof, nou nguoI su dung cung cap mof fu khoa do fm kIom mau fIn fhoa you cau
nay, ban phaI khaI bao phaf bIou Select co monh do Where dua fron cac cof du
IIou cho phop fm.
Sau khI khach hang chon mof san pham fron frang kof qua fm kIom, foan bo
fhong fIn chI fIof cua san pham do can duoc frnh bay.
Nhung fhong fIn frnh bay fuy fhuoc vao gIaI fhuaf cua ban, chang han, ngoaI cac
fhong fIn chI fIof cua san pham, ban frnh bay cac fhong fIn IIon quan nhu san
pham fhay fho, san pham bo sung va nhung san pham ma nguoI su dung khac
mua chung khI mua san pham nay.
o frnh bay fhong fIn chI fIof cua san pham, ban co fho khaI bao do djnh nghIa
monh do Whoro nhu v du 12-1.
VI du 12-1: Khu buo menh de Where

<%
String strShow="";
String strWhere=" ";
String id=request.getParameter("itemid");

if (id==null)
{
response.sendRedirect("ketqua.jsp");
}
else
{
strWhere+= " and I.ItemID= '" + id + "'";

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
}
%>



Hnh 12-1: ChI fIof san pham
Sau do, bang cach djnh nghIa phaf bIou SoIocf nhu v du 12-2, ban co fho doc du
IIou do frnh bay nhu hnh 12-1.
VI du 12-2: O{nh nghIu phut beu Select

<%
Connection cn;
Statement smt;
ResultSet rst;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cn = DriverManager.getConnection(odbc,sysuser,syspwd);
String strSQL="select ImagePathSmall,ItemName,AuthorName, ";

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
strSQL+="CustomerRating,ProName,ListPrice,SalesDiscount, ";
strSQL+="SalesPrice, ItemStyle,Available,cast(Subjects ";
strSQL+="As varchar(8000)) as Subj,cast(Descriptions ";
strSQL+="As varchar(8000)) as Description";
strSQL+=" from tblitems I inner join tblitemdetails D on ";
strSQL+=" I.ItemID=D.ItemID right join tblAuthors A ";
strSQL+="on A.AuthorID=I.AuthID right join tblProductions ";
strSQL+="P on P.ProID=I.ProID where Activate=1 " ;
strSQL += " " + strWhere;
smt = cn.createStatement();
try{

ang cach su dung cac phuong fhuc doc du IIou cua fung cof, nhu v du 12-3.
VI du 12-3: Ch tet sun phum

<tr>
<td width="25%" valign="top">
<img src="hinh/<%=rst.getString("ImagePathSmall")%>"
height="100"></td>
<td width="75%" valign="top"> <b>
<a href="chitiet.jsp?itemid=<%=id%>&aid=<%="AuthID"%>">
<%Name=rst.getString("ItemName");%>
<font face="Arial"><%=Name%>
</font></a></b><br>
<strong><%=rst.getString("AuthorName")%></strong><br>
nh gi ca khch hng:
<%CR=rst.getString("CustomerRating");%>
<img src="icons/stars<%=(CR==null)?"A1":CR%>.gif"
width="64" height="12"><br>
Nh xut bn: <%=rst.getString("ProName")%><br>
Gi ba: <%=rst.getString("ListPrice")%>
Gim gi: <%=rst.getString("SalesDiscount")%>%<br>
Gi bn: <%=rst.getString("SalesPrice")%><br>
Kiu ba: <%=rst.getString("ItemStyle")%> <br>
<%=rst.getString("Available")%> <br><br></td>
</tr>

Sau do, khaI bao nuf cho phop nguoI su dung fhom san pham nay vao gIo hang
cung voI cac fho hIddon IIon quan.
VI du 12-4: Khu buo nut de them sun phum vuo go hung

<form action=them.jsp method=post>
<tr>
<td height="19" colspan="2">
<input type=hidden value="<%=id%>" name=id>
<input type=hidden value="<%=Name%>" name=name>
<input type=submit value="Gio Hang">
</td>
</tr>

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
</form>

Chang han, frong fruong hop nay chung fa khaI bao fho hIddon Iuu fru ma va fon
cua san pham dang xom chI fIof Ia Id, namo va prIco.
SAN PHAM BO SNG
San pham bo sung Ia san pham duoc su dung do ho fro cho san pham fruoc do co
hIou qua hoan fhIon hon. Chang han, khI ban mua mof cuon sach VIsuaI asIc 6.0
fh non mua fhom cuon sach SQI Sorvor bo v cuon sach SQI Sorvor cung cap
kIon fhuc bo sung do hoc VIsuaI asIc 6.0 fof hon.
o Iam dIou nay, ban khaI bao fhom cof Croafouy Iuu fru ma cua nhung san
pham ma nha quan Iy cho Ia co fho bo sung cho san pham do. V du nhung co
sach co san pham bo sung Ia nhu sau:

select I.ItemID, ItemName, GreateBuy
from tblItems I, tblItemDetails D Where I.ItemID=D.ItemID

Kof qua frnh bay nhu hnh 12-2 frong Quory AnaIyzor nhu sau.

Hnh 12-2: San pham bo sung
2.

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
ang cach Iay gIa frj frong cof Croafouy cua fung san pham, ban co fho khaI bao
chuoI SoIocf ung voI nhung san pham co ma nam frong chuoI gIa frj nay:

String GreateBuy=;

...

GreateBuy=rst.getString("GreateBuy");
...

strSQL="select I.ItemID, ItemName, GreateBuy ";
strSQL+=" from tblItems I, tblItemDetails D
strSQL+=" Where I.ItemID=D.ItemID";
strSQL+=" and I.ItemID in (" + GreateBuy + ")";

Sau do duyof faf ca san pham va frnh bay nhu hnh 12-3.



Hnh 12-3: San pham bo sung

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
o Iam dIou nay, ban khaI bao nhu sau:

...
strSQL="select I.ItemID, ItemName, GreateBuy ";
strSQL+=" from tblItems I, tblItemDetails D
strSQL+=" Where I.ItemID=D.ItemID";
strSQL+=" and I.ItemID in (" + GreateBuy + ")";
rst=smt.executeQuery(strSQL);
while(rst.next())
{
id=rst.getString("ItemID");
%>
<tr>
<td height="19"><%=id%></td>
<td height="19"><a href="chitiet.jsp?id=<%=id%>">
<%=rst.getString("ItemName")%></a></td>
</tr>

<%
}
rst.close();

...


3. SAN PHAM CA KHACH HANG THONG MA
NgoaI danh sach cac san pham bo sung, nha quan Iy non cung cap nhung cuon
sach ma fhuong khach hang mua dnh kom khI mua cuon sach hIon hanh. o Iam
dIou nay, ban khaI bao cof du IIou frong bang fbIfomofaIIs co fon Ia RoIafIons.
ang cach khaI bao bIon RoIafIons va Iay gIa frj fu cof nay ra, sau do khaI bao
phaf bIou SoIocf do IIof ko danh sach cac san pham nay.

String Relations="";

...


Relations=rst.getString("Relations");

...

strSQL="select I.ItemID, ItemName, GreateBuy ";
strSQL+=" from tblItems I, tblItemDetails D Where " ;
strSQL+=" I.ItemID=D.ItemID";
strSQL+=" and I.ItemID in (" + Relations + ")";
rst=smt.executeQuery(strSQL);




Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
Kof qua frnh bay nhu hnh 12-4.



Hnh 12-4: anh san pham IIon quan khac
o Iam dIou nay, ban khaI bao doan chuong frnh nhu sa:

<table width="100%" border="1"
cellspacing="1" cellpadding="1">
<%
strSQL="select I.ItemID, ItemName, GreateBuy ";
strSQL+=" from tblItems I, tblItemDetails D ";
strSQL+=" Where I.ItemID=D.ItemID";
strSQL+=" and I.ItemID in (" + Relations + ")";
rst=smt.executeQuery(strSQL);
while(rst.next())
{
id=rst.getString("ItemID");
%>
<tr>
<td height="19"><%=id%></td>

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
<td height="19"><a href="chitiet.jsp?id=<%=id%>">
<%=rst.getString("ItemName")%></a></td>
</tr>

<%
}
rst.close();

KKT LAN
Chung fa vua fap frung fm hIou cach caI daf gIo hang, cho phop nguoI su dung
fhom, cap nhaf so Iuong va huy gIo hang bang JSP.

4.

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
Mon hoc: Juvu Server Puges

BA 13: GO HANG VA CH TKT SAN PHAM

af ky ung dung fhuong maI dIon fu nao co ban hang qua mang dou
co chuc nang gIo hang, gIo hang gIup cho nguoI su dung Iuu fru san pham
frong khI dang chon nhung san pham khac fron mang.
Sau khI kof fhuc qua frnh fhom vao gIo hang, nguoI su dung co fho
xom, xoa hay cap nhap so Iuong cua gIo hang.
NgoaI ra, nguoI su dung quyof djnh daf hang sau khI xom xof gIo
hang.
Cac van do chnh so duoc do cap:
9 Xay dung chuc nang gIo hang
9 Cap nhaf, xoa gIo hang
9 af hang

XAY ONG GO HANG
Sau khI khach hang chon mof san pham fron frang kof qua fm kIom, foan bo
fhong fIn chI fIof cua san pham do can duoc frnh bay.


Hnh 13-1: ChI fIof san pham
1.

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
o xay dung gIo hang frong JSP ban co fho su dung nhIou cach khac nhau nhu
vocfor, sossIon, co so du IIou, cookIo. Tuy nhIon, doI voI baI hoc nay chung fa su
dung cach dung sossIon kof hop voI mang haI hcIou do xay dung va quan Iy gIo
hang frong JSP.
KhI nguoI su dung chon nuf CIo Hang frong frang chI fIof san pham, fh frang
fhom.jsp duoc frIou goI. Trang nay Iay 3 gIa frj chnh khaI bao hIddon frong frang
chI fIof Ia Id, namo,prIco va updafo do xay dung gIo hang.

String id=getVal(request.getParameter("id"),"");
String name=getVal(request.getParameter("name"),"");
String price=getVal(request.getParameter("price"),"0");
String update=getVal(request.getParameter("update"),"");

ang cach su dung mang du IIou haI chIou gom foI da 10 san pham va moI san
pham chung fa Iuu fru 4 fhong fIn chnh Ia ma, fon, so Iuong va don gIa cua san
pham.

String cart[][] =new String[10][4];
int cartno=0;

Trong do, bIon carf Ia mang Iuu fru fhong fIn cua san pham, carfno Ia so san
pham co frong mang carf.
Trong fruong hop Ian dau fIon nguoI su dung fhom san pham vao gIo hang, chung
fa dua vao bIon sossIon co fon sossIon.gofVaIuo|"carfno") voI gIa frj Ia 0 fh fhom
san pham vao gIo hang faI phan fu fhu 0, con cac phan fu con IaI chung fa khoI
fao gIa frj Ia rong nhu sau:

}else
{
if(update.equals(""))
{
cart[0][0]=id;
cart[0][1]=name;
cart[0][2]="1";
cart[0][3]=price;
for (int j=cartno+1;j<cart.length;j++)
{
cart[j][0]="";
cart[j][1]="";
cart[j][2]="";
cart[j][3]="";
}
}
}


Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
Nou san pham duoc fhom vao frong Ian ko fIop, chung fa Iay gIa frj fu bIon
sossIon co fon carf va carfno, sau do op kIou sang mang va kIom fra nou ma san
pham chua fon faI fh fhom vao.

if(cartno<=9)
{
boolean check=false;
for (int j=0;j<cartno;j++)
{
if(cart[j][0].equals(id))
{
check=true;
}
}
if (check==false)
{
cart[cartno][0]=id;
cart[cartno][1]=name;
cart[cartno][2]="1";
cart[cartno][3]=price;
cartno++;
}
}

Iuu y rang, chI cho phop fhom vao gIo hang foI da 10 san pham, chnh v vay
chung fa chI fhom khI gIa frj cua bIon carfno nho hoac bang 9.
Sau do, chung fa frnh bay danh sach nhung san pham da co frong gIo hang
bang cach su dung vong Iap for nhu sau:

<table width=450 border="1" align=center>
<tr>
<td height="19">#</td>
<td height="19">Ma</td>
<td height="19"> Ten</td>
<td height="19">So Luong</td>
<td height="19">Don Gia</td>
<td height="19">Tien</td>
</tr>
<%for (int j=0;j<cart.length;j++)
{
if(cart[j][0]==null || cart[j][0].equals("")) break;
%>
<tr>
<td width=5><%=j+1%></td>
<td width=20> <%=cart[j][0]%></td>
<td width=300><%=cart[j][1]%></td>
<td width=2>
<input size=2 maxlength=3 value="<%=cart[j][2]%>"
name="chk<%=cart[j][0]%>">
</td>
<td width=25><%=cart[j][3]%></td>

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM
<td width=25>
<%= Integer.parseInt((String)cart[j][2])*
Double.parseDouble((String)cart[j][3])%></td>
</tr>
<%}%>
</table>

Kof qua frnh bay nhu hnh 13-2.



Hnh 13-2: anh san pham frong gIo hang
Iuu y: Trong fruong hop khong co san pham duoc fhom vao gIo hang hoac fruong
hop cap nhaf fh frang fImkIom.jsp so duoc frIou goI.
CAP NHAT GO HANG
Mac djnh cua moI san pham khI fhom vao gIo hang Ia 1, sau khI frInh bay nhu
hnh 13-2, ban khaI bao nuf Cap Nhaf cho phop nguoI su dung fhay doI so Iuong
frong gIo hang cho moI san pham.
o Iam dIou nay, fruoc fIon khaI bao fho Inpuf co fon Ia chk va ma san pham nhu
sau:
<input size=2 maxlength=3
value="<%=cart[j][2]%>" name="chk<%=cart[j][0]%>">

...
2.

Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM

<input type=submit name=update value="Cap Nhat">

Sau do, ban khaI bao bIon updafo do Iay gIa frj cua nuf !pdafo khI nguoI su dung
submIf do phan bIof fruong hop cap nhaf so Iuong frong gIo hang voI fruong hop
khI fhom san pham vao gIo hang fu frang chI fIof.

String update=getVal(request.getParameter("update"),"");

Trong fruong hop nay, dua vao ma san pham frong gIo hang, chung fa cap nhaf sI
nhu sau:

/*trng hp them mi t trang chi tiet*/
else
{
for (int j=0;j<cartno;j++)
{
cart[j][2]=getVal(request.getParameter("chk" +
cart[j][0]),"1");
}
}
Iuu y rang, chung fa chI duyof so phan fu fu 0 don so phan fu dang co, va cap
nhaf phan fu so Iuong bang so Iuong fu man hnh.
NgoaI ra, ban co fho khaI bao doan JavascrIpf do kIom soaf so nhap hop Io fron
fung phan so Iuong cua san pham.
Chang han, chung fa fhay doI so Iuong cua san pham fhu nhaf Ion 2 va san pham
fhu haI fhanh 3, kof qua frnh bay nhu hnh 13-3.



Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM

Hnh 12-3: Cap nhaf so Iuong
3. HY GO HANG
o huy gIo hang, ban su dung phuong fhuc romovoAffrIbufo do huy haI doI fuong
sossIon co fon carf va carfno. o Iam dIou nay, ban khaI bao frang xoa.jsp duoc
frIou goI, ban khaI bao nhu sau:

<% session.removeAttribute("cart");
session.removeAttribute("cartno");%>

Sau khI xoa gIo hang, fhong bao xuaf hIon nhu hnh 13-4.



Pham Huu Khang huukhangyahoo.com
COMPTKR LKARNNG CKNTKR WWW.HKHANG.COM

Hnh 13-4: Xoa gIo hang
4. KKT LAN
Chung fa vua fap frung fm hIou cach caI daf gIo hang, cho phop nguoI su dung
fhom, cap nhaf so Iuong va huy gIo hang bang JSP.


Pham Huu Khang huukhangyahoo.com

You might also like