Lập trình web JSP

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.

pdf118 trang | Chia sẻ: tlsuongmuoi | Lượt xem: 2239 | Lượt tải: 1download
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:

  • pdfCan_ban_JSP.pdf
Tài liệu liên quan