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 !!!

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

  • 1.
    BÀI GIẢNG MÔNHỌC LẬP TRÌNH MẠNG
  • 2.
    NGÔN NGỮ LẬPTRÌNH JSP-SERVLET
  • 3.
    Néi Dung * GiíithiÖ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 §èiTưî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 §èiTưî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 §èiTưî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 §èiTưî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 §èiTưî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 §èiTưî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ÊtCSDL 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ÊtCSDL 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ÊtCSDL 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ÊtCSDL 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ÊtCSDL 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øcTruy 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øcTruy 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øcTruy 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øcTruy 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øcTruy 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øcTruy 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øcTruy 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×nhTr×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×nhTr×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×nhTr×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×nhTr×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×nhTr×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.
  • 67.
    Ng«n ng÷ TruyvÊ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÷ TruyvÊ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÷ TruyvÊ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÷ TruyvÊ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÷ TruyvÊ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÷ TruyvÊ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÷ TruyvÊ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÷ TruyvÊ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÷ TruyvÊ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÷ TruyvÊ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÷ TruyvÊ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÷ TruyvÊ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÷ TruyvÊ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ú ý: Trongmệ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ụngdấ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ụngLIKE 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%'
  • 85.