Tài liệu hướng dẫn lập trình web JSP. JSP (viết tắt của tiếng Anh JavaServer Pages) còn được biết đến với một cái tên khác là Java Scripting Preprocessor - tạm dịch là "Bộ tiền xử lý văn lệnh Java" - là một công nghệ Java cho phép các nhà phát triển tạo nội dung HTML, XML hay một số định dạng khác của trang web một cách năng động, trong khi hồi âm yêu cầu của trình khách. Công nghệ này cho phép người ta nhúng mã Java và một số hành động xử lý đã được định trước (pre-defined actions) vào trong nội dung tĩnh của trang. Cú pháp của JSP cho thêm các thẻ XML mới, gọi là JSP actions - hành động JSP. Những "hành động JSP" này được dùng để khởi động chức năng sẵn có, là những chức năng đã được xây dựng trước. Cộng thêm vào đó, công nghệ còn cho phép chúng ta tạo ra các thư viện thẻ JSP (JSP tag libraries), là những cái đóng vai trò vào việc mở rộng các thẻ HTML hay XML tiêu chuẩn. Thư viện thẻ (Tag libraries) là phương pháp mở rộng khả năng của một máy chủ web trong khi những mở rộng đó không phụ thuộc vào hệ nền (về cả cấu trúc máy cũng như hệ điều hành được dùng). Trước khi hiển thị ra trình duyệt, tập tin JSP phải được biên dịch thành Servlet, dùng bộ biên dịch JSP (JSP compiler). Bộ biên dịch JSP có thể tạo servlet thành mã nguồn Java trước, rồi biên dịch mã nguồn ra tập tin .class dùng bộ biên dịch Java, hoặc có thể trực tiếp tạo mã byte code cho servlet từ trang JSP.
118 trang |
Chia sẻ: tlsuongmuoi | Lượt xem: 2353 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Lập trình web JSP, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
COMPUTER LEARNING CENTERWWW.HUUKHANG.COM
Moân hoïc: Java Server Pages
Baøi 1
Nhöõng vaán ñeà chính seõ ñöôïc ñeà caäp trong khoaù hoïc:
9 Caøi ñaët JRUN.
o Caøi ñaët JDK1.3.
o Caøi ñaët JRUN.
o Caáu hình öùng duïng JSP
9 Giôùi thieäu JSP.
o Script.
o Khai baùo chæ muïc.
1. CAØI ÑAËT JRUN
1.1.
1.2.
Caøi ñaët JDK
Ñeå caáu hình JRUN 4.0 treân Windows, tröôùc tieân baïn caøi ñaët boä JDK1.3 hay JDK
1.4 leân ñóa cöùng C hay D, sau khi caøi ñaët thaønh coâng baïn neân boot maùy laïi, trong oå ñóa seõ
xuaát hieän thö muïc JDK1.3 vôùi caùc thö vieän cuûa chuùng.
Caøi ñaët JRUN
Ñeå caøi ñaët JRUN, baïn mua ñóa CD vôùi öùng duïng JRUN 4.0, sau ñoù caøi ñaët chuùng
vaøo maùy coù caøi ñaët JDK. Trong khi caøi ñaët thì JRUN coù yeâu caàu choøn thö muïc nôi baïn caøi
ñaët JDK.
Trong khi caøi ñaët JRUN, coù theå yeâu caàu baïn caøi ñaët chuùng döôùi daïng moät dòch vuï
cuûa hôïp ñoàng haønh (maëc ñònh laø Yes), khi ñoù JRUN seõ caøi ñaët vôùi hai dòch vuï laø JRUN
Admin vaø JRUN Default trong cöûa soå Services (trong Control Panel hay Administrative
Tools) cuûa heä ñieàu haønh Windows nhö hình 1-1 sau:
Hình 1-1: Dòch vuï JRUN trong Servies
Giaùo vieân: Phaïm Höõu Khang
COMPUTER LEARNING CENTERWWW.HUUKHANG.COM
Baïn phaûi baûo daûm raèng chuùng ñang ôû cheá ñoä Started, trong tröôøng hôïp ñang ôû cheá
ñoä STOP thì baïn choïn dòch vuï naøy vaø nhaán nuùt Start.
Neáu JRUN ñang ôû cheá ñoä Start thì baïn seõ goõ treân trình duyeät
vaø cung caáp username cung vôùi password ñeå ñaêng nhaäp vaøo maøn hình uqaûn trò JRUN neáu
muoán chöông.
Neáu JRUN Default Server ñang ôû cheá ñoä Start thì baïn coù theå goõ ñòa chæ sau treân
browser ñeå chaïy öùng duïng maëc ñònh cuûa JSP.
Ngoaøi ra, neáu baïn khoâng caøi ñaët JRUN nhö moät dòch vuï cuûa heä ñieàu haønh Windows
thì moãi laàn baïn muoán chaïy öùng duïng JSP thì phaøi Start noù leân baèng caùch choïn Start |
Programs | JRUN 4.0 | JRUN Default Server hay JRUN Admin Server roi sau do khôûi
ñoäng JRUN Default Server, phaàn naøy seõ trình baøy trong phaàn caáu hình.
1.3.
1.3.1.
1.3.2.
Caáu hình öùng duïng JSP
Ñeå trieäu goïi trang JSP (teân môû roäng .jsp) treân trình duyeät, baïn coù theå caáu hình moät
torng hai caùch sau:
Caùch 1:
Neáu khoâng muoán taïo öùng duïng Web cho rieâng mình maø söû duïng thö muïc maëc ñònh
thì baïn coù theå khai baùo caùc trang JSP vaø boû vaøo thö muïc JRUN4/Servers/Defaul/ default-
ear/ default-war/.
Chaúng haïn, trong tröôøng hôïp naøy chuùng ta khai baùo trang test.jsp vôùi noäi dung nhö
sau:
Test JSP
Ñeå kieåm tra trang JSP naøy, baïn khai baùo treân trình duyeät nhö sau:
Tuy nhieân, baïn coù theå khai baùo caùc thö muïc con beân trong cuûa thö muïc maëc ñònh
naøy, sau ñoù trieäu goïi treân trình duyeät theo teân thö muïc, chaúng haïn
Caùch 2:
Ñeå caáu hình öùng duïng JSP treân JRUN baïn coù theå thao taùc theo caùc böôùc sau:
1. Baïn ñaêng nhaäp vaøo JRUN Admin vôùi baèng caùch cung caáp
username/pwd nhö hình 1-2 sau.
Giaùo vieân: Phaïm Höõu Khang
COMPUTER LEARNING CENTERWWW.HUUKHANG.COM
Hình 1-2: Ñaêng nhaäp JRUN Admin
2. Taïo thö muïc löu tröõ web site treân oå ñóa, chaúng haïn trong tröôøng hôïp naøy khai
baùo thö muïc jspsample nhö hình 1-3.
Hình 1-3: Khai baùo thö muïc ñeå löu tröõ trang JSP
Giaùo vieân: Phaïm Höõu Khang
COMPUTER LEARNING CENTERWWW.HUUKHANG.COM
3. Choïn vaøo menu Home, JRUN seõ lieät keâ danh saùch caùc server ñang caáu hình treân
JRUN nhö hình 1-4.
Hình 1-4: Danh saùch caùc Server treân JRUN
4. Choïn URL coù teân laø Create New Server treân menu naèm ôû ñaàu trang, trong cöûa
soå vöøa xuaát hieän (Creating a New JRun Application Server) baïn cung caáp caùc
tham soá trong hình 1-5 nhö sau:
Host Name:localhost (hoaëc ñòa chæ IP, teân server) •
•
•
JRun Server Name: Choïn teân cuûa öùng duïng, ví duï trong tröôøng hôïp naøy choïn
jspsample.
JRun Server Directory: Thö muïc cuûa öùng duïng baïn vöøa taïo ra, chaúng haïn
D:/jspsample (hay D:/thuvien/hr).
5. Nhaán nuùt Create chôø trong giaây laùt cöûa soå cuûa HOME page seõ xuaát hieän teân öùng
duïng web baïn vöøa taïo (jspsample), nhaán nuùt Start ñeå khôûi ñoäng öùng duïng naøy.
Trong tröôøng hôïp phaùt sinh loãi do port bò ñuïng ñoä, maëc ñònh cuûa site default laø
8100 (admin laø 8000), khi baïn taïo öùng duïng xong, moät port naøo ñoù ñöôïc gaùn cho
öùng duïng cuûa baïn vì duï nhö 8101 nhö hình 1-6. Tuy nhieân, baïn coù theå thay ñoåi
port naøy baèng caùch edit ñeå caäp nhaät.
Giaùo vieân: Phaïm Höõu Khang
COMPUTER LEARNING CENTERWWW.HUUKHANG.COM
Hình 1-5: Taïo website
Hình 1-6: Taïo öùng duïng JSP thaønh coâng
Sau khi taïo thaønh coâng, teân öùng duïng vöøa taïo seõ xuaát hieän trong danh saùch server
cuûa JRUN nhö hình 1-7.
Giaùo vieân: Phaïm Höõu Khang
COMPUTER LEARNING CENTERWWW.HUUKHANG.COM
Hình 1-7: Teân site vöøa taïo
Xem treân baûng danh saùch server öùng vôùi jspsample coù phaàn HTTP Port laø 8101,
sau ñoù treân http, baïn goõ keát quaû seõ xuaát hieän nhö hình 1-8.
Hình 1-8: Keát quaû trang test.jsp
Giaùo vieân: Phaïm Höõu Khang
COMPUTER LEARNING CENTERWWW.HUUKHANG.COM
2. GIÔÙI THIEÄU JSP
2.1.
2.2.
2.3.
Yeâu caàu
JSP döïa treân cuù phaùp cuûa ngoân ngöõ laäp trình Java, chính vì vaäy khi laøm vieäc vôùi
JSP baïn phaûi laø ngöôøi coù kieán thöùc veà ngoân ngöõ naøy. Neáu baïn xaây döïng öùng duïng JSP
coù keát noái cô sôû döõ lieäu thì kieán thöùc veà cô sôû döõ lieäu SQL Server hay Oracle laø ñieàu caàn
thieát.
Giôùi thieäu
JSP laø kòch baûn trình chuû (Server Script) ñöôïc chaïy treân neàn JDK 1.3 trôû veà sau,
cuøng vôùi öùng duïng Web Server ñeå quaûn lyù chuùng. Web Server thöôøng söû duïng laø Tomcate,
Java Web Server, JRUN, WebLogic vaø Apache, ...
Tieàn thaân cuûa JSP laø xuaát phaùt töø Java Servlet, khi laøm vieäc vôùi Java Servlet thì
haàu heát caùc laäp trình viweân gaëp khoù khaên khi xuaát nhaäp döõ lieäu, cuï theå laø giao dieän vôùi
ngöôøi söû duïng. Chính vì vaäy SUN Microsystem cung caáp kòch baûn JSP laø phaàn môû roäng
cuûa Java Servlet ñeå cho pheùp quaù trình laäp trình öùng duïng Web trôû neân ñôn giaûn hôn.
Tuy nhieân, nhöõng trang JSP naøy khi bieân dòch ñeà thoâng qua trang trung gian laø Java
Sevrlet.
Bieân dòch trang JSP
Khi ngöôøi söû duïng goïi trang JSP laàn ñaàu tieân, Web Server trieäu goïi trình bieân dòch
dòch trang JSP (trong tröôøng hôïp naøy laø JDK) thaønh taäp tin Java, keá ñeán taäp tin java
(Java Servlet) naøy seõ bieân dòch ra Class . Sau ñoù, trang class thöïc thi vaø traû veà keát quaû
cho ngöôøi söû duïng nhö hình 1-9.
Hình 1-10: Quaù trình bieân dòch trang JSP
Taäp tin
JSP
Web
Server
Java
Engine
(JSK)
Taäp tin
Java
Servlet
Taäp tin
Class
Call
Compile
Parse
Instantiate
Instantiate
Process and
Render
Request
Request
Response
Response
Giaùo vieân: Phaïm Höõu Khang
COMPUTER LEARNING CENTERWWW.HUUKHANG.COM
2.4.
3.
Kòch baûn (script)
Noäi dung cuûa JSP coù theå khai baùo laãn loän vôùi HTML, chính vì vaäy baïn söû duïng caëp
daáu ñeå khai baùo maõ JSP. Chaúng haïn, chuùng ta khai baùo:
1-Giaù trò bieán Str:
2-Giaù trò bieán i:
3-Giaù trò cuõ theå:
Trong tröôøng hôïp coù nhieàu khai baùo, baïn söû duïng Scriptlet, ñeàu naøy coù nghóa laø söû
duïng caëp daáu treân nhö vôùi caùc khai baùo JSP vôùi cuù phaùp cuûa Java nhö sau:
<%
int i=0;
String str=”Select * from tblABC”;
out.println(str);
%>
-Khai baùo treân laø Scriptlet
Giaù trò cuûa i:
-Khai baùo naøy laø Script
KEÁT LUAÄN
Trong baøi naøy, chuùng ta taäp trung tìm hieåu caùch caøi ñaët JSK vaø JRUN, sau ñoù caáu
hình öùng duïng JSP trong JRUN hay söû duïng caáu hình maëc ñònh cuûa chuùng.
Ngoaøi ra, baïn laøm quen caùch khai baùo maõ JSP trong trang .jsp cuøng vôùi script hay
scriptlet.
Giaùo vieân: Phaïm Höõu Khang
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
Moân hoïc: Java Server Pages
Baøi 2
Baøi hoïc naøy chuùng ta seõ laøm quen vaø tìm hieåu cuù phaùp vaø moät
soá phöông thöùc cô baûn cuûa JSP:
9 Caâu leänh.
9 Bieán vaø kieåu döõ lieäu.
9 Haèng.
9 Baûng daõy
9 Moät soá phöông thöùc cô baûn
1. KHAÙI NIEÄM VEÀ CUÙ PHAÙP JSP
Cuù phaùp JSP chính laø cuù phaùp trong ngoân ngöõ Java, caùc baïn laøm quen vôùi ngoân
ngöõ Java thì coù lôïi theá trong laäp trình JSP.
Ñeå laäp trình baèng ngoân ngöõ JSP caàn chuù yù nhöõng ñieåm sau:
Cuoái caâu leänh coù daáu ;
Moãi phöông thöùc ñeàu baét ñaàu { vaø ñoùng baèng daáu }
Khi khai baùo bieán thì kieãu döõ lieäu naèm tröôùc teân bieán
Neân coù giaù trò khôûi ñaàu cho bieán khai baùo
Phaûi coù chi chuù (comment) cho moãi feature môùi
Söû duïng daáu // ñeå giaûi thích cho moãi caâu ghi chuù
Söû duïng /* vaø */ cho moãi ñoaïn ghi chuù
Khai baùo bieán coù phaân bieät chöõ hoa hay thöôøng
Teân file vaø lôùp cuõng nhö nhö khai baùo bieán
2. KHAI BAÙO BIEÁN
Khi thöïc hieän moät vieäc khai baùo bieán trong java, baïn caàn phaûi bieát tuaân thuû quy
ñònh nhö: kieãu döõ lieäu tröôùc teân bieán vaø coù giaù trò khôûi ñaàu
Xuaát phaùt töø nhöõng ñieàu ôû treân, khai baùo bieán trong Java nhö sau:
Datatype variable name [initial value];
int licount=0;
String lsSQL=”Select * from tblusers where active=1”;
double account[];
boolean checkerror=false;
3. KIEÅU DÖÕ LIEÄU
Baûng caùc kieåu döõ lieäu thoâng thöôøng
Type Bytes Range
Boolean 2
Giaùo vieân: Phaïm Höõu Khang
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
Byte 1
Char 2
Double 8 cho aâm, 4
soá döông
Float 4
Int 4
Long 8
Short 2
Connection
Statement
ResultSet
3.1. Kieåu Array
Kieãu maûng laø moät maûng soá lieäu do ngöôøi duøng ñònh nghóa, chuùng coù cuù phaùp nhö
sau:
double account[]; // maûng soá double
hay coù theå khai baùo nhö sau
double account[]={0,0,1,45.95,6.5};
thöù töï index trong maûng baét ñaàu töø vò trí 0. Neáu nhö baïn khai baùo maûng hai chieàu, thì
cuù phaùp khai baùo nhö sau:
double account[][]=new double[2][5];
Chaúng haïn khai baùo nhö sau:
<%
double account[][]=new double[2][100];
account[0][3]=43.95;
account[1][3]=43.95000;
out.println(“Account 0-3 is ” + account[0][3] );
out.println(“Account 1-3 is ” + account[1][3] );
%>
Khai baùo bieán String
<%
String strSQL=”select * from tblusers ”;
String strWhere=” where active=0”;
Giaùo vieân: Phaïm Höõu Khang
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
out.println(“SQL Statement is ” + strSQL+strWhere );
%>
Khai baùo vôùi nhieàu loaïi döõ lieäu
<%
boolean bo;
byte by;
char c;
short s;
int i;
long l;
float f;
double d;
object o;
int[] intArray = new int[2];
object[] objectArray = new Object[2];
out.println("boolean: "+bo);
out.println("byte: "+by);
out.println("char: "+c);
out.println("short: "+s);
out.println("int: "+i);
out.println("long: "+l);
out.println("float: "+f);
out.println("double: "+d);
out.println("Object: "+o);
out.println("int[2]: "+intArray[0]+" "+intArray[1]);
out.println("Object[2]: "+objectArray[0]+" "+objectArray[1]);
%>
4. CAÙC PHÖÔNG THÖÙC VAØ PHÖÔNG THÖÙC TRONG JAVA
4.1. Phöông thöùc traû veà chieàu daøi maûng
Khi quan taâm ñeán chieàu daøi cuûa maûng thì baïn caàn theo cuù phaùp sau:
Array.length
Giaû söû raèng, baïn khai baùo bieán vôùi chieàu daøi maõng moät vaø hai chieàu
<%
double account[]={88,11,2.5,77};
double sum;
sum=account.length;
Giaùo vieân: Phaïm Höõu Khang
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
out.println(“Length of Account is ” + sum);%>
4.2.
4.3.
4.4.
Chuyeån sang kieåu chuoãi
Khi baïn caàn chuyeãn ñoåi töø kieåu soá lieäu khaùc sang kieåu chuoãi, thì caàn khai baùo nhö
sau:
String.valueOf(data);
Ví duï chuyeån ñoåi kieåu sang kieåu chuoãi
<%
double account[]={88,11,2.5,77};
String str;
str=String.valueOf(account[2]);
out.println(“String of Account 2 is ” + str);
%>
Noái chuoãi
Khi caàn thieát noái hai hay nhieàu chuoåi laïi vôùi nhau, baïn söû duïng phöông thöùc
concat, thoâng thöôøng chuùng ta hay dung pheùp toaùn + ñeå noái hai hay nhieàu chuoãi laïi vôùi
nhau.
Cuù phaùp concat nhö sau:
Str1.conact(Str2);
Keát noái chuoãi
<%
String str1=”Select * from tblemplyers”;
String str2=” where paid=1”;
str1=str1.conact(str2);
out.println(“String of Str1 is ” + str1);
%>
Chuoãi con
Khi baïn caàn laáy moät chuoãi con trong chuoãi lôùn, baïn caàn duøng ñeán phöông thöùc vôùi cuù
phaùp nhö sau:
str1=str2.substring(start,chieàu daøi)
Ví duï khai baùo ñeå laáy chuoãi con
<%
String str1=”Select * from tblemplyers”;
String str2=str1.substring(9,5);
out.println(“Sub String of Str1 is ” + str2);
Giaùo vieân: Phaïm Höõu Khang
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
%>
Nhöng neáu coù nhu caàu laáy ra moät kyù töï naøo ñoù trong chuoãi, thì baïn khoâng caàn duøng
substring maø chæ söû duïng cuù phaùp charAt nhö sau:
Char=Str1.charAt(number);
Chaúng haïn, khai baùo ñeå laáy 1 kyù töï
<%
String str1=”Select * from tblemplyers”;
String str2=str1.charAt(5);
Out.println(“charAt of Str1 is ” + str2);
%>
4.5.
4.6.
Chuyeãn ñoåi String sang Array
Thoâng thöôøng trong khi tính toaù chuoãi, ñoâi khi cuõng caàn ñeán chuùng nhö moät maõng,
lyù do ñoù chuùng ta coù phöông thöùc chuyeãn ñoåi nhö sau:
char char1[]=str1.toCharArray();
Chuyeån chuoãi sang maûng
<%
String str1=”Select * from tblemplyers”;
char char1=str1.toCharArray();
out.println(“Char of Str1[1] is ” + char1[5]);
%>
Thay theá chuoãi
Khi caàn thay theá moät chuoãi con naøo ñoù trong chuoãi meï thaønh chuoãi con khaùc, chuùng
ta caàn ñeán phöông thöùc replace coù cuù phaùp nhö sau:
str1=str2.replace(“’”,”’’”);
str1=str2.replace(“a”,”k”);
Ví duï khai baùo thay theá chuoãi
<%
String str1=”Select * from tblemplyurs”;
str1= replaceString (str1,“u”,”o”);
str1= replaceString (str1,“’”,”’’”);
out.println(“Char of Str1 is ” + str1);
%>
Trong ñoù, khai baùo phöông thöùc replaceString nhö sau
Giaùo vieân: Phaïm Höõu Khang
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
<%!
public String replaceString(String sStr,String oldStr,String newStr)
{
sStr=(sStr==null?"":sStr);
String strVar=sStr;
String tmpStr="";
String finalStr="";
int stpos=0,endpos=0,strLen=0;
while (true)
{
strLen=strVar.length();
stpos=0;
endpos=strVar.indexOf(oldStr,stpos);
if (endpos==-1)
break;
tmpStr=strVar.substring(stpos,endpos);
tmpStr=tmpStr.concat(newStr);
strVar=strVar.substring(endpos+oldStr.length()>sStr.length()?endpos:endpos+old
Str.length(),strLen);
finalStr=finalStr.concat(tmpStr);
stpos=endpos;
}
finalStr=finalStr.concat(strVar);
return finalStr;
}
%>
4.7. Vò trí kyù töï trong chuoãi
Khi caàn bieát vò trí cuõa kyù töï hay chuoãi con naøo ñoù trong chuoãi, baïn söû duïng phöông
thöùc sau:
virti=str1.indexOf(“select”);
virti=str1.indexOf(“o”);
Chaúng haïn tìm vò trí chuoãi hay kyù töï trong Chuoãi
<%
Giaùo vieân: Phaïm Höõu Khang
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
String str1=”Select * from tblemplyurs”;
int vitri=str1.indexOf(“o”);
Out.println(“Location of \”o\” is ” + vitri);
%>
4.8.
5.
Kieåu chöõ
Neáu muoán chuyeãn ñoåi chöõ hoa sang thöôøng hay ngöôïc laïi, thì baïn duøng phöông thöùc
coù cuù phaùp nhö sau:
Töø hoa sang thöôøng: str1.toLowerCase();
Töø thöôøng saung hoa: str1.toUpperCase();
Ví duï
<%
String str1=”Select * from tblemplyors”;
str1=str1.toLowerCase();
out.println(“LowerCase is ” + str1);
str1=str1.toUpperCase();
out.println(“UpperCase is ” + str1);
%>
TOÙM TAÉT
Trong baøi hoïc naøy chuùng toâi giôùi thieäu ñeán cho caùc baïn caùch khai baùo bieán, caùc kieåu
döõ lieäu, ñoàng thôøi giuùp cho caùc baïn nhöõng phöông thöùc treân chuoãi vaø kyù töï trong JSP.
Giaùo vieân: Phaïm Höõu Khang
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
Baøi 3
PHEÙP TOAÙN VAØ PHAÙT BIEÅU COÙ ÑIEÀU KIEÄN
TRONG JSP
Chöông naøy chuùng ta seõ laøm quen vaø tìm hieåu toaùn töû, phaùt bieåu
coù ñieàu kieän vaø voøng laëp cuûa JSP.
Nhöõng vaán ñeà chính seõ ñöôïc ñeà caäp trong baøi hoïc naøy
9 Toaùn töû.
9 Pheùp gaùn trong Java
9 Phaùt bieåu coù ñieàu khieån.
9 Voøng laëp.
1. KHAÙI NIEÄM VEÀ CAÙC TOAÙN TÖÛ TRONG JSP
Khi baïn laäp trình treân JSP laø söû duïng cuù phaùp cuûa ngoân ngöõ Java. Töông
töï nhö nhöõng ngoân ngöõ laäp trình khaùc, toaùn töû giuùp cho baïn thöïc hieän nhöõng
pheùp toaùn nhö soá hoïc hay treân chuoãi.
Baûng sau ñaây giuùp cho baïn hình dung ñöôïc nhöõng toaùn töû söû duïng tron
Java
Java ñòng nghóa toaù töû toaùn hoïc, quan heä, soá hoïc, bit, caste, class, selection,
vaø noät soù pheùp toaùn gaùn.
Loaïi toaùn töû Toaùn töû Dieãn giaûi Ví duï
Arithmetic
+
-
*
/
%
Addition
Subtraction
Multiplication
Division
Modulus
a + b
a - b
a * b
a / b
a % b
Relational
>
<
>=
<=
!=
==
Greater than
Less than
Greater than or equal
Less than or equal
Not equal
Equal
a > b
a < b
a >= b
a <= b
a != b
a == b
Logical
!
&& Not
!a
a && b
huukhang@yahoo.com 3-1
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
|| AND
OR
a || b
Bit-
manipulation
~
&
|
^
<<
>>
>>>
Complement
AND
OR
Exclusive OR
Left shift
Right shift
Zero-filled right shift
~a
a & b
a | b
a ^ b
a << b
a >> B
a >>> b
Assignment
=
++
--
+=
-=
*=
/=
%=
|=
&=
^=
<<=
>>=
>>>=
Assignment
Increment and assign
Decrement and assign
Add and assign
Subtract and assign
Multiply and assign
Divide and assign
Take modulus and assign
OR and assign
AND and assign
XOR and assign
Left shift and assign
Right shift and assign
Zero-filled left shift and
assign
a = b
a++
a--
a += b
a -= b
a *= b
a /= b
a %= b
a |= b
a &= b
a ^= b
a <<= b
a >>= b
a >>>= b
Caste (type) Convert to type (char) b
Instance
instance
of Is instance of class? a instanceof b
Allocation new Create a new object of a class new A()
Selection ? : If...Then selection a ? b : c
2. GIÔÙI THIEÄU TOAÙN TÖÛ
Khi noùi ñeán toaùn töû, chuùng ta luoân lieân töôûng ñeán thöù töï xöû lyù, cuõng nhö
trong toaùn hoïc, toaùn töû trong java cuõng co ñoä öu tieân add-subtract-multi-divide.
2.1. Toaùn töû AND
Khi thöïc hieän moät vieäc taêng leân giaù trò thì baïn söû duïng cuù phaùp nhö sau:
int i=0,j=0;
huukhang@yahoo.com 3-2
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
j=i++;// i taêng sau khi gaùn i vaøo j, chính vì vaäy sau khi gaùn i vaøo j, j vaãn
khoâng thay ñoåi
j=++i;// i taêng tröôùc khi gaùn i vaøo j, chính vì vaäy sau khi gaùn i vaøo j, j thay
ñoåi.
Ví duï 3.1: Pheùp toaùn AND.
<%
int i=0,j=0;
j=i++;
out.println(“Value of j is ” + j);
j=++i;
out.println(“Value of j is ” + j);
%>
2.2. Toaùn töû Not: ~ And !
Toaùn töû ~ ñaûo nghòch taát caû caùc bit cuûa tham soá, coøn toaùn töû ! ñaûo nghòch
giaù trò cuûa giaù trò tröôùc ñoù
Ví duï 3.2: Pheùp toaùn ~ and !
<%
short i=32767;
boolean b=true;
out.println(“Value of ~ short is ” + ~i);
out.println(“Value of !b is ” +!b);
%>
2.3. Toaùn töû nhaân vaø chia: * and /
Baïn coù theå tham khaûo ví duï sau
Ví duï 3.3: Pheùp toaùn * vaø /, + vaø -
<%
int i=767;
double j=10.5;
out.println(“Value of multi is ” + i*j);
out.println(“Value of divide is ” +i/5);
huukhang@yahoo.com 3-3
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
out.println(“Value of add is ” +i+5);
out.println(“Value of subtract is ” +i-5);
%>
2.4. Toaùn töû modulus: %
Khi chia moät soá cho moät soá, baïn caàn keát quaû laø soá dö cuûa pheùp chia ñoù thì
duøng toaùn töû modulus
Ví duï 3.4: Pheùp toaùn %
<%
int i=10;
int j=3;
out.println(“Value of i%j is ” + i%j);
%>
2.5. Toaùn töû quan heä: >=,>,<,<=,==,!=
Khi caàn so saùnh keát quaû giöõa hai toaùn haïn vôùi nhau, thoâng thöôøng baïn nghó
ñeán pheùp toaùn so saùnh nhö laø baèng, lôùn hôn, nhoû hôn, ví duï sau dieãn giaûi cho
baïn caùc toaùn töû treân:
Ví duï 3.5: Pheùp toaùn >,>=,<,<=,==,!=
<%
int i=10;
int j=3;
if(i>=j)
out.println(“result is true”);
else
out.println(“result is false”);
if(i!=j)
out.println(“result is not equals”);
else
out.println(“result is equals”);
%>
huukhang@yahoo.com 3-4
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
2.6. Toaùn töû && vaø ||
&& laø toaù töû and trong soù hoïc
|| laø toaùn töû or trong soá hoïc
Hai toaùn töû naøy raát thöôøng duøng trong khi laäp trình treân Java, ví duï döôùi
ñaây dieãn giaûi cho baïn ñaày ñuû hai toaùn töû naøy. Chuù yù raèng khi söû duïng toaùn töû
ñeàu coù keøm phaùt bieåu coù ñieàu kieän.
Ví duï 3.6: Pheùp toaùn && vaø ||
<%
boolean b=true;
int j=3;
if((j>=3) &&(b!=true))
out.println(“result is true”);
if((j<3) ||(b==true))
out.println(“result is false”);
%>
2.7. Toaùn töû ?:
Toaùn töû naøy thay theá cho phaùt bieåu coù ñieàu kieän if.. then .. else, khi baïn
caàn laáy keát quaû theo ñieàu kieän naøo ñoù, neáu coù theå khoâng caàn phaùt bieåu if-else,
thì haõy thay theá baèng toaùn töû ?:, cuù phaùp cuûa chuùng nhö sau:
str1=str2.equals(”khang”)?”Welcome to Java”:”Good bye JSP”;
Ví duï 3.7: Pheùp toaùn ?:
<%
String str1=”Pham Huu Khang”;
String str2 =“Khang”;
out.println(“result is true”+ (str1.equals(str2)?”Welcome to
Java”:”Good bye JSP”));
%>
huukhang@yahoo.com 3-5
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
3. PHEÙP GAÙN
Khi gaùn moät giaù trò hay bieán vaøo moät bieán trong Java, baïn phaûi duøng ñeán
pheùp gaùn, nhöng trong Java cuõng gioángnhö trong C thì coù nhöõng pheùp gaùn ñöôïc
ñôn giaûn hoaù hay noùi ñuùng hôn laø chuaån hoaù ñeå ruùt goïn laïi trong khi vieát.
3.1.
3.2.
3.3.
4.
Pheùp gaùn thoâng thöôøng nhaát nhö sau:
int j=i;
String str1 =” Hello!”;
boolean b=true;
Pheùp gaùn theâm moät giaù trò laø 1
int k=0;
k++;
Pheùp gaùn theâm moät vôùi chính noù giaù trò
int k=0,j=1;
k+=j;
töông töï nhö vaäy chuùng ta coù k*=2, nghóa laø k=k*2
PHAÙT BIEÅU COÙ ÑIEÀU KIEÄN
Caùc phat bieåu coù ñieàu kieän nhö :
IF (ñieàu kieän) { caâu leänh; }
IF (ñieàu kieän) { caâu leänh; }ELSE { caâu leänh; }
switch (ñieàu kieän)
{
case Value1
caâu leänh1;
break;
}
While (ñieàu kieän)
Do - While (ñieàu kieän)
Break
Continue
huukhang@yahoo.com 3-6
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
4.1. Phaùt bieåu IF (ñieàu kieän) { caâu leänh; }
Söû duïng phaùt bieåu if ñeå choïn loïc keát quaû khi ñieàu kieän ñuùng, ví duï nhö sau:
Ví duï 3.8: Phaùt bieåu IF
<%
boolean b=true;
int j=3;
if((j>=3) &&(b!=true))
out.println(“result is true”);
if((j<3) ||(b==true))
out.println(“result is false”);
%>
4.2. Phaùt bieåu IF (ñieàu kieän) { caâu leänh; }ELSE { caâu leänh; }
Söû duïng phaùt bieåu if ñeå choïn loïc keát quaû khi ñieàu kieän ñuùng, vaø xuaát ra keát
quaû khi ñieàu kieän sai, ví duï nhö sau:
Ví duï 3.9: Phaùt bieåu IF - ELSE
<%
boolean b=true;
int j=3;
if((j>=3) &&(b!=true))
out.println(“result is true”);
else
out.println(“result is false”);
%>
4.3. Phaùt bieåu Switch (ñieàu kieän)
Phaùt bieåu switch laø phaàn cuûa phaùt bieåu if else nhieàu nhaùnh, khi coù nhieàu
ñieàu kieän choïn löïa thì baïn söû duïng switch, cuù phaùp cuûa chuùng nhö sau:
Switch(ñieàu kieän)
{
huukhang@yahoo.com 3-7
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
case Value1
caâu leänh1;
break;
case Value2
caâu leänh2;
break;
…
default:
caâu leänh default;
}
Break: duøng ñeå thoaùt ra khoûi switch khi thoaû moät case naøo ñoù trong switch,
default: khi khoâng coù baát kyø giaù trò naøo thoaûn trong caùc case thì giaù trò cuoái cuøng
laø defaule statement
Ví duï 3.10: Phaùt bieåu Switch
<%
int j=3;
switch(j)
{
case 1:
out.println(“Today is Monday”);
break;
case 2:
out.println(“Today is Thurday”);
break;
case 3:
out.println(“Today is Tueday”);
break;
default:
out.println(“Today is Sunday”);
}
%>
huukhang@yahoo.com 3-8
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
4.4. Phaùt bieåu While(ñieàu kieän)
Phaùt bieåu while thöïc thi nhöõng caâu leänh trong while khi ñieàu kieän coø ñuùng.
Ví duï 3.11: Phaùt bieåu While
<%
int j=1;
while(j<=30)
{
out.println(“Number of j” + j);
j++;
%>
4.5. Phaùt bieåu For
Phaùt bieåu for duøng cho voøng laëp coù giôùi haïn cho tröôùc, cuù phaùp coù daïng nhö
sau:
int i=0;
for(i=1;i<10;i++)
{
caâu leänh;
}
Ví duï 3.12: Phaùt bieåu For
<%
int mang[]={3,5,6,7,8,9};
for (int j=0;j<mang.length;j++)
{
out.println(“Phan tu mang “+j+” : ”+mang[j]);
}
%>
TOÙM TAÉT 5.
Trong baøi hoïc naøy chuùng toâi giôùi thieäu ñeán cho caùc baïn caùc pheùp gaùn, caùc toaùn
töû, ñoàng thôøi giuùp cho caùc baïn hieåu theâm vaøo caùc phaùt bieåu coù ñieàu kieän nhö
while, for, switch, ….
huukhang@yahoo.com 3-9
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
Baøi 4
ÑOÁI TÖÔÏNG SESSION, REQUEST, RESPONSE
TRONG JSP
Chöông naøy chuùng ta seõ laøm quen caùc ñoái töôïng thöôøng söû duïng trong
quaù trình thieát keá trang JSP.
Nhöõng vaán ñeà chính seõ ñöôïc ñeà caäp trong baøi hoïc naøy
9 Ñoái töôïng Request.
9 Ñoái töôïng Response.
ÑOÁI TÖÔÏNG REQUEST
Khi muoán laáy giaù trò töø moät theû nhaäp lieäu ñeä trình (submit) töø form hay töø chuoãi QueryString, ñieàu
naøy coù nghóa laø cho pheùp laáy giaù trò töø client gôûi leân server, ñoái tröôøng hôïp naøy baïn söû duïng ñoái
töôïng Request. Ñoái töôïng naøy thuoäc lôùp javax.servlet.ServletRequest.
1.
1.1. Request vôùi töø theû nhaäp lieäu
Ví duï chuùng ta khai baùo trang HTML hay JSP coù theû form, beân trong theû form khai baùo caùc theû
nhaäp lieäu nhö input, select, textarea nhö ví duï 4-1.
JSP's Objects
<META HTTP-EQUIV="Content-Type"
CONTENT="text/html ; charset=utf-8">
Registration
Name:
Province:
Ha Noi
Hue
Ho Chi Minh
Description:
huukhang@yahoo.com 3-1
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
Khi ngöôøi söû duïng goïi trang JSP naøy treân trình duyeät vaø nhaäp caùc thoâng tin yeâu caàu nhö hình 4-1.
Hình 4-1: Nhaäp lieäu
Ñeå laáy ñöôïc giaù trò cuûa caùc phaàn ñaõ nhaäp treân hình 4-1, chuùng ta söû duïng phöông thöùc
getParameter cuûa ñoái töôïng request nhö ví duï 4-2.
JSP
Confirmation
<%
String name=request.getParameter("txtname");
String province=request.getParameter("province");
String desc=request.getParameter("txtdesc");
out.println("Name is "+ name +"");
out.println("Province is " + province +"");
out.println("Description is " + desc +"");
%>
Keát quaû trình baøy nhö hình 4-2 neáu thoâng tin nhaäp gioáng nhö hình 4-1.
huukhang@yahoo.com 3-2
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
Hình 4-2: Söû duïng phöông thöùc getParameter
1.2. Request vôùi töø tham soá treân QueryString
Töông töï nhö treân, trong tröôøng hôïp baïn muoán laáy caùc giaù trò cuûa caùc tham soá treân QueryString,
baïn cuõng söû duïng phöông thöùc getParameter cuûa ñoái töôïng rquest. Chaúng haïn, chuùng ta khai baùo
trang JSP coù theû input vaø söû duïng phöông thöùc get trong theû form nhö ví duï 4-3.
JSP's Objects
<META HTTP-EQUIV="Content-Type"
CONTENT="text/html ; charset=utf-8">
Tim kiem va Liet ket
Keyword:
Khi ngöôøi söû duïng nhaäp moät töø khoaù naøo ñoù vaø nhaán Submit, trang ex4.jsp seõ ñöôïc trieäu goïi.
Chaúng haïn, chuùng ta nhaäp töø khoaù laø SQL Server nhö hình 4-3.
huukhang@yahoo.com 3-3
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
Hình 4-3: Phöông thöùc GET
Khi trang ex4.jsp trieäu goïi, treân chuoãi QueryString xuaát hieän
nhö hình 4-4.
Hình 4-4: Laáy giaù trò töø QueryString
Ñeå laáy giaù trò töø chuoãi QueryString, chuùng ta söû duïng phöông thöùc getParemeter cuûa ñoái töôïng
request nhö ví duï 4-4.
<%
huukhang@yahoo.com 3-4
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
// Laáy giaù trò keyword töø trang ex3.jsp
String keyword=request.getParameter("keyword");
// Laáy giaù trò sort töø trang QueryString
String sort=request.getParameter("sort");
%>
JSP
Result
<!--Khai baùo caùc link ñeå giöõ laïi keyword
vaø khai baùo giaù trò cho tham soá sort-->
&sort=ItemName">ItemName
&sort=UnitPrice">Unit Price
<%
// xuaát giaù trò laáy ñöôïc
out.println("Keyword is "+ keyword +"");
sort=(sort==null)?"ItemName":sort;
out.println("Sort by " + sort +"");
%>
1.3. Request vôùi maûng tham soá
Neáu nhö coù nhieàu theû treân form hay tham soá treân QueryString cuøng teân, chuùng ta phaûi söû duïng
phöông thöùc getParameterValues cuûa ñoái töôïng request. Ví duï, chuùng ta khai baùo trang JSP coù
nhieàu theû input daïng checkbox cuøng teân nhöng khaùc giaù trò nhö ví duï 4-5.
JSP's Objects
<META HTTP-EQUIV="Content-Type"
CONTENT="text/html ; charset=utf-8">
#DepartmentIDDepartment
Name
<%
int i=0;
while(i<10)
{
out.println("<input type=checkbox "):
out.println("name=chkid value='"+i+"'>");
out.println(""+ i +"");
out.println("Phong ban thu " + i+ " ");
i++;
}
%>
huukhang@yahoo.com 3-5
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
Khi trieäu goïi trang JSP naøy treân trình duyeät, baèng caùch choïn moät vaøi phoøng ban ñeå xoaù baïn coù
giao dieän nhö hình 4-5.
Hình 4-5: Theû cuøng teân vaø khaùc giaù trò
Nhö hình treân, baïn choïn caùc phoøng ban coù giaù trò laø 1,5,6,8, khi submit form naøy trang ex6.jsp seõ
ñöôïc trieäu goïi, ñeå laáy ñöôïc giaù trò 1,5,6,8 nhö ñaõ choïn baèng caùch söû duïng phöông thöùc
getParameterValues, baïn khai baùo nhö ví duï 4-6.
JSP
Delete
huukhang@yahoo.com 3-6
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
<%
String[] deleterecord=null;
String delStr="";
deleterecord=request.getParameterValues("chkid");
if(deleterecord!=null){
for(int k=0;k<deleterecord.length;k++){
delStr+= deleterecord[k]+",";
}
delStr=delStr.substring(0,delStr.length()-1);
}
out.println("Select values are : " + delStr);
%>
Khi ñoù, keát quaû trình baøy treân trình duyeät nhö hình 4-6, trong thöïc teá baïn coù theå gaùn giaù trò naøy
vôùi chuoãi SQL vaø söû duïng pheùp toaùn IN hay NOT IN ñeå truy vaán hay thao taùc trong döõ lieäu.
Hình 4-6: Keát quaû laáy maûng giaù trò
1.4. Request keát hôïp vôùi JavaScript
Ngoaøi caùc caùch treân, khi laøm öùng duïng thöôøng chuùng ta trình baøy danh saùch maåu tin phuï thuoäc
vaøo giaù trò choïn treân theû select hay checkbox hoaëc readiobutton, baïn coù theå söû duïng phöông thöùc
getParameter cuûa ñoái töôïng request ñeå thöïc hieän yù ñònh naøy nhö ví duï 4-7.
<%
// Laáy giaù trò choïn trong theû select coù teân selectid
int selectid=0;
// Chuyeån qua soá nguyeân neáu coù choïn
if (request.getParameter("selectid")!=null)
{
try {
selectid=Integer.parseInt(request.getParameter("selectid"));
huukhang@yahoo.com 3-7
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
}
catch(Exception ex)
{
selectid=0;
}
}
%>
JSP's Objects
<META HTTP-EQUIV="Content-Type"
CONTENT="text/html ; charset=utf-8">
Show
Greater than 0
Greater than 1
Greater than 2
Greater than 3
Greater than 5
// Choïn laïi giaù trò choïn tröôùc ñoù trong theû select coù teân selectid
for(var j=0;j<form1.selectid.length;j++)
{
if(form1.selectid[j].value=="")
form1.selectid.selectedIndex=j;
}
#DepartmentID
Department Name
<%
// Trình baøy soá maåu tin >= giaù trò choïn trong theû select coù teân selectid
int i=selectid;
while(i<10)
{
out.println("");
out.println("");
out.println(""+ i +"");
out.println("Phong ban thu " + i+ " ");
i++;
}
%>
Laàn ñaàu tieân goïi ñeán trang ex7.jsp thì keát quaû trình baøy laø 10 phoøng ban, neáu ngöôøi söû duïng choïn
giaù trò trong phaàn Show “Greater than ” thì soá maåu tin trình baøy lôn hôn hoaëc baèng giaù trò ñang
choïn nhö hình 4-7.
huukhang@yahoo.com 3-8
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
Hình 4-7: Trình baøy maåu tin choïn loïc
ÑOÁI TÖÔÏNG RESPONSE
Khi muoán traû giaù trò töø server xuoáng client thì söû duïng ñoái töôïng response. Ñoái töôïng naøy thuoäc
lôùp javax.servlet.ServletResponse.
Chaúng haïn, sau khi kieåm tra giaù trò username vaø password hôïp leä thì töï ñoäng chuyeån ñeán trang
myaccount.jsp trong trang login_authentication.jsp.
Ñeå laøm ñieàu naøy, chuùng ta khai baùo trang login.jsp coù hai theû nhaäp lieäu laø username vaø password
nhö ví duï 4-8.
2.
JSP
// Khai baùo kieåm tra giaù trò nhaäp treân trình khaùch
function checkinput(){
if(document.form1.username.value==""){
alert("Xin vui long nhap username");
document.form1.username.focus();
return false;
}
if(document.form1.password.value=="" ){
alert("Xin vui long nhap password");
document.form1.password.focus();
return false;
}
return true;
huukhang@yahoo.com 3-9
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
}
<form action=login_authentication.jsp name=form1
method=post onSubmit="return checkinput();">
Administration Module
Please enter username and password
Username
Password
<input type="password" name="password"
size="30" maxlength="10">
Khi trieäu goïi trang login.jsp treân trình duyeät nhö hình 4-8, neáu baïn khoâng nhaäp giaù trò cho
username hay password thì cöûa soå thoâng baùo yeâu caàu xuaát hieän, quaù trình submit leân server chæ
xaûy ra khi baïn nhaäp caû hai giaù trò hôïp leä.
huukhang@yahoo.com 3-10
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
Hình 4-8: Ñaêng nhaäp
Khi submit thaønh coâng, trang login_authentication.jsp ñöôïc goïi, neáu username vaø password baïn
nhaäp töông öùng laø khang, 123456 thì trang myaccount.jsp troû ñeán ngöôïc laïi thì goïi laïi trang
login.jsp nhö ví duï 4-9.
<%
String username="";
String password="";
username= request.getParameter("username");
password= request.getParameter("password");
if (username.equals("khang")){
if(password.equals("123456")){
response.sendRedirect("myaccount.jsp");
}
else{
/*sai password*/
response.sendRedirect("login.jsp");
}
}
else{
/*sai user*/
response.sendRedirect("login.jsp");
}
%>
TOÙM TAÉT 3.
Trong baøi hoïc naøy chuùng toâi giôùi thieäu ñeán cho caùc baïn hai ñoái töôïng chính laø
request vaø response.
huukhang@yahoo.com 3-11
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
Baøi 5
ÑOÁI TÖÔÏNG SESSION
TRONG JSP
Trong baøi tröôùc chuùng ta seõ laøm quen caùc ñoái töôïng thöôøng söû duïng
trong quaù trình thieát keá trang JSP nhö Request, Response. Trong baøi naøy
chuùng ta tieáp tuïc laøm vieäc vôùi ñoái töôïng Session.
Nhöõng vaán ñeà chính seõ ñöôïc ñeà caäp trong baøi hoïc naøy
9 Ñoái töôïng Session.
9 ÖÙng duïng ñoái töôïng Session.
ÑOÁI TÖÔÏNG SESSION
Khi muoán truyeàn giaù trò töø trang trang web naøy sang trang web khaùc trong moät phieân laøm vieäc thì söû
duïng duïng ñoái töôïng Session. Ñoái töôïng naøy thuoäc lôùp HttpSession.
1.
1.1. Nhaän daïng moät phieân laøm vieäc
Moãi khi coù moät phieân laøm vieäc ñöôïc taïo ra, thì trình chuû web seõ caáp moät ñònh danh laø moät chuoãi
bao goàm caùc kyù töï vaø soá cho phieân laøm vieäc ñoù. Chaúng haïn, baïn môû moät browser vaø goïi trang jsp
töø web site, khi ñoù phieân laøm vieäc ñöôïc taïo ra cuøng vôùi ñònh danh duy nhaát.
Khi keát thuùc phieân laøm vieäc, ñònh danh naøy bò thu laïi vaø phaân phaùt laïi cho phieân laøm vieäc khaùc
môùi taïo ra.
Ñeå laáy ñöôïc ñònh danh naøy, baïn söû duïng phöông thöùc getId nhö ví duï 5-1.
JSP's Objects
<META HTTP-EQUIV="Content-Type"
CONTENT="text/html ; charset=utf-8">
Identify ID:
Khi ngöôøi söû duïng goïi trang JSP naøy treân trình duyeät giaù trò cuûa ñònh danh trình baøy nhö hình 4-
1.
huukhang@yahoo.com 3-1
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
Hình 5-1: Ñònh danh cuûa phieân laøm vieäc
1.2. Khôûi taïo vaø gaùn giaù trò cho session
Khi caàn truyeàn gt töø trang JSP naøy sang trang JSP khaùc, baèng caùch khôûi taïo dt Session vaø gaùn
cho chuùng thôøi gian töông öùng, sau ñoù baïn coù theå truy caäp vaøo ñoái töôïng naøy trong trang JSP khaùc
trong cuøng phieân laøm vieäc.
Ñeå laøm ñieàu naøy, baïn söû duïng phöông thöùc setValue voùi cuù phaùp nhö sau:
session.putValue(“teân session”,”giaù trò”);
Ví duï sau khi cung caáp username/password vaø nhaán nuùt Submit töø trang login.jsp nhö hình 5-2,
trang login_authentication.jsp seõ ñöôïc trieäu goïi.
Hình 5-2: Trang login.jsp
huukhang@yahoo.com 3-2
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
Neáu username laø khang vaø password laø 123456 thì trang myaccount.jsp seõ ñöôïc trieäu goïi. Tröôùc
khi trieäu goïi trang myaccount.jsp, chuùng ta khôûi taïo moät soá session duøng ñeå söû duïng cho phieân laøm
vieäc naøy chaúng haïn userid, username, fullname, email nhö ví duï 5-2 (login_authentication.jsp).
<%
String username="";
String password="";
username= request.getParameter("username");
password= request.getParameter("password");
if (username.equals("khang")){
if(password.equals("123456")){
session.putValue("userid","123");
session.putValue("username",username);
session.putValue("fullname","huukhang.com");
session.putValue("email","admin@huukhang.com");
response.sendRedirect("myaccount.jsp");
}
else{
/*sai password*/
response.sendRedirect("login.jsp");
}
}
else{
/*sai user*/
response.sendRedirect("login.jsp");
}
%>
1.3. Laáy giaù trò töø session
Sau khi ñaêng nhaäp thaønh coâng, nhöõng ñoái töôïng session ñöôïc taïo ra, baèng caùch söû duïng phöông
thöùc getValue, baïn coù theå laáy giaù trò töø caùc session naøy nhö ví duï 5-3 (myaccount.jsp).
huukhang@yahoo.com 3-3
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
Hình 5-3: Laáy giaù trò töø Session
Ñeå laáy giaù trò töø caùc session khai baùo trong trang login_authentication.jsp vaø trình baøy treân trang
myaccount.jsp, baïn khai baùo nhö ví duï 5-3.
JSP
Welcome to JSP
logout
userid: =
username: =
fullname: =
email: =
1.4. Huyû session
Sau khi khoâng söû duïng ñoái töôïng session, baïn caàn söû duïng phöông thöùc ñeå huyø session ñoù thaøy vì
ñeå chuùng toàn taïi, bôûi ví neáu chuùng khoâng söû duïng maø vaãn toàn thì web server vaãn phaûi quaûnl lyù.
Chaúng haïn, khi chuùng ta logout khoûi öùng duïng website thì trang logout.jsp seõ ñöôïc tieäu goïi, ba72ng
caùch söû duïng caùc phöông thöùc removeValue ví duï 5-4.
huukhang@yahoo.com 3-4
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
<%
session.removeValue("userid");
session.removeValue("username");
session.removeValue("fullname");
session.removeValue("email");
response.sendRedirect("login.jsp");
%>
Neáu baïn trieäu goïi laïi trang trang myaccount.jsp treân trình duyeät, thì keát quaû trình baøy nhö hình 5-
4.
Hình 5-4: Huyû caùc session
Nhö hình treân, khi session chöa taïo ra, neáu baïn truy caäp ñeán giaù trò cuûa chuùng thì giaù trò ñoù laø
null, chính vì vaäy trong moät soá trang baét buoäc ngöôøi söû duïng phaûi ñaêng nhaäp roài môùi söû duïng thì
baïn caàn phaûi kieåm tra session, neáu session baèng null thì troû ñeán trang login.jsp.
Chaúng haïn trong tröôøng hôïp naøy chuùng ta coù ví duï 5-5, cho pheùp söû duïng khi ngöôøi söû duïng ñaõ
ñaêng nhaäp, ñieàu naøy coù nghóa laø session coù teân userid phaûi toàn taïi.
<%
if (session.getValue("userid")==null)
response.sendRedirect("login.jsp");
%>
JSP
huukhang@yahoo.com 3-5
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
Welcome to JSP
TOÙM TAÉT 2.
Trong baøi hoïc naøy chuùng toâi giôùi thieäu ñeán cho caùc baïn ñoái töôïng chính laø session,
sau khi coù ñoái töôïng naøy, baïn coù theå keát hôïp vôùi hai ñoái töôïng request vaø response ñeå
xaây döïng chöùc naêng ñaêng nhaäp heä thoáng.
huukhang@yahoo.com 3-6
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
Baøi 6
PHÖÔNG THÖÙC VAØ
CHEØN TAÄP TIN
Khi xaây döïng öùng duïng Web noùi chung vaø öùng duïng JSP noùi rieâng,
vieäc thoáng nhaát hoaù giao dieän laø ñieàu caàn thieát, chaúng haïn moïi trang JSP
cuûa öùng duïng ñeàu phaûi coù kích thöôùc phaàn top, left, right, bottom vaø thaân
gioáng nhau. Töông töï nhö vaäy moïi font chöõ vaø kích thöôùc cho töøng phaàn noäi
dung cuõng laø ñieàu baïn phaûi thöïc hieän ñeå öùng duïng mang tính chuyeân
nghieäp hôn
Ngoaøi ra, nhö nhöõng baøi keá tieáp chuùng ta söû duïng chuoãi keát noái hay
khai baùo ñoái töôïng Connection söû duïng trong moãi trang, taát caû nhöõng ñieàu
naøy ñeàu daãn ñeán vieäc quaûn lyù khoù khaên khi caàn thay ñoåi moät trong nhöõng
phaàn lieân quan.
Nhöõng vaán ñeà chính seõ ñöôïc ñeà caäp trong baøi hoïc naøy
9 Xaây döïng taäp tin ñònh daïng noäi dung
9 Thoáng nhaát kích thöôùc cuûa moïi trang JSP
9 Khai baùo haøm vaø thuû tuïc duøng chung
9 Söû duïng haøm vaø thuû tuïc duøng chung
1. XAÂY DÖÏNG TAÄP TIN ÑÒNH DAÏNG NOÄI DUNG
Khi trình baøy noäi dung treân trang HTML hay trang JSP, ñeå thoáng nhaát ñònh daïng chuoãi trong theû
body hay theû div chaúng haïn baïn caàn khai baùo theû style trong theû .
A {
COLOR: #003063;
TEXT-DECORATION: none
}
A:hover {
COLOR: #003063;
TEXT-DECORATION: underline
}
A:link {
FONT-WEIGHT: bold;
COLOR: red;
TEXT-DECORATION: none
}
A:visited {
FONT-WEIGHT: bold;
COLOR: black;
TEXT-DECORATION: none
}
.title {
FONT-WEIGHT: normal;
FONT-SIZE: 22px
}
.text{
FONT: 11px Arial, Helvetica, sans-serif
}
huukhang@yahoo.com 3-1
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
Trong ñoù, A töông öùng vôùi lieân keát (chuoãi trong theû ) coù ñònh daïng öùng vôùi tröôøng hôïp lieân keát, di
chuyeån con chuoät, choïn lieân keát.
A {
COLOR: #003063;
TEXT-DECORATION: none
}
A:hover {
COLOR: #003063;
TEXT-DECORATION: underline
}
A:link {
FONT-WEIGHT: bold;
COLOR: red;
TEXT-DECORATION: none
}
A:visited {
FONT-WEIGHT: bold;
COLOR: black;
TEXT-DECORATION: none
}
Chaúng haïn, chuùng ta khai baùo trang JSP vôùi noäi dung ñöôïc aùp duïng vôùi kieåu ñònh daïng khai baùo
trong theû style nhö vuù duï 6-1.
Ví duï 6-1: Khai baùo theû style
Style trong JSP
A {
COLOR: #003063;
TEXT-DECORATION: none
}
A:hover {
COLOR: #003063;
TEXT-DECORATION: underline
}
A:link {
FONT-WEIGHT: bold;
COLOR: red;
TEXT-DECORATION: none
}
A:visited {
FONT-WEIGHT: bold;
COLOR: black;
TEXT-DECORATION: none
}
.title {
FONT-WEIGHT: normal;
FONT-SIZE: 22px;
COLOR: #003063;
}
.text{
FONT: 11px Arial, Helvetica, sans-serif
}
huukhang@yahoo.com 3-2
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
Style Tag
<TABLE cellSpacing=0 cellPadding=0
width="100%" border=0>
*** Quaûn Trò SQL Server 2000 ***
Tìm hieåu caùch caøi ñaët, caáu hình, quaûn trò,
backup & restore, import & export, thieát
keá, laäp trình, töï ñoäng hoaù taùc vuï quaûn trò,
baûn sao döõ lieäu, baûo maät vaø choáng thaâm nhaäp
döõ lieäu baèng.
SQL Injection.
Welcome to
www.huukhang.com</TD
Khi trieäu goïi trang ex1.jsp treân trình duyeät, noäi dung cuûa trang web ñöôïc ñònh daïng theo theû style
nhö hình 6-1.
Hình 6-1: AÙp duïng theû style
huukhang@yahoo.com 3-3
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
Töông töï nhö vaäy khi baïn muoán thoáng nhaát noäi dung trong nhöõng theû khaùc cuûa moät trang web thì
khai baùo moät ñònh daïng trong theû style. Tuy nhieân, khi ñaët teân truøng vôùi theû HTML, moïi theû ñoù
trong trang seõ cuøng chung moät ñònh daïng. Chaúng haïn, baïn khai baùo ñònh daïng cho theû td nhö sau:
TD {
FONT: 10px Arial, Helvetica, sans-serif
}
Moïi noäi dung trình baøy trong theû td seõ coù ñònh daïng nhö treân. Neáu baïn muoán coù ñònh daïng khaùc thì
khai baùo thuoäc tính class cho theû td ñoù, ví duï söû duïng ñònh daïng khaùc cho theû td:
ABC
Thay vì chuoãi ABC seõ coù ñònh daïng laø FONT: 10px Arial, Helvetica, sans-serif thì chuùng seõ coù ñònh
daïng cuûa FONT: 11px Arial, Helvetica, sans-serif.
Chuù yù raèng, trong moãi trang web baïn phaûi khai baùo theû style vaø ñònh nghóa thoáng nhaát cho caùc theû.
Khi coù söï thay ñoåi baïn phaûi thay ñoåi trong moïi trang web. Ñeå söû duïng chung cho moïi trang web trong
öùng duïng, baïn caàn xaây döïng moät taäp tin style, taäp tin ñöôïc bieát ñeán vôùi teân goïi custom style sheet
(css).
Baát kyø trang web naøo trong öùng duïng, muoán aùp duïng kieåu ñònh daïng trong taäp tin css thì khai baùo
lieân keát taäp tin css baèng theû link.
Ví duï, chuùng ta khai baùo taäp tin style.css bao goàm caùc ñònh daïng nhö ví duï 6-2.
Ví duï 6-2: Khai baùo taäp tin css
A {
COLOR: #003063;
TEXT-DECORATION: none
}
A:hover {
COLOR: #003063;
TEXT-DECORATION: underline
}
A:link {
FONT-WEIGHT: bold;
COLOR: red;
TEXT-DECORATION: none
}
A:visited {
FONT-WEIGHT: bold;
COLOR: black;
TEXT-DECORATION: none
}
.title {
FONT-WEIGHT: bold;
FONT-SIZE: 14px;
COLOR: #003063;
}
.text{
FONT: 11px Arial, Helvetica, sans-serif
}
Sau ñoù trong trang JSP, baïn khai baùo lieân keát taäp tin naøy baèng theû link, neáu muoán aùp duïng ñònh
daïng naøy trong moãi theû HTML baïn söû duïng thuoäc tính class nhö khai baùo ñònh daïng cuûa theû style
ngay trong trang ñoù nhö ví duï 6-3.
Ví duï 6-3: Khai baùo söû duïng taäp tin css
huukhang@yahoo.com 3-4
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
Welcome to Link Style Sheet File
<META http-equiv=Content-Type
content="text/html; charset=utf-8">
Style File
<TABLE cellSpacing=0 cellPadding=0
width="100%" border=0>
*** Quaûn Trò SQL Server 2000 ***
Tìm hieåu caùch caøi ñaët, caáu hình, quaûn trò,
backup & restore, import & export, thieát
keá, laäp trình, töï ñoäng hoaù taùc vuï quaûn trò,
baûn sao döõ lieäu, baûo maät vaø choáng thaâm nhaäp
döõ lieäu baèng.
SQL Injection.
Welcome to
www.huukhang.com</TD
Trieäu goïi trang ex.jsp treân trình duyeät nhö hình 6-3, maøu vaø kích thöôùc font cuøng vôùi kieåu chöõa cuûa
noäi dung khoâng thay ñoåi so vôùi ex1.jsp, bôûi vì phaàn theû style ñöôïc taùch ra thaønh taäp tin style.css, sau
ñoù duøng theû link ñeå lieân keát taäp tin css naøy vaøo trang jsp trôû laïi.
huukhang@yahoo.com 3-5
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
Hình 6-3: Lieân keát taäp tin css
Chuù yù raèng, neáu khai baùo thuoäc tính class trong theû thì nhöõng noäi dung trong theû seõ
coù ñònh daïng theo ñònh daïng khai baùo trong thuoäc tính class. Töông töï, neáu khai baùo thuoäc tính class
trong theû thì noäi dung trong theû seõ coù ñònh daïng gioáng nhö ñònh daïng khai baùo trong thoâng
tin class.
2. THOÁNG NHAÁT KÍCH THÖÔÙC CUÛA MOÏI TRANG JSP
Khi xaây döïng öùng duïng web chuyeân nghieäp, ñieàu ñaàu tieân baïn neân quan taâm laø söï thoáng nhaát veà kích
thöôùc cuûa caùc phaàn treân trang web. Ñieàu naøy coù nghóa laø khi ngöôøi söû duïng thay ñoåi trang web khi
duyeät, phaàn top, left, right, bottom coù kích thöôùc nhö nhau.
Ñeå laøm ñieàu naøy, baïn chia trang web ra thaønh 5 phaàn: top, left, right, body vaø bottom.
Phaàn top thöôøng trình baøy caùc thuoäc tính nhö quaûn caùo (baner), logo (bieåu töôïng cuûa coâng ty), menu
(thöïc ñôn cuûa öùng duïng) vaø moät soá thoâng tin khaùc.
Phaàn left laø thoâng tin veà caùc menu phuï hay coøn goïi laø menu cuûa menu chính, beân caïnh menu con naøy
trang web thöôøng coù caùc lieân keát veà lieân heä, quaûng caùo, mailing list (ñaêng kyù email), gôûi ñeán baïn beø
(send to friend), ....
Ñoái vôùi phaàn right, thöôøng laø phaàn giôùi thieäu veà caùc thoâng ñaëc bieät vaø quaûng caùo, chaúng haïn ñoái vôùi
öùng duïng baùn saùch, phaàn right thöôøng laø danh saùch caùc nhoùm saùch baùn chaïy, saép phaùt haønh, ...
Phaàn bottom thöôøng thoâng tin lieân laïc cuûa coâng ty, chuû nhaân cuûa web site vaø baûn quyeàn. Ngoaøi ra,
phaàn bottom ñoâi khi laø danh saùch caùc menu con khaùc.
Toùm laïi, tuyø thuoäc vaøo yù töôûng thieát keá moãi phaàn nhö treân bao goàm caùc thuoäc tính maø nhaø thieát keá
caàn trình baøy sao cho phuø hôïp. Tuy nhieân, phaàn body laø phaàn trình baøy noäi dung chính cuûa moãi trang
web. Ngoaøi ra, tuyø vaøo töøng tröôøng hôïp cuï theå, trang web coù theå khoâng coù phaàn left vaø right.
huukhang@yahoo.com 3-6
COMPUTER LEARNING CENTER WWW.HUUKHANG.COM
Nhö vaäy, chuùng ta seõ chia trang web ra thaønh 5 phaàn, phaàn body chính laø phaàn chính cuûa trang web
ñoù, coøn 4 phaàn coøn laïi ñöôïc cheøn vaøo khi coù nhu caàu.
Chaúng haïn, coù nhöõng trang web do thoâng tin trình baøy trong phaàn body nhieàu, neân caàn khoâng gia lôùn
hôn, baïn coù theå khoâng caàn söû duïng hai phaàn left vaø right.
Ñeå laøm ñieàu naøy, tröôùc tieân chuùng ta thieát keá trang sample.jsp coù 5 phaàn nhö hình 6-3.
Hình 6-3: Trang sample.jsp
-------------------------------------------------------------------------------------------
Löu yù:
Taïo moät table goàm 3 ha
Các file đính kèm theo tài liệu này:
- Can_ban_JSP.pdf