SlideShare a Scribd company logo
BÀI GIẢNG MÔN HỌC
LẬP TRÌNH MẠNG
NGÔN NGỮ LẬP TRÌNH
JSP-SERVLET
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
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 :
HTTP
Web
Service
Trçnh diãùn
dëch JSP
Servlet taûm
Web
Browser Trang jsp
Yãu cáöu
Kãút xuáút
Java Web Server
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
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>
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);
Java Server Pages
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
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
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
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 ServerJDBC 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
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
Ng«n ng÷ Truy vÊn d÷ liÖu (SQL)
+ 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 !!!

More Related Content

PPT
Bài 4: JSP Cơ Bản - Lập Trình Mạng Nâng Cao
PPT
Bài 5: Java Bean - Lập Trình Mạng Nâng Cao
PPTX
Tự học jsp !​
PDF
Idoc.vn giao trinh-aspnet-nang-cao
PPT
Jsp java bean
PDF
Laptrinh ph pvamysql
PDF
Lập trình PHP và MySQL
PDF
Lap trinh PHP va MySQL (tài liệu tham khảo))
Bài 4: JSP Cơ Bản - Lập Trình Mạng Nâng Cao
Bài 5: Java Bean - Lập Trình Mạng Nâng Cao
Tự học jsp !​
Idoc.vn giao trinh-aspnet-nang-cao
Jsp java bean
Laptrinh ph pvamysql
Lập trình PHP và MySQL
Lap trinh PHP va MySQL (tài liệu tham khảo))

Similar to Chương 8 - Lap Trinh Web-JSP-Servlet1.pdf (14)

PDF
Ngôn ngữ lập trình PHP và MySQL - khoahoclaptrinhweb.tin.vn
DOCX
JSP and Database
PDF
Giao trinh java_script[1]
PDF
Bai4 basic jsp_4474
PDF
Ebook drupal 7 vn
PDF
Chương 2_Bài tập và ví dụ về JSP Servlet.pdf
PPTX
Tổng quan về jsp​
PDF
Tự học JavaScript
PDF
Tu hoc javascript
PPT
Bài 11: JSF-1 - Lập Trình Mạng Nâng Cao
PDF
Hướng Dẫn Php-3
PDF
Lap trinh web dong voi php my sql
PDF
Lap trinh web dong voi php my sql
PDF
Học lập trình cơ bản - Các ngôn ngữ web, cách cài đặt môi trường, cách sử dụn...
Ngôn ngữ lập trình PHP và MySQL - khoahoclaptrinhweb.tin.vn
JSP and Database
Giao trinh java_script[1]
Bai4 basic jsp_4474
Ebook drupal 7 vn
Chương 2_Bài tập và ví dụ về JSP Servlet.pdf
Tổng quan về jsp​
Tự học JavaScript
Tu hoc javascript
Bài 11: JSF-1 - Lập Trình Mạng Nâng Cao
Hướng Dẫn Php-3
Lap trinh web dong voi php my sql
Lap trinh web dong voi php my sql
Học lập trình cơ bản - Các ngôn ngữ web, cách cài đặt môi trường, cách sử dụn...
Ad

Recently uploaded (20)

PPTX
Chương 1 – Tổng quan về Cơ sở dữ liệu.pptx
PPTX
CDD1. VỊ TRÍ ĐỊA LÍ VÀ ĐẶC ĐIỂM LÃNH THỔ CỦA TP.HCM.pptx
PDF
CHUYÊN ĐỀ BỔ TRỢ NÂNG CAO DẠNG BÀI TẬP MỚI FORM 2025 - TIẾNG ANH 12 (TỜ RƠI Q...
PDF
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
PPTX
TIẾT 11. BÀI 32 DINH DƯỠNG VÀ TIÊU HÓA Ở NGƯỜI.pptx
PPTX
Vai trò vô cùng quan trọng để thuyết trình.pptx
DOCX
Báo cáo thực tập công ty Ah-GlobalGroup vị trí Data Analyst
PPTX
24. 9cqbq2reu57m5igbsz-signature-40d40b8bd600bcde0d0584523c684ec4933c280de74a...
PDF
BÁO CÁO THỰC TẬP KỸ SƯ 2 ĐỀ TÀI TÌM HIỂU QUY TRÌNH CÔNG NGHỆ SẢN XUẤT BÁNH SN...
PPT
Bài giảng Cơ sở dữ liệu Table trong Access
DOCX
Bài tập trăc nghiệm vận tốc. tốc độ trong chuyển động thẳng
PPT
Bài giảng Power Point 2003, hướng dẫn học tập
DOCX
BÀI TIỂU LUẬN HẾT HỌC PHẦN TỔ CHỨC HOẠT ĐỘNG TRẢI NGHIỆM,HƯỚNG NGHIỆP Ở TRƯỜN...
DOCX
Luận văn group-Bài tiểu luận Ý thức - Giấc mơ.docx
PDF
PHÁT TRIỂN NĂNG LỰC KHÁM PHÁ TỰ NHIÊN CHO HỌC SINH TRONG DẠY HỌC CHỦ ĐỀ VẬT S...
PPTX
The Fasciola Hepatica - medical prasitology
PPTX
Bài 9.4 TUYẾN SINH DỤC NAM VÀ NU CẤU TẠO VÀ CHỨC NĂNG
PDF
100-Mon-Ngon-Christine-Ha.pdfnfeifefefefef
PDF
[Toán 10] - Bộ 5 Đề Ôn Tập học Kì 2.pdf cho học sinh lớp 10
PPTX
1 CHƯƠNG MÔT- KHÁI LUẬN VỀ TRIẾT HỌC (1) [Read-Only].pptx
Chương 1 – Tổng quan về Cơ sở dữ liệu.pptx
CDD1. VỊ TRÍ ĐỊA LÍ VÀ ĐẶC ĐIỂM LÃNH THỔ CỦA TP.HCM.pptx
CHUYÊN ĐỀ BỔ TRỢ NÂNG CAO DẠNG BÀI TẬP MỚI FORM 2025 - TIẾNG ANH 12 (TỜ RƠI Q...
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
TIẾT 11. BÀI 32 DINH DƯỠNG VÀ TIÊU HÓA Ở NGƯỜI.pptx
Vai trò vô cùng quan trọng để thuyết trình.pptx
Báo cáo thực tập công ty Ah-GlobalGroup vị trí Data Analyst
24. 9cqbq2reu57m5igbsz-signature-40d40b8bd600bcde0d0584523c684ec4933c280de74a...
BÁO CÁO THỰC TẬP KỸ SƯ 2 ĐỀ TÀI TÌM HIỂU QUY TRÌNH CÔNG NGHỆ SẢN XUẤT BÁNH SN...
Bài giảng Cơ sở dữ liệu Table trong Access
Bài tập trăc nghiệm vận tốc. tốc độ trong chuyển động thẳng
Bài giảng Power Point 2003, hướng dẫn học tập
BÀI TIỂU LUẬN HẾT HỌC PHẦN TỔ CHỨC HOẠT ĐỘNG TRẢI NGHIỆM,HƯỚNG NGHIỆP Ở TRƯỜN...
Luận văn group-Bài tiểu luận Ý thức - Giấc mơ.docx
PHÁT TRIỂN NĂNG LỰC KHÁM PHÁ TỰ NHIÊN CHO HỌC SINH TRONG DẠY HỌC CHỦ ĐỀ VẬT S...
The Fasciola Hepatica - medical prasitology
Bài 9.4 TUYẾN SINH DỤC NAM VÀ NU CẤU TẠO VÀ CHỨC NĂNG
100-Mon-Ngon-Christine-Ha.pdfnfeifefefefef
[Toán 10] - Bộ 5 Đề Ôn Tập học Kì 2.pdf cho học sinh lớp 10
1 CHƯƠNG MÔT- KHÁI LUẬN VỀ TRIẾT HỌC (1) [Read-Only].pptx
Ad

Chương 8 - Lap Trinh Web-JSP-Servlet1.pdf

  • 1. BÀI GIẢNG MÔN HỌC LẬP TRÌNH MẠNG
  • 2. NGÔN NGỮ LẬP TRÌNH JSP-SERVLET
  • 3. 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
  • 4. 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
  • 5. 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 : HTTP Web Service Trçnh diãùn dëch JSP Servlet taûm Web Browser Trang jsp Yãu cáöu Kãút xuáút Java Web Server
  • 6. 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
  • 7. 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.
  • 8. 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>
  • 9. 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>
  • 10. 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 ------------------- %>
  • 11. 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.
  • 12. 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"); --%>
  • 13. 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.*" %>
  • 14. 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.
  • 15. 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.
  • 16. 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>
  • 17. 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>
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. 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
  • 31. 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
  • 32. 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
  • 33. 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
  • 34. 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
  • 35. 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
  • 36. 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); Java Server Pages
  • 37. 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
  • 38. 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
  • 39. 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
  • 40. 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
  • 41. 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) .
  • 42. 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
  • 43. 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Þ
  • 44. 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
  • 45. 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
  • 46. 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
  • 47. 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.
  • 48. 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
  • 49. 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
  • 50. 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.
  • 51. 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
  • 52. 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.
  • 53. 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
  • 54. 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.
  • 55. 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
  • 56. 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
  • 57. 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.
  • 58. 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.
  • 59. 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ù.
  • 60. 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 ServerJDBC 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 :
  • 61. 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
  • 62. 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.
  • 63. 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.
  • 64. 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.
  • 65. 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
  • 66. Ng«n Ng÷ Truy VÊn SQL
  • 67. 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.
  • 68. 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]]
  • 69. 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
  • 70. 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
  • 71. 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
  • 72. 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...
  • 73. 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:
  • 74. 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
  • 75. 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
  • 76. 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”
  • 77. 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
  • 78. 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.
  • 79. 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
  • 80. 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)
  • 81. * 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 Ng«n ng÷ Truy vÊn d÷ liÖu (SQL)
  • 82. + 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'
  • 83. * 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.
  • 84. + 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%'