You are on page 1of 85

BÀI GIẢNG MÔN HỌC

LẬP TRÌNH MẠNG


NGÔN NGỮ LẬP TRÌNH
JSP-SERVLET
Java Server Pages

Néi Dung
* Giíi thiÖu
* C¬ chÕ ho¹t ®éng cña JSP
* C¸ch x©y dùng Web b»ng JSP
* C¸c có ph¸p c¬ b¶n cña JSP
* Nhóng vµ chuyÓn hưíng gi÷a c¸c trang
* C¸c ®èi tưîng mÆc ®Þnh cña JSP
* Phư¬ng thøc truy xuÊt c¬ së d÷ liÖu
Java Server Pages
I. Giíi ThiÖu

JSP lµ c¹nh tranh cña Sun ®èi víi c«ng nghÖ ASP cña
Microsoft.
ASP còng lµ c¸c trang Web thùc hiÖn c¬ chÕ diÔn dÞch
thay c¸c lÖnh Java lµ c¸c lÖnh Visual Basic. ASP
kh«ng cã c¬ chÕ diÔn dÞch ra m· nhÞ ph©n như JSP.
JSP (Java Server Page) lµ c¸ch ®¬n gi¶n ®Ó ngưêi dïng
tiÕp cËn ®îc híng lËp tr×nh Web phÝa m¸y chñ hiÖu
qña vµ nhanh h¬n.
NÕu như ®èi víi Servlet b¹n ph¶i viÕt m· Java vµ biªn
dÞch b»ng tay trưíc khi ®ưa vµo sö dông víi tr×nh
chñ Web Server th× JSP kh«ng cÇn ®iÒu nµy
Java Server Pages
II. C¬ ChÕ Ho¹t §éng Cña JSP
C¬ chÕ ho¹t ®éng cña trang JSP ®ưîc minh
häa như h×nh sau :

Trçnh diãùn
Yãu cáöu HTTP dëch JSP
Web
Web
Browser Trang jsp
Service Servlet taûm
Kãút xuáút

Java Web Server


Java Server Pages
II. C¬ ChÕ Ho¹t §éng Cña JSP :
+ Khi b¹n yªu cÇu mét trang JSP, tr×nh chñ
sÏ ®äc trang JSP tõ ®Üa cøng,
+ Bé diÔn dÞch JSP sÏ diÔn dÞch m· lÖnh
Java chøa trong trang JSP thµnh mét
servlet.
+ Sau ®ã tr×nh chñ Java Web Server sÏ triÖu
gäi servlet tr¶ kÕt xuÊt thuÇn HTML vÒ cho
tr×nh kh¸ch
Java Server Pages
III. C¸ch X©y Dùng Web B»ng JSP
Mét trang JSP víi phÇn më réng lµ .jsp
như lµ mét trang HTML, cã thÓ chÌn thªm
c¸c c©u lÖnh Java b»ng cÆp
<%. . . %>
hoÆc: <jsp:scriptlet>... </jsp:scriptlet>.
Gi÷a cÆp dÊu nµy lµ c¸c c©u lÖnh cña ng«n
ng÷ Java n»m trong phÇn th©n (<Body>. . .
</Body>) cña tµi liÖu, hoÆc phÇn ®Çu tiªn
trưíc c¶ tag <HTML> cña tµi liÖu.
Java Server Pages
III. C¸ch X©y Dùng Web B»ng JSP
M« t¶ cÊu tróc cña mét trang JSP
<%
- - - - C¸c c©u lÖnh Java ë ®©y - - - -
%>
< HTML>
- - - - C¸c thµnh phÇn ®Þnh nghÜa kh¸c - - - -
<BODY>
<%
- - - - C¸c c©u lÖnh Java ë ®©y - - - -
%>
- - - - C¸c ®Þnh d¹ng kh¸c cña HTML - - - -
< /BODY>
</HTML>
Java Server Pages
IV. C¸c Có Ph¸p C¬ B¶n Cña JSP
Tư¬ng tù thÎ HTML, thÎ lÖnh JSP còng bao gåm
thÎ më vµ thÎ ®ãng. Mçi thÎ cã c¸c thuéc tÝnh qui
®Þnh c¸ch sö dông thÎ.

1. ThÎ <jsp:scriptlet> hay <% %>


Víi thÎ nµy b¹n cã thÓ ®Æt c¸c ®o¹n m· lÖnh Java
ë gi÷a cÆp thÎ tư¬ng tù mét chư¬ng tr×nh Java th«ng
thưêng. Bªn trong m· Java nÕu muèn kÕt xuÊt d÷ liÖu
HTML b¹n gäi phư¬ng thøc println() cña ®èi tưîng
out.
<jsp:scriptlet>
--------------------
m· lÖnh Java
-------------------
</jsp:scriptlet>
Java Server Pages
IV. C¸c Có Ph¸p C¬ B¶n Cña JSP
1. ThÎ <jsp:scriptlet> hay <% %>
Khi gÆp thÎ nµy, bé diÔn dÞch JSP sÏ biÕt ®ưîc
lÖnh cÇn thùc hiÖn tiÕp theo lµ m· lÖnh Java. B¹n
hoµn toµn sö dông mäi có ph¸p cña Java ë ®©y, kÓ c¶
lÖnh chó thÝch th«ng thưêng. NÕu muèn viÕt t¾t th× cã
thÓ sö dông cÆp thÎ <% %> thay thÕ.
<%
--------------------
m· lÖnh Java
-------------------
%>
Java Server Pages
IV. C¸c Có Ph¸p C¬ B¶n Cña JSP
2. HiÓn thÞ kÕt xuÊt b»ng có ph¸p <%= %>
Thay v× sö dông có ph¸p <% %> ®Ó diÔn ®¹t mét khèi gåm
nhiÒu lÖnh, ta cã thÓ sö dông có ph¸p <%= %> chØ ®Ó hiÓn
thÞ kÕt xuÊt cña mét gi¸ trÞ biÕn hay hµm nµo ®ã.
Riªng biÓu thøc n»m trong thÎ <%= %>kh«ng ®ưîc tËn
cïng b»ng dÊu chÊm phÈy (;) như c¸c lÖnh hay khai b¸o
biÕn cña ng«n ng÷ Java.
VÝ dô:
Welcome <%=username%>
username : lµ tªn biÕn do ngêi dïng ®¨ng nhËp.
Java Server Pages
IV. C¸c Có Ph¸p C¬ B¶n Cña JSP
3. ChÌn chó thÝch vµo trang JSP :
Còng như Java, JSP cho phÐp b¹n dïng có ph¸p // ®Ó chó
thÝch mét dßng m· lÖnh trong khi có ph¸p /* */ ¸p dông cho
nhiÒu dßng. C¸c dßng chó thÝch sÏ bá qua khi tr×nh chñ diÔn
dÞch trang JSP.
<%
// LÊy biÕn d÷ liÖu mang tªn username tõ ®èi tưîng session
String username=session.getAttribute("username");
%>
JSP cßn cung cÊp cho b¹n có ph¸p chó thÝch <%-- --%>. TÊt c¶ c¸c
khèi lÖnh Java vµ HTML n»m gi÷a hai dÊu chó thÝch nµy sÏ
®ưîc tr×nh biªn dÞch trang bá qua kh«ng quan t©m ®Õn.
VÝ dô : <%--
out.println("You will never see this line");
--%>
Java Server Pages
IV. C¸c Có Ph¸p C¬ B¶n Cña JSP
4. ThÎ khai b¸o phư¬ng thøc vµ biÕn b»ng <%! %>
Ta cã thÓ dïng thÎ <%! %> ®Ó khai b¸o mét biÕn hoÆc
mét phư¬ng thøc dïng cho toµn trang jsp. BiÕn khai b¸o
ph¶i theo có ph¸p cña ng«n ng÷ Java. Phư¬ng thøc vµ biÕn
sau ®ã cã thÓ ®ưîc gäi bÊt kú n¬i ®©u trong trang JSP.
5. ThÎ chØ dÉn biªn dÞch trang <%@ page%>
ThÎ <%@ page%> chØ dÉn mét sè tÝnh chÊt biªn dÞch
¸p dông cho toµn trang jsp. Ta cã thÓ sö dông thÎ nµy ®Ó
khai b¸o c¸c thư viÖn import cña Java, chØ ®Þnh tïy chän
trang jsp cã cÇn gi÷ trªn cache bé nhí cña tr×nh chñ ®Ó
t¨ng tèc hay kh«ng.
VÝ dô:
<%@ page import="java.sql.*" %>
Java Server Pages
IV. C¸c Có Ph¸p C¬ B¶n Cña JSP
6. Nhóng Vµ ChuyÓn Hưíng Gi÷a C¸c Trang
Trong qu¸ tr×nh xö lý vµ chuyÓn d÷ liÖu cho form
b¹n cã thÓ nhóng vµ triÖu gäi nh÷ng trang JSP kh¸c
víi trang hiÖn hµnh.
Cã thÓ ®ưa mét trang HTML hoÆc JSP vµo trang
JSP hiÖn t¹i ®Ó hç trî thªm thư viÖn hay tÝnh n¨ng
bæ sung nµo ®ã. Hay ghi nhËn ®îc d÷ liÖu submit tõ
tr×nh kh¸ch, trang JSP nhËn ®ưîc d÷ liÖu cã thÓ
chuyÓn hưíng hoÆc triÖu gäi ®Õn trang JSP kh¸c.
Java Server Pages
IV. C¸c Có Ph¸p C¬ B¶n Cña JSP
6.1. Nhóng file vµo trang víi chØ thÞ include file :
Ta cã thÓ nhóng mét trang jsp hay trang html vµo trang jsp
hiÖn hµnh b»ng thÎ <%@ include file %>.
ThÎ nµy tư¬ng tù như chØ dÉn #include trong ng«n ng÷ C. Có
ph¸p ®Çy ®ñ cña thÎ nµy lµ :
<%@ include file="URL or Filepath"%>
6.2. Sö dông thÎ <jsp:include>
ChØ thÞ <@ include %> chØ dïng ®Ó nhóng c¸c m· nguån
tÜnh. NÕu muèn nhóng kÕt qu¶ kÕt xuÊt tõ c¸c trang jsp, servlet
hay html kh¸c vµo trang hiÖn hµnh b¹n sö dông thÎ <jsp:
include> víi có ph¸p như sau :
< jsp:include page="filename" flush="true" />
Lu ý : <jsp: include> ®ưa kÕt qu¶ kÕt xuÊt cña trang ®ưîc nhóng
vµo trang hiÖn hµnh, trong khi <%@ include %> dïng ®Ó ®ưa
m· nguån cña trang ®ưîc nhóng vµo trang hiÖn hµnh.
Java Server Pages
IV. C¸c Có Ph¸p C¬ B¶n Cña JSP
6.3 ChuyÓn tiÕp ®Õn trang kh¸c víi thÎ <jsp:forward>
Ta sö dông thÎ <jsp:forward> ®Ó triÖu gäi vµ chuyÓn d÷
liÖu cho trang jsp kh¸c xö lý.
VÝ dô : Trang Page1.jsp chØ hiÓn thÞ th«ng tin ®Ó ngưêi
dïng nhËp vµo username vµ password
<html>
<form method=post action=page1.jsp>
username : <input type=text name="username" >
password : <input type=password name="password" >
<input type=submit value="Login" >
</form>
</html>
Java Server Pages
IV. C¸c Có Ph¸p C¬ B¶n Cña JSP
6.3 ChuyÓn tiÕp ®Õn trang kh¸c víi thÎ <jsp:forward>
Trang Page2.jsp kiÓm tra nÕu username kh¸c rçng sÏ chuyÓn tiÕp
quyÒn xö lý file Page3.jsp, ngîc l¹i nÕu username b»ng rçng sÏ ®ưa ra
th«ng b¸o yªu cÇu ngưêi dïng nhËp vµo.

<% if (!request.getParameter("username").equals(" ")) {


%>
<jsp:forward page="Page3.jsp" />
<%} else { out.println(" Please input username and password ");}
%>
<html>
Your username : <%=request.getParametter("username")%>
<br>
Your password : <%=request.getParameter("password")%>;
<br>
</html>
Java Server Pages
IV. C¸c Có Ph¸p C¬ B¶n Cña JSP
6.4. ChuyÓn hưíng sang trang míi víi sendRedirect()
Ngoµi viÖc chuyÓn tiÕp b¹n cã thÓ sö dông phư¬ng
thøc sendRedirect() ®Ó chuyÓn hưíng vµ triÖu gäi trang JSP
kh¸c xö lý.
Sù kh¸c nhau gi÷a chuyÓn tiÕp (forward) vµ chuyÓn
hưíng (redirect) ®ã lµ lÖnh senRedirect() chØ thùc hiÖn triÖu
gäi trang mµ kh«ng chuyÓn tham sè cña trang hiÖn hµnh
cho trang chuyÓn hưíng.
VÝ dô : Tõ Page2.jsp b¹n cã thÓ chuyÓn hưíng ®Õn trang
Page3.jsp như sau :
<%
------------------------------------------
response.sendRedirect("Page3.jsp");
%>
Java Server Pages

V. C¸c §èi Tưîng MÆc §Þnh Cña Trang JSP


Tr×nh diÔn dÞch JSP cho phÐp ta sö dông mét
sè ®èi tưîng ®· khai b¸o trưíc. §iÒu nµy sÏ gióp ta
viÕt m· lÖnh trong trang jsp nhanh h¬n servlet.
1. §èi tîng out : XuÊt ph¸t tõ líp
java.ioPrintWriter. B¹n cã thÓ sö dông ®èi tưîng
nµy ®Ó ®Þnh d¹ng kÕt xuÊt göi vÒ m¸y kh¸ch.
VÝ dô : <% out.println("Result "+7*3); %>
Java Server Pages
V. C¸c §èi Tưîng MÆc §Þnh Cña Trang JSP
2. §èi tîng Request :
XuÊt ph¸t tõ líp HttpServletRequest, ®èi tưîng nµy
gióp b¹n lÊy vÒ c¸c tham sè hay d÷ liÖu do tr×nh kh¸ch
chuyÓn lªn.
Mét trong nh÷ng øng dông th«ng thêng nhÊt cña ®èi
tưîng request lµ n¾m gi÷ c¸c tham sè. B¹n cã thÓ thÊy ®iÒu
nµy b»ng c¸ch gäi phư¬ng thøc getParametter() cña request.
Phư¬ng thøc nµy kÕ thõa tõ líp cha lµ
javax.servlet.ServletRequest. Phư¬ng thøc nµy nhËn tªn
tham sè vµ tr¶ vÒ gi¸ trÞ chuçi tư¬ng øng víi tªn cña tham
sè ®ã.
VÝ dô : LÊy vÒ c¸c th«ng tin ®¨ng nhËp tõ file Bc_td1.jsp
String USERNAME=request.getParameter(“username");
String PASSWORD=request.getParameter(“password");
Java Server Pages
V. C¸c §èi Tưîng MÆc §Þnh Cña Trang JSP
3. §èi tưîng Session :
XuÊt ph¸t tõ líp HttpSession. B¹n sö dông ®èi tưîng
session ®Ó theo dâi kÕt nèi vµ lưu vÕt mét phiªn lµm viÖc
gi÷a tr×nh kh¸ch vµ tr×nh chñ.
§èi tưîng session tham chiÕu ®Õn ®èi tưîng
javax.servlet.http.HttpSession. §èi tưîng session ®ưîc khëi
t¹o b»ng c¸ch gäi phư¬ng thøc pageContext.getSession() ®Ó
t¹o ra trang servlet.
session = pageContext.getSession();
Khi cÇn mét biÕn nµo ®ã cã gi¸ trÞ toµn côc tõ khi më
cho ®Õn khi kÕt thóc tr×nh duyÖt ®ã, b¹n nªn nghÜ ®Õn
session. §èi tưîng session sÏ thùc hiÖn viÖc ®ã gióp b¹n. §èi
tưîng session t¹o biÕn côc bé cho phÐp lưu mét gi¸ trÞ nµo
®ã tõ trang JSP nµy sang trang JSP kh¸c.
Java Server Pages
V. C¸c §èi Tưîng MÆc §Þnh Cña Trang JSP
3. §èi tưîng Session :
VÝ dô : §Ó lưu th«ng tin vÒ phiªn lµm viÖc vµo session
ta thùc hiÖn như sau:
session.putValue(“NGAY", NGAY);
session.putValue("THANG", THANG);
session.putValue("NAM", NAM);
Sau khi ghi th«ng tin vµo session, khi cÇn lÊy vÒ gi¸ trÞ
trong session ta thùc hiÖn nh sau :
String NGAY=(String) session.getValue(“NGAY");
String THANG=(String) session.getValue("THANG");
String NAM=(String) session.getValue("NAM");
Java Server Pages
V. C¸c §èi Tưîng MÆc §Þnh Cña Trang JSP
4. §èi tưîng Response :
§èi tưîng response cho phÐp ph¶n håi th«ng tin xö
lý tõ tr×nh chñ trë vÒ tr×nh duyÖt. Thùc ra ®èi tưîng
response thưêng gäi phư¬ng thøc response.getWrite() ®Ó
thùc hiÖn kÕt xuÊt. C¸c phư¬ng thøc mµ ®èi tưîng response
thưêng ®ưîc liÖt kª như sau :
Liªn kÕt trùc tiÕp ®Õn trang Bc_td2.jsp
response.sendRedirect(“Bc_td2.jsp”) ;
§Þnh kÕt xuÊt ra HTML hay text
response.setContenType(“text/html”) ;
LÊy d÷ liÖu trong vïng ®Öm nhê OutputStream();
response.getOutputStream();
Java Server Pages
V. C¸c §èi Tưîng MÆc §Þnh Cña Trang JSP
5. §èi tưîng Exception :
§èi tưîng exception chØ tån t¹i trong trang xö lý lçi
(errorPage). Nã dïng ®Ó tham chiÕu ®Õn nguyªn nh©n g©y ra
lçi mµ trang error cã liªn quan.
Java Server Pages
VI. Truy XuÊt CSDL B»ng JSP :
1. JDBC vµ tr×nh ®iÒu khiÓn truy xuÊt c¬ së
d÷ liÖu
C«ng viÖc lËp tr×nh mµ JSP thưêng thùc hiÖn nhÊt ®ã
lµ lưu tr÷ th«ng tin vµ truy xuÊt c¬ së d÷ liÖu (database)
cung cÊp th«ng tin cho tr×nh kh¸ch.
ViÖc truy xuÊt c¬ së d÷ liÖu trong JSP dùa vµo tr×nh
truy xuÊt JDBC mµ Java hç trî. JDBC lµ c¸c tr×nh ®¹o diÔn
cho phÐp b¹n truy cËp vµo c¬ së d÷ liÖu cña c¸c hÖ như
Access, MS SQL Server, Oracle,... b»ng ng«n ng÷ truy vÊn
SQL. Cã 4 kiÓu JDBC nh sau:
+ JDBC sö dông cÇu nèi ODBC
+ JDBC kÕt nèi trùc tiÕp víi c¸c tr×nh ®iÒu khiÓn c¬ së d÷ liÖu.
+ JDBC kÕt nèi th«ng qua c¸c øng dông m¹ng trung gian.
+ JDBC kÕt nèi th«ng qua c¸c tr×nh ®iÒu khiÓn ®Æc thï ë xa
Java Server Pages
VI. Truy XuÊt CSDL B»ng JSP :
1. JDBC vµ tr×nh ®iÒu khiÓn truy xuÊt c¬ së
d÷ liÖu
+ KiÓu 1: JDBC sö dông cÇu nèi ODBC
NÕu b¹n ®· tõng lµm viÖc víi c¸c hÖ c¬ së d÷ liÖu trªn
windows b¹n sÏ biÕt ®Õn c¸ch kÕt nèi ODBC (Open
Database Connectivity).
ODBC lµ c¸ch kÕt nèi tæng qu¸t nhÊt ®Õn mäi hÖ c¬ së d÷
liÖu th«ng qua tr×nh qu¶n lý ODBC cña Windows. Mçi hÖ c¬
së d÷ liÖu cung cÊp mét tr×nh ®iÒu khiÓn (driver) cã kh¶
n¨ng ®äc hiÓu ®îc c¬ së d÷ liÖu cña chóng.
Tr×nh ®iÒu khiÓn nµy sÏ ®ưîc ®¨ng ký víi bé qu¶n lý ODBC.
Java cung cÊp cho b¹n kh¶ n¨ng sö dông JDBC ®Ó gäi
ODBC vµ b»ng c¸ch nµy b¹n cã thÓ kiÓm so¸t rÊt nhiÒu hÖ
qu¶n trÞ c¬ së d÷ liÖu kh¸c nhau.
Java Server Pages
VI. Truy XuÊt CSDL B»ng JSP :
1. JDBC vµ tr×nh ®iÒu khiÓn truy xuÊt c¬ së
d÷ liÖu
+ KiÓu 2: JDBC kÕt nèi trùc tiÕp víi c¸c tr×nh
®iÒu khiÓn c¬ së d÷ liÖu.
Khi Java ph¸t triÓn, c¸c nhµ cung cÊp hç trî
c¸c tr×nh ®iÒu khiÓn JDBC kÕt nèi trùc tiÕp víi c¸c
tr×nh ®iÒu khiÓn ®Æc thï cña mçi hÖ c¬ së d÷ liÖu
(native database driver) mµ kh«ng cÇn ph¶i qua
trung gian ODBC cña windows n÷a.
C¸c kÕt nèi nµy nhanh vµ hiÖu qu¶ h¬n kiÓu 1
JDBC-ODBC
Java Server Pages
VI. Truy XuÊt CSDL B»ng JSP :
1. JDBC vµ tr×nh ®iÒu khiÓn truy xuÊt c¬ së
d÷ liÖu
+ KiÓu 3: JDBC kÕt nèi th«ng qua c¸c øng
dông m¹ng trung gian.
Ngµy nay, c¸c øng dông ®Òu g¾n liÒn víi
Internet. Theo m« h×nh lËp tr×nh ph©n t¸n, øng
dông trung gian (middle-ware) trªn m¸y chñ sÏ chÞu
tr¸ch nhiÖm kÕt nèi víi c¬ së d÷ liÖu.
NhiÖm vô cña tr×nh kh¸ch lµ sö dông nh÷ng
tr×nh ®iÒu khiÓn JDBC gän nhÑ cã kh¶ n¨ng giao
tiÕp víi øng dông trung gian qua Internet ®Ó truy
vÊn d÷ liÖu.
Java Server Pages
VI. Truy XuÊt CSDL B»ng JSP :
1. JDBC vµ tr×nh ®iÒu khiÓn truy xuÊt c¬ së
d÷ liÖu
+ KiÓu 4: JDBC kÕt nèi th«ng qua c¸c tr×nh
®iÒu khiÓn ®Æc thï ë xa.
M« h×nh kÕt nèi theo kiÓu 3 do ph¶i th«ng qua
øng dông trung gian (middle-ware) nªn cã thÓ ¶nh
hëng ®Õn tèc ®é truy xuÊt c¬ së d÷ liÖu phÝa m¸y
kh¸ch.
Java ®a ra kÕt nèi JDBC kiÓu 4 cho phÐp
tr×nh kh¸ch sö dông c¸c tr×nh ®iÒu khiÓn gän nhÑ
kÕt nèi trùc tiÕp vµo tr×nh ®iÒu khiÓn c¬ së d÷ liÖu
®Æc thï (thuÇn java) trªn m¸y chñ ë xa th«ng qua
m¹ng Internet.
Java Server Pages
VI. Phư¬ng Thøc Truy XuÊt CSDL B»ng JSP :
2. Phư¬ng Thøc Truy XuÊt CSDL B»ng Jsp
2.1 Thùc hiÖn mét kÕt nèi víi CSDL :
§Ó kÕt nèi víi CSDL, JDBC ®ßi hái hai yÕu tè lµ tr×nh
®iÒu khiÓn (tư¬ng øng víi c¸c kiÓu kÕt nèi) vµ th«ng tin ®Ó
kÕt nèi (®Þa chØ m¸y chñ, tªn tµi kho¶n, mËt khÈu,...).
+ N¹p tr×nh ®iÒu khiÓn: Ta sö dông tr×nh ®iÒu khiÓn
miÔn phÝ do Sun cung cÊp mang tªn JdbcOdbcDriver. Ta
khai b¸o tªn líp nµy như sau :
String drivername=”sun.jdbc.odbc.JdbcOdbcDriver”;
TiÕp ®Õn ta gäi phư¬ng thøc tÜnh forName cña líp
Class ®Ó n¹p vµ khëi t¹o tr×nh ®iÒu khiÓn :
Class.forName(“drivername”).newInstance();
Java Server Pages
VI. Phư¬ng Thøc Truy XuÊt CSDL B»ng JSP :
2. Phư¬ng Thøc Truy XuÊt CSDL B»ng Jsp
2.1 Thùc hiÖn mét kÕt nèi víi CSDL :
+ T¹o th«ng tin kÕt nèi : Lóc nµy ta ®· hoµn toµn cã
kh¶ n¨ng sö dông tr×nh ®iÒu khiÓn JDBC-ODBC ®Ó truy
xuÊt d÷ liÖu. Tuy nhiªn tr×nh ®iÒu khiÓn cÇn biÕt thªm
nh÷ng th«ng tin cô thÓ như tµi kháan ®¨ng nhËp, th«ng tin
kÕt nèi,...Ta ®Æt nh÷ng th«ng tin nµy trong chuçi kÕt nèi
như sau :
String url=”jdbc:odbc:tªn CSDL”;
String username=””;
String password=””;
Ở ®©y chuçi jdbc:odbc: lµ b¾t buéc víi tr×nh ®iÒu khiÓn
JDBC-ODBC. TiÕp sau chuçi nµy lµ th«ng tin kÕt nèi cô thÓ
®Õn CSDL do ODBC qui ®Þnh.
Java Server Pages
VI. Phư¬ng Thøc Truy XuÊt CSDL B»ng JSP :
2. Phư¬ng Thøc Truy XuÊt CSDL B»ng Jsp
2.1 Thùc hiÖn mét kÕt nèi víi CSDL :
+ T¹o th«ng tin kÕt nèi :
TiÕp tôc ta t¹o mét ®èi tưîng Connection b»ng c¸ch gäi
phư¬ng thøc getConnection() cña líp DriverManager ®Ó yªu cÇu
tr×nh ®iÒu khiÓn n¹p bëi Class.forName() tríc ®ã tiÕp nhËn th«ng
tin vµ thùc thi kÕt nèi như sau:
Connection conn = null;
conn = DriverManager.getConnection(url, “username”, “password ”);
url : chuçi nªu lªn ®Æc ®iÓm cña CSDL cã d¹ng
jdbc:subprotocol:subname
subprotocol : giao thøc con tư¬ng øng víi lo¹i CSDL
subname : tªn cña CSDL
username : tªn ngưêi dïng khi ®¨ng nhËp vµo CSDL
password : mËt khÈu ngưêi dïng khi ®¨ng nhËp CSDL
Java Server Pages
VI. Phư¬ng Thøc Truy XuÊt CSDL B»ng JSP :
2. Phư¬ng Thøc Truy XuÊt CSDL B»ng Jsp
2.2 Thùc hiÖn c¸c lÖnh :
C¸c chư¬ng tr×nh JSP chØ thùc hiÖn ®ưîc c¸c lÖnh
trªn CSDL th«ng qua ®èi tưîng Statement. §èi tưîng nµy
®ưîc dïng ®Ó thùc thi mäi c©u lÖnh sql.
Ta t¹o ®èi tîng Statement tõ kÕt nèi conn
Statement stmt =null;
stmt = conn.createStatement();
C¸c c©u lÖnh sql cã thÓ ®îc thùc hiÖn tøc th× th«ng
qua ®èi tưîng Statement, cã thÓ lµ mét c©u lÖnh biªn dÞch
trưíc (®èi tưîng PreparedStatement) hay cã thÓ lµ mét lÖnh
gäi c¸c thñ tôc cµi s½n (store procedure) trong CSDL (®èi
tưîng CallableStatement).
Java Server Pages
VI. Phư¬ng Thøc Truy XuÊt CSDL B»ng JSP :
2. Phư¬ng Thøc Truy XuÊt CSDL B»ng Jsp
2.2 Thùc hiÖn c¸c lÖnh :
rs=stmt.executeQuery(sql);
hoÆc : rs=stmt.executeUpdate(sql);
C¸c c©u lÖnh sql cã thÓ thùc hiÖn th«ng qua :
+ phư¬ng thøc executeQuery() -nÕu kÕt qu¶
lµ mét ®èi tưîng ResultSet
+ phư¬ng thøc executeUpdate()-nÕu kÕt qu¶
lµ mét sè nguyªn cho biÕt tæng sè c¸c dßng d÷
liÖu chÞu t¸c dông cña c©u lÖnh võa thùc hiÖn.
Java Server Pages
VI. Phư¬ng Thøc Truy XuÊt CSDL B»ng JSP :
3. §o¹n lÖnh dïng JSP truy cËp d÷ liÖu
trªn Server
// N¹p tr×nh ®iÒu khiÓn JDBC
 String drivername=”sun.jdbc.odbc.JdbcOdbcDriver”;
 Class.forName(drivername).newInstance();
// Th«ng tin kÕt nèi JDBC-ODBC
 String url=”jdbc:odbc:Database_Name”;
 String username=””;
 String password=””;
Java Server Pages
VI. Phư¬ng Thøc Truy XuÊt CSDL B»ng JSP :
3. §o¹n lÖnh dïng JSP truy cËp d÷ liÖu trªn server
 Connection con=null;
// Thùc hiÖn kÕt nèi
 con=DriverManager.getConnection(url, username, password);

 Statement stmt=null;
 stmt=con.createStatement();
// Thùc thi c©u lÖnh truy vÊn vµ nhËn kÕt qu¶ tr¶ vÒ
 ResultSet rs=null;
// T¹o c©u lÖnh truy vÊn
 String sql=”select * from TABLE_NAME”;
 rs=stmt.executeQuery(sql);
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
I. CÊu H×nh Tr×nh Chñ Web Server
1. Giíi thiÖu vÒ Jrun
+ §Ó nghiªn cøu vÒ JSP tríc tiªn ph¶i cã tr×nh chñ Web Server “hiÓu
Java”. Tr×nh chñ ®ã ph¶i cã kh¶ n¨ng th«ng dÞch vµ gäi thùc thi ®ưîc
c¸c ®¬n thÓ Java theo ®Æc t¶ cña Sun.
+ MÆc dï hiÖn nay cã rÊt nhiÒu tr×nh chñ Web dµnh cho Java như
Java Web Server, TomCat, IPLanet, Jrun,...Nhng do Jrun viÕt b»ng
Java nªn b¹n cã thÓ sö dông vµ cµi ®Æt Jrun c¶ trªn m«i trưêng Linux
lÉn Unix.
+ Tr×nh Jrun cung cÊp kh¶ n¨ng triÖu gäi m· Java th«ng qua Servlet.
Jrun cung cÊp cho ta hai dÞch vô Web ho¹t ®éng trªn hai cæng:
- Cæng 8100 lµ dÞch vô Web th«ng thêng vµ cæng 8000 lµ dÞch vô
Web phôc vô cho cÊu h×nh tr×nh chñ.
Còng như nh÷ng Web server kh¸c, t×m hiÓu Jrun bao gåm c¸c bưíc
sau:
- Cµi ®Æt tr×nh chñ Jrun.
- CÊu h×nh kÕt nèi víi c¸c Web server kh¸c.
- Qu¶n trÞ Jrun.
- T×m hiÓu c¸c file quan träng cña Jrun.
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
I. CÊu H×nh Tr×nh Chñ Web Server
2. Cµi ®Æt Jrun
2.1. Cµi ®Æt JDK
+ Trưíc khi cµi ®Æt tr×nh chñ Jrun Web Server ta ph¶i
cµi ®Æt JDK. MÆc ®Þnh JDK cña Java sÏ ®ưîc cµi vµo thư môc
C:\Jdk. Khi Jrun yªu cÇu chØ ®Þnh thư môc cµi ®Æt JDK ta
h·y chØ ®êng dÉn ®Õn thư môc ®ã.
2.2. Cµi ®Æt Jrun Web Server
+ Yªu cÇu vÒ phÇn cøng vµ phÇn mÒm :
- 32 MB Ram
- 20 MB dung lưîng ®Üa cøng
- HÖ ®iÒu hµnh : Windows hay NT/2000, Unix vµ Linux.
- Sö dông tr×nh duyÖt Netscape hay Internet Explorer
- M«i trêng m¸y ¶o JRE (Java Runtime Environment)
- JDK
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
I. CÊu H×nh Tr×nh Chñ Web Server
2. Cµi ®Æt Jrun
2.3. CÊu tróc thư môc cña Jrun
Thư môc Néi dung
/bin Chøa c¸c tËp tin chư¬ng tr×nh cña Jrun
/connectors Chøa c¸c tËp tin Web server kÕt nèi
/docs Chøa c¸c trang tµi liÖu html hưíng dÉn sö dông
/lib Chøa c¸c tËp tin thư viÖn .jar
/lib/ext Chøa c¸c tËp tin .jar gåm servlet.jar & ejb.jar
/logs Chøa c¸c tËp tin log cña Jrun
/samples Chøa c¸c trang jsp vµ servlet mÉu
/servers Chøa c¸c øng dông Web cña Jrun
/servers/lib Chøa c¸c tËp tin .jar vµ c¸c líp ®èi tưîng .class
/servlets Chøa c¸c tËp tin .class cña servlet truy cËp
/uninst Th«ng tin vÒ th¸o bá cµi ®Æt cña Jrun
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
I. CÊu H×nh Tr×nh Chñ Web Server
3. Cöa sæ ®iÒu khiÓn (Jrun Management Console)
Jrun Management Console lµ mét øng dông Web nh»m gióp
cho thao t¸c trªn giao diÖn Web ®Ó cÊu h×nh Jrun.
§Ó dïng JMC nh mét ngưêi qu¶n trÞ Web Server, ta cã thÓ thùc
hiÖn theo c¸c bíc sau:
NhËp ®Þa chØ URL : http://local:8000
+ Chän Start -> Program -> Jrun3.1 -> Jrun Admin Server
+ Chän Start -> Program -> Jrun3.1 -> Jrun Management
Console

NÕu thµnh c«ng Jrun sÏ hiÓn thÞ mµn h×nh ®¨ng nhËp
(login) yªu cÇu b¹n cung cÊp tµi kho¶n ngưêi dïng (username) vµ
mËt khÈu (password) ®Ó ®¨ng nhËp vµo phÇn qu¶n trÞ
(Administrator) cña tr×nh chñ.
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
I. CÊu H×nh Tr×nh Chñ Web Server
3. Cöa sæ ®iÒu khiÓn (Jrun Management Console)
.
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
I. CÊu H×nh Tr×nh Chñ Web Server
3. Cöa sæ ®iÒu khiÓn (Jrun Management Console)
Sau khi ®¨ng nhËp, c¸c th«ng tin qu¶n trÞ sÏ
hiÓn thÞ H×nh -2 Trang cÊu h×nh qu¶n trÞ cña Jrun
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
I. CÊu H×nh Tr×nh Chñ Web Server
3. Cöa sæ ®iÒu khiÓn (Jrun Management Console)
Sau khi ®¨ng nhËp, c¸c th«ng tin qu¶n trÞ sÏ
hiÓn thÞ
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
I. CÊu H×nh Tr×nh Chñ Web Server
3.1 CÊu h×nh qu¶n trÞ Web Server
Thưêng b¹n sö dông trang qu¶n trÞ ®Ó qu¶n lý, khëi ®éng,
thay ®æi tham sè cho tr×nh chñ Default Web Server phôc vô
øng dông Web.
3.1.1 CÊu h×nh Jrun Default Web Server
Ta chØ cÇn cÊu h×nh theo c¸c th«ng tin sau :
+ Web Server Address *
+ Client IP filter *
+ Web Server Port 8100
+ Ide threed timeout 300
+ Minimum threed count 1
+ Maximum active request 100
+ Maximum concurrent request 100
+ Jrun Web Server on
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
I. CÊu H×nh Tr×nh Chñ Web Server
3.1 CÊu h×nh qu¶n trÞ Web Server
3.1.2 Tù t¹o mét Web Server
+ Ngoµi Jrun Default Server, b¹n cã thÓ tù t¹o
mét Web Server kh¸c cho riªng m×nh
Lưu ý : trªn mét m¸y cã thÓ cã nhiÒu Web Server
ch¹y cïng mét lóc miÔn sao chóng ®îc cÊu h×nh víi
sè hiÖu cæng kh¸c nhau.
+ §Ó t¹o Web Server kh¸c, b¹n chän nh¸nh gèc
bªn khung trang tr¸i. NhÊn nót Add a server bªn
khung trang ph¶i vµ ®Æt tªn cho Web Server còng
như c¸c th«ng tin cÊu h×nh kh¸c mµ Jrun yªu cÇu
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
I. CÊu H×nh Tr×nh Chñ Web Server
3.1 CÊu h×nh qu¶n trÞ Web Server
3.1.2 Tù t¹o mét Web Server cña riªng b¹n
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
I. CÊu H×nh Tr×nh Chñ Web Server
3.2 CÊu h×nh vµ t¹o øng dông Web (Web Application)
3.2.1 T¹o míi øng dông Web
Th«ng thêng khi t¹o mét øng dông Web, ta cÇn
ph¶i cÊu h×nh øng dông nµy trong Jrun Web Server.
§Ó t¹o mét øng dông trªn Web Server cña Jrun, ta
chØ cÇn theo c¸c bíc sau:
+ Trưíc khi cÊu h×nh Jrun, ta cÇn chó ý ®Þa chØ
IP cña m¸y chñ n¬i Jrun ®ang ch¹y. NÕu kh«ng kÕt
nèi m¹ng, ta cã thÓ sö dông localhost hay 127.0.0.1
lµ ®Þa chØ IP côc bé cña mçi m¸y.
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
I. CÊu H×nh Tr×nh Chñ Web Server
3.2 CÊu h×nh vµ t¹o øng dông Web (Web Application)
3.2.1 T¹o míi øng dông Web
+ Chän Jrun Web Server (Admin Server hay Default Server)
+ BÊm vµo link Create Application
+ Chän Jrun Addmin Server hay Jrun Default Server.
+ NhËp tªn cña øng dông. (VÝ dô : DATN)
+ NhËp vµo ®Þa chØ gèc URL cho øng dông.
+ Chän thư môc mµ ta ®Æt c¸c trang JSP cña øng dông.
VÝ dô: C:/DATN/Jsp lµ thư môc chøa c¸c trang JSP cña øng dông.
+ Sau khi ®iÒn th«ng tin ta nhÊn nót Create.
+ TiÕp ®Õn ta khëi ®éng l¹i Web Server tư¬ng øng víi tªn mµ ta dïng
®Ó t¹o øng dông(Jrun Default Server).
+ Cuèi cïng ta thö trªn mµn h×nh Browser cña tr×nh duyÖt b»ng c¸ch
gâ vµo ®Þa chØ URL nh sau : http://localhost:8100/DATN/Jsp/index.jsp
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
I. CÊu H×nh Tr×nh Chñ Web Server
3.2 CÊu h×nh vµ t¹o øng dông Web (Web Application)
3.2.1 T¹o míi øng dông Web
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
I. CÊu H×nh Tr×nh Chñ Web Server
3.2 CÊu h×nh vµ t¹o øng dông Web (Web Application)
3.2.2 Xãa mét øng dông Web
Do nhu cÇu sö dông ®«i khi b¹n t¹o ra mét øng dông
web, nhng cã thÓ sau mét thêi gian sö dông b¹n kh«ng cÇn
dïng ®Õn nã n÷a, ta cã thÓ xãa nã ®i. §Ó xãa mét øng dông
web:
+ Chän Web Application tõ mµn h×nh qu¶n trÞ cña Jrun
+ TiÕp ®Õn chän Web Application. Jrun sÏ hiÓn thÞ danh
s¸ch c¸c øng dông ta ®· ®¨ng ký hoÆc t¹o ra trưíc ®ã.
+ §Ó lo¹i bá øng dông Web, ta chän môc Remove
Application.
+ Khi Jrun hiÓn thÞ danh s¸ch c¸c ®Ò môc cÇn xãa, b¹n
chän tªn cña øng dông råi chän Remove.
+ §Ó Jrun nhËn ra øng dông ®· bÞ xãa hoµn toµn, cÇn
khëi ®éng l¹i tr×nh chñ Jrun Web Server.
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
I. CÊu H×nh Tr×nh Chñ Web Server
3.2 CÊu h×nh vµ t¹o øng dông Web (Web Application)
3.2.2 Xãa mét øng dông Web
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
I. CÊu H×nh Tr×nh Chñ Web Server
3.2 CÊu h×nh vµ t¹o øng dông Web (Web Application)
3.2.3 CËp nhËt mét øng dông Web
Sau khi t¹o ra mét øng dông Web nÕu cÇn bæ sung hoÆc
thay ®æi, ta cã thÓ cËp nhËt l¹i néi dung øng dông theo c¸c bưíc
sau:
+ Chän Web Application tõ mµn h×nh qu¶n trÞ cña Jrun Web
Server.
+ Jrun sÏ hiÓn thÞ danh s¸ch c¸c øng dông ®· ®¨ng ký trưíc
®ã.
+ Chän môc Edit Application.
+ Khi Jrun hiÓn thÞ danh s¸ch øng dông, ta cÇn chän lÊy øng
dông muèn cËp nhËt.
+ Th«ng tin øng dông sÏ hiÖn ra ®Ó ta bæ sung hoÆc söa ®æi.
+ CÇn ph¶i khëi ®éng l¹i tr×nh chñ Jrun Web Server.
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
I. CÊu H×nh Tr×nh Chñ Web Server
3.2 CÊu h×nh vµ t¹o øng dông Web (Web Application)
3.2.3 CËp nhËt mét øng dông Web
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
I. CÊu H×nh Tr×nh Chñ Web Server
4. T¹o vµ qu¶n lý user trong Jrun Web Server
§èi víi Jrun Web Server ta cã thÓ t¹o ra mét sè
thµnh viªn giíi h¹n cho phÐp truy cËp tr×nh chñ Web
Server. Ta cã thÓ thùc hiÖn theo c¸c bíc sau :
+ Chän môc manage JMC users tõ trang qu¶n trÞ
cña Jrun.
+ NhËp tªn user vµ password cña thµnh viªn ®ã.
Mçi lÇn ta chØ cÇn ®¨ng ký cho hai thµnh viªn.
+ Ta chän nót Update JMC Uesrs ®Ó cËp nhËt
user vµo c¬ së d÷ liÖu cña Jrun.
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
I. CÊu H×nh Tr×nh Chñ Web Server
4. T¹o vµ qu¶n lý user trong Jrun Web Server
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
I. CÊu H×nh Tr×nh Chñ Web Server
5. KiÓm tra lçi th«ng qua Log Files
Th«ng thưêng bÊt kú lçi nµo x¶y ra ®èi víi Jrun ®Òu ®ưîc lưu vµo
file logs. Nh÷ng file logs nµy n»m trong thư môc [Jrun_Home]\logs.
Mçi file log lưu l¹i nh÷ng sù kiÖn vµ lçi ph¸t sinh kh¸c nhau.
Th«ng thưêng cã 3 file log sau :
+ default-err.log : file nµy lưu l¹i nh÷ng lçi cña Jrun x¶y ra trong
qu¸ tr×nh dÞch
+ default-even.log : lưu l¹i nh÷ng lçi trong qu¸ tr×nh thùc hiÖn
truy xuÊt tµi nguyªn cña Java.
+ default-out.log : lưu l¹i nh÷ng lçi liªn quan ®Õn m«i trưêng bªn
ngoµi. VÝ dô : Khi b¹n göi th«ng tin ®Õn mét ®Þa chØ kh«ng cã th× lçi sÏ
®ưîc ghi vµo default-out.log.
 Tãm l¹i : §Ó theo dâi qu¸ tr×nh lµm viÖc cña Jrun, ta cã thÓ dùa vµo
néi dung cña file log. File log lµ n¬i gióp ta ph¸t hiÖn vµ kh¾c phôc
nh÷ng lçi ngo¹i lÖ cña hÖ thèng
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
II. X©y Dùng C¬ ChÕ Connection Poll
1. Giíi thiÖu :
+ Nhu cÇu vÒ kÕt nèi c¬ së d÷ liÖu trung t©m ®Ó truy vÊn
d÷ liÖu trong c¸c øng dông cña Web ngµy cµng t¨ng.
+ C¸c hÖ c¬ së d÷ liÖu ph¶i tiªu tèn rÊt nhiÒu tµi nguyªn
®Ó duy tr× liªn tôc kÕt nèi trong qu¸ tr×nh truy vÊn.
+ Ta chØ nªn më kÕt nèi truy vÊn ®Õn c¬ së d÷ liÖu chØ khi
nµo thËt sù cÇn thiÕt. Mét khi ®· hoµn tÊt truy xuÊt, b¹n ph¶i
tr¶ l¹i kÕt nèi cho ngêi dïng kh¸c truy cËp. MÆc dï vËy, mçi
mét kÕt nèi ®Õn c¬ së d÷ liÖu ®Òu ph¶i ®ßi hái cã thêi gian
thiÕt lËp, ph©n bæ tµi nguyªn,...
+ C¸c tr×nh chñ Web server ®a ra c¬ chÕ POLL cho phÐp
c¸c yªu cÇu vÒ kÕt nèi ®Õn c¬ së d÷ liÖu chØ ®îc më mét lÇn vµ
dïng chung bëi c¸c trang JSP víi nhau.
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
II. X©y Dùng C¬ ChÕ Connection Poll
1. Giíi thiÖu :
+ V× vËy, c¸c yªu cÇu vÒ truy vÊn d÷ liÖu thưêng chØ diÔn ra
trong thêi gian ng¾n
+ Nh÷ng trang JSP tríc khi truy xuÊt d÷ liÖu sÏ yªu cÇu hÖ
thèng cung cÊp mét kÕt nèi, hÖ thèng sÏ kiÓm tra xem kÕt nèi
®· ®ưîc thiÕt lËp hay cha. NÕu chưa cã hÖ thèng sÏ t¹o mét kÕt
nèi cung cÊp cho trang JSP sö dông.
+ Trang JSP sau khi sö dông xong kh«ng ®ãng kÕt nèi mµ
tr¶ l¹i kÕt nèi cho hÖ thèng. HÖ thèng sÏ lưu kÕt nèi trë l¹i ng¨n
xÕp hoÆc hµng ®îi.
+ Trong lêi triÖu gäi trang JSP ë phiªn lµm viÖc kh¸c, nÕu
cÇn ®Õn truy xuÊt c¬ së d÷ liÖu, hÖ thèng sÏ cung cÊp kÕt nèi ®·
cã trưíc ®ã mµ kh«ng cÇn sö dông tµi nguyªn cña hÖ thèng t¹o
l¹i kÕt nèi.
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
II. X©y Dùng C¬ ChÕ Connection Poll
1. Giíi thiÖu :
Ta sÏ cµi ®Æt mét hÖ thèng như vËy cho c¬ chÕ Pool (c¬ chÕ chia sÎ
kÕt nèi). Trưíc hÕt hÖ thèng cña ta cÇn hç trî hai phư¬ng thøc chÝnh cho
yªu cÇu kÕt nèi ®ã lµ cung cÊp kÕt nèi (getConnection()) vµ nhËn l¹i kÕt
nèi khi trang JSP ®· sö dông (releaseConnection()). Khai b¸o giao tiÕp
interface mang tªn IconnectionPool sÏ cung cÊp th«ng tin nµy.
// Interface ®Þnh nghÜa c¸c phư¬ng thøc c¬ b¶n cung cÊp vµ chia sÎ kÕt nèi
public interface IconnectionPool
{ public Connection getConnection() throws SQLException;
public void releaseConnection(Connectionconn) throws
SQLException;
}
Ta h×nh dung Poll tư¬ng tù cµi ®Æt cña ng¨n xÕp hoÆc hµng ®îi dïng ®Ó l-
ưu tr÷ c¸c phÇn tö cho môc ®Ých sö dông l¹i. Pool kh«ng ®ßi hái thø tù lÊy
ra cña c¸c phÇn tö. C¸c phÇn tö lưu trong Pool thưêng lµ ®èi tưîng
Connection cã thÓ lÊy ra ngÉu nhiªn hoÆc tuÇn tù.
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
II. X©y Dùng C¬ ChÕ Connection Poll
2. C¬ ChÕ Pool Hç Trî Bëi Web Server
+ HiÖn nay hÇu hÕt c¸c tr×nh chñ Web server ®Òu cung
cÊp s½n c¬ chÕ Pool gäi lµ Data Source.
+ ViÖc qu¶n lý vµ ®iÒu hµnh Pool sÏ do tr×nh chñ Web
server ®¶m nhiÖm vµ b¹n chØ cÇn cung cÊp cho tr×nh chñ
nh÷ng th«ng tin t¹o Pool lµ ®ñ.
+ Chóng ta sÏ cÊu h×nh vµ sö dông c¬ chÕ Pool hç trî
bëi tr×nh chñ Jrun. Tríc hÕt ta më trang
http://localhost:8100/ ®Ó vµo trang qu¶n trÞ cña Jrun. TiÕp
®Õn ta chän Default Jrun Server\JDBC Data Source. NhÊn
nót Add trang cung cÊp th«ng tin ®Ó cÊu h×nh cho
DataSource hiÓn thÞ nh sau :
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
II. X©y Dùng C¬ ChÕ Connection Poll
2. C¬ ChÕ Pool Hç Trî Bëi Web Server
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
II. X©y Dùng C¬ ChÕ Connection Poll
2. C¬ ChÕ Pool Hç Trî Bëi Web Server
+ Jrun cho phÐp sö dông nhiÒu lo¹i kÕt nèi JDBC.Trong
trêng hîp nµy ta chän môc danh s¸ch JDBC to ODBC Bridge.
Môc Data Source Name ta gâ vµo tªn CSDL nguån. §©y lµ sÏ
chuçi ®îc dïng ®Ó tham chiÕu ®Õn Pool sau nµy.
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
II. X©y Dùng C¬ ChÕ Connection Poll
2. C¬ ChÕ Pool Hç Trî Bëi Web Server
TiÕp tôc ta nhËp vµo c¸c th«ng tin liªn quan ®Õn chuçi kÕt nèi
c¬ së d÷ liÖu.
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
II. X©y Dùng C¬ ChÕ Connection Poll
2. C¬ ChÕ Pool Hç Trî Bëi Web Server
TiÕp tôc nhÊn Next Jrun sÏ hoµn tÊt nh÷ng thao t¸c
cßn l¹i.
CÀI ĐẶT VÀ CẤU HINH WEB SERVER
II. X©y Dùng C¬ ChÕ Connection Poll
2. C¬ ChÕ Pool Hç Trî Bëi Web Server
Ng«n Ng÷ Truy VÊn SQL
Ng«n ng÷ Truy vÊn d÷ liÖu (SQL)
I. Giíi thiÖu
Ng«n ng÷ SQL (Structured Query Language) ®îc h·ng
m¸y tÝnh IBM ®a ra vµo n¨m 1970.
Lµ mét ng«n ng÷ cã cÊu tróc, cã nghÜa lµ b»ng tËp hîp c¸c
dßng lÖnh sÏ chØ cho hÖ qu¶n trÞ CSDL biÕt lµ ngêi sö dông sÏ
lµm g× chø kh«ng chØ ra lµm như thÕ nµo.
Ng«n ng÷ SQL cung cÊp mét c«ng cô truy vÊn (query)
nh»m cho phÐp ngêi sö dông ®Æt c©u hái víi d÷ liÖu ®ang chøa
trong c¸c b¶ng, d÷ liÖu ®ưîc rót ra tõ nh÷ng truy vÊn cã thÓ
cã nguån tõ mét hay nhiÒu b¶ng kh¸c nhau.
Sau ®ã tham kh¶o kÕt qu¶ nµy, xem xÐt, ph©n tÝch nã kü
lìng ®Ó cã nh÷ng xö lý th«ng tin thiÕt thùc h¬n.
Ng«n ng÷ Truy vÊn d÷ liÖu (SQL)
II. C¸c c©u lÖnh SQL
Trong môc nµy tr×nh bµy mét sè lÖnh c¬ b¶n
dïng ®Ó thao t¸c trªn c¬ së d÷ liÖu như: chän d÷ liÖu,
thªm vµo d÷ liÖu míi, xo¸ d÷ liÖu cò, söa ®æi d÷ liÖu.
1. LÖnh Select : LÖnh nµy dïng ®Ó lÊy d÷ liÖu trong
mét b¶ng tho¶ m·n ®iÒu kiÖn nµo ®ã.
Có ph¸p:
Select [*|fields] From tablename
[Where expression]
[Group by fields1]
[Having expression1]
[Order by {colname }[ASC | DESC]]
Ng«n ng÷ Truy vÊn d÷ liÖu (SQL)
II. C¸c c©u lÖnh SQL
 * : tÊt c¶ c¸c trưêng ®Òu ®ưîc chän.
 colname: tªn cét.
 tablename: lµ tªn cña mét Table hoÆc nhiÒu Table mµ c¸c
Record ®ưîc chän.
 expression: lµ biÓu thøc ®iÒu kiÖn ®ưîc ®Æt ra mµ c¸c b¶n ghi
®ưîc chän tõ tablename ph¶i tho¶ m·n biÓu thøc nµy.
 expression1: mét biÓu thøc ®iÒu kiÖn ®i sau mÖnh ®Ò Having.
MÖnh ®Ò Having th«ng thưêng ®i kÌm víi mÖnh ®Ò Group by,
expression1 lµ biÓu thøc kh«ng t¸c ®éng vµo toµn b¶ng ®ưîc
chØ ra bëi mÖnh ®Ò From mµ chØ t¸c ®éng lÇn lưît tõng nhãm
c¸c b¶n ghi ®· ®ưîc chØ ra bëi mÖnh ®Ò Group by.
 Order by: dïng ®Ó s¾p c¸c b¶n ghi t¨ng hay gi¶m
Ng«n ng÷ Truy vÊn d÷ liÖu (SQL)
II. C¸c c©u lÖnh SQL
1. LÖnh Select
 VÝ dô: Giả sử cã mét Table cã tªn NHANSU như
sau:
Maso Hoten Ngaysinh Nghenghiep

1 Lª Văn TuÊn 10/8/1990 Häc sinh

2 NguyÔn Văn Hµ 7/8/1970 Kü s

3 NguyÔn ThÞ Hoa 30/07/1980 Sinh viªn


Ng«n ng÷ Truy vÊn d÷ liÖu (SQL)
II. C¸c c©u lÖnh SQL
1. LÖnh Select
 NÕu sö dông lÖnh: Select Hoten, Ngaysinh From
nhansu
 SÏ chän tÊt c¶ c¸c b¶n ghi nhưng chØ giíi h¹n bëi
hai trưßng Hoten vµ Ngaysinh.
 Cô thÓ gåm c¸c b¶n ghi sau:
Lª Văn TuÊn 10/8/1990
NguyÔn văn Hµ 7/8/1970

NguyÔn ThÞ Hoa 30/07/1980


Ng«n ng÷ Truy vÊn d÷ liÖu (SQL)
II.C¸c c©u lÖnh SQL
2. LÖnh Insert Into : LÖnh nµy dïng ®Ó chÌn
thªm mét Record d÷ liÖu míi vµo cho b¶ng.
 Có ph¸p:
Insert Into table[(field1[,field2[,...]])]
Values(value1[, value2[,...])
 Trong ®ã:
Table: tªn cña Table cÇn bæ sung b¶n ghi
filed1,field2: tªn cña c¸c trưêng cÇn bæ sung d÷
liÖu
value1,value2: gi¸ trÞ cÇn bæ sung øng víi c¸c
trưêng filed1,field2...
Ng«n ng÷ Truy vÊn d÷ liÖu (SQL)
II. C¸c c©u lÖnh SQL
2. LÖnh Insert Into
 VÝ dô:
 Gi¶ sö ta cã ®ưîc Table Nhansu như trªn, b©y giê bæ
sung vµo b¶n ghi míi:
Insert Into Nhansu(Hoten, Ngaysinh, Nghenghiep)
Values(“Nguyễn v¨n An”,”10/7/1995”,”Häc sinh”)
 Sau khi thùc hiÖn lÖnh nµy b¶ng Nhansu b©y giê
như sau:
Ng«n ng÷ Truy vÊn d÷ liÖu (SQL)
II.C¸c c©u lÖnh SQL
2. LÖnh Insert Into

Maso Hoten Ngaysinh Nghenghiep

1 Lª Văn TuÊn 10/08/1990 Häc sinh

2 NguyÔn văn Hµ 07/08/1970 Kü s

3 NguyÔn ThÞ Hoa 30/07/1980 Sinh viªn

4 NguyÔn văn An 10/07/1995 Häc sinh


Ng«n ng÷ Truy vÊn d÷ liÖu (SQL)
II. C¸c c©u lÖnh SQL
3. LÖnh Update : LÖnh nµy dïng ®Ó thay ®æi d÷ liÖu cho
c¸c trưêng trong mét b¶ng tho· m·n ®iÒu kiÖn nµo ®ã
 Có ph¸p:
Update table Set Field1=value1[,...] Where expression
 Trong ®ã:
table: lµ tªn cña Table chøa b¶n ghi cÇn söa ®æi.
Field1: trưêng cÇn thay ®æi d÷ liÖu
Value1: gi¸ trÞ d÷ liÖu míi
expression : lµ biÓu thøc, mµ c¸c b¶n ghi ®ưîc cËp nhËt
ph¶i tho¶ m·n biÓu thøc nµy
Ng«n ng÷ Truy vÊn d÷ liÖu (SQL)
II. C¸c c©u lÖnh SQL
3. LÖnh Update
 VÝ dô:
 Söa ®æi trưêng Nghenghiep cã gi¸ trÞ míi thµnh
“CNVC” cho tÊt c¶ c¸c record tho¶ m·n ®iÒu kiÖn lµ
trưêng Ngaysinh="07/08/1970":
Update Nhansu Set Nghenghiep=“CNVC” Where
Ngaysinh=“07/08/1970”
Ng«n ng÷ Truy vÊn d÷ liÖu (SQL)
II. C¸c c©u lÖnh SQL
3. LÖnh Update
Table Nhansu b©y giê như sau:
Maso Hoten Ngaysinh Nghenghiep

1 Lª Văn TuÊn 10/08/1990 Häc sinh

2 NguyÔn văn Hµ 07/08/1970 CNVC

3 NguyÔn ThÞ Hoa 30/07/1980 Sinh viªn

4 NguyÔn văn An 10/07/1995 Hoc sinh


Ng«n ng÷ Truy vÊn d÷ liÖu (SQL)
II. C¸c c©u lÖnh SQL
4. LÖnh Delete
LÖnh nµy dïng ®Ó xo¸ mét hoÆc nhiÒu record
trong mét b¶ng tho¶ m·n ®iÒu kiÖn nµo ®ã.
 Có ph¸p:
Delete * From table Where expression
 Trong ®ã:
table: lµ tªn Table chøa c¸c b¶n ghi cÇn xo¸.
*: tÊt c¶ c¸c trưêng cña b¶n ghi ®Òu bÞ xo¸.
expression : lµ tÊt c¶ c¸c b¶n ghi ®ưîc xo¸ ph¶i
tho¶ m·n biÓu thøc nµy.
Ng«n ng÷ Truy vÊn d÷ liÖu (SQL)
II. C¸c c©u lÖnh SQL
4. LÖnh Delete
VÝ dô:
 Xo¸ tÊt c¶ c¸c b¶n ghi trong Table Nhansu cã trưêng
Nghenghiep=“Häc sinh“.
 Delete * From nhansu Where Nghenghiep=“Häc sinh“
B©y giê table Nhansu trë thµnh:

Maso Hoten Ngaysinh Nghenghiep

2 NguyÔn văn Hµ 07/08/1970 CNVC

3 NguyÔn ThÞ Hoa 30/07/1980 Sinh viªn


Ng«n ng÷ Truy vÊn d÷ liÖu (SQL)
Chú ý: Trong mệnh đề WHERE, các phép toán
được sử dụng là:
Phép toán Mô tả
= So sánh bằng
<> So sánh khác
> Lớn hơn
< Nhỏ hơn
>= Lớn hơn hoặc bằng
<= Nhỏ hơn hoặc bằng
BETWEEN Nằm giữa một khoảng
LIKE So sánh mẫu chuỗi
Lưu ý: Trong một số phiên bản của SQL, phép toán
<> có thể được viết dưới dạng !=
Ng«n ng÷ Truy vÊn d÷ liÖu (SQL)
* Sử dụng dấu nháy
Lưu ý rằng ở ví dụ trên ta đã sử dụng hai dấu nháy đơn (')
bao quanh giá trị điều kiện 'Sandnes'.
SQL sử dụng dấu nháy đơn bao quanh các giá trị ở dạng
chuỗi văn bản (text).
Nhiều hệ CSDL còn cho phép sử dụng dấu nháy kép (").
Các giá trị ở dạng số không dùng dấu nháy để bao quanh.
+ Với dữ liệu dạng chuỗi văn bản:
Câu lệnh đúng:
SELECT * FROM Persons WHERE FirstName = 'Tove'
Câu lệnh sai:
SELECT * FROM Persons WHERE FirstName = Tove
+ Với dữ liệu dạng số:

Câu lệnh đúng:


SELECT * FROM Persons WHERE Year > 1965
Câu lệnh sai:
SELECT * FROM Persons WHERE Year > '1965'
* Phép toán điều kiện LIKE
Phép toán LIKE được dùng để tìm kiếm một
chuỗi mẫu văn bản trên một cột.
Cú pháp :
Cú pháp của phép toán LIKE như sau:
SELECT tên_cột FROM tên_bảng
WHERE tên_cột LIKE mẫu
Một ký hiệu % có thể được sử dụng để định
nghĩa các ký tự đại diện. % có thể được đặt
trước và/hoặc sau mẫu.
+ Sử dụng LIKE
Câu lệnh SQL sau sẽ trả về danh sách những người có tên
bắt đầu bằng chữ O:
SELECT * FROM SINHVIEN
WHERE ten LIKE 'O%'
Câu lệnh SQL sau sẽ trả về danh sách những người có tên
kết thúc bằng chữ a:
SELECT * FROM sinhvien
WHERE ten LIKE '%a'
Câu lệnh SQL sau sẽ trả về danh sách những người có tên
kết chứa chuỗi la:
SELECT * FROM sinhvien
WHERE ten LIKE '%la%'
Hết !!!

You might also like