Tìm hiểu về kỹ thuật lập trình JSP với cơ sở dữ liệu SQL Server và triển khai ứng dụng JSP trên Web Site .Nhằm đáp ứng nhu cầu học môn Lập Trình Mạng qua mạng của sinh viên, học sinh và một số thành viên khác . Đề tài được giới hạn trong 4 chương đầu tiên của môn Lập Trình Mạng phần cơ sở.
Chương 1: Client Side Networking.
Chương 2: Server Side Networking
Chương 3: UDP
Chương 4: URL
70 trang |
Chia sẻ: luyenbuizn | Lượt xem: 1113 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Thiết kế web site môn lập trình mạng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
PHAÀN A : PHAÂN TÍCH THIEÁT KEÁ VAØ THÖÏC THI ÑEÀ TAØI
CHÖÔNG I : PHAÂN TÍCH VAØ THIEÁT KEÁ HEÄ THOÁNG
PHAÂN TÍCH YEÂU CAÀU ÑEÀ TAØI :
Phaïm vi ñeà taøi:
Tìm hieåu veà kyõ thuaät laäp trình JSP vôùi cô sôû döõ lieäu SQL Server vaø trieån khai öùng duïng JSP treân Web Site .Nhaèm ñaùp öùng nhu caàu hoïc moân Laäp Trình Maïng qua maïng cuûa sinh vieân, hoïc sinh vaø moät soá thaønh vieân khaùc . Ñeà taøi ñöôïc giôùi haïn trong 4 chöông ñaàu tieân cuûa moân Laäp Trình Maïng phaàn cô sôû.
Chöông 1: Client Side Networking.
Chöông 2: Server Side Networking
Chöông 3: UDP
Chöông 4: URL
Yeâu caàu ñeà taøi:
Website cung caáp ñaày ñuû caùc thoâng tin veà: Hoïc vieân,Giaùo vieân , Noäi dung chöông trình hoïc , Ñeà thi phuïc vuï cho vieäc hoïc qua maïng .
Heä thoáng Website yeâu caàu trieån khai ñöôïc treân heä ñieàu haønh Windows 2k , heä quaûn trò cô sôû döõ lieäu MicroSoft SQL Server 2000.
Quaûn lyù:
Hoïc vieân ñaêng kyù hoïc
Chöông trình hoïc
Ngaân haøng caâu hoûi vaø ñeà thi
Giaùo vieân ra ñeà thi
Quaûn trò heä thoáng
Coâng ngheä söû duïng:
Heä thoáng söû duïng heä ñieàu haønh Windows 2000 server
Söû duïng SQL Server thieát keá cô sôû döõ lieäu vaø Rational Rose minh hoaï chöùc naêng heä thoáng
Laäp trình web vôùi Servlet / JSP
Vôùi caùc chöông trình hoå trôï : JDK1.3, Dreamweaver MX
Web Server Tomcat, J2EE.
PHAÂN TÍCH HOAÏT ÑOÄNG WEB SITE:
Giao dieän vôùi ngöôøi söû duïng :
Khi ngöôøi söû duïng vaøo trang Web neáu hoï muoán hoïc thì phaûi ñaêng kyù hoïc chöông trình hoïc vaø töø baây giôø trôû ñi thoâng tin cuûa hoï ñaõ ñöôïc löu tröõ vaø hoï trôû thaønh hoïc vieân chính thöùc cuûa Web Site.
Chöông trình hoïc bao goàm 4 chöông :
Chöông 1 : Client Side Networking
Chöông 2 : Server Side Networking
Chöông 3 : UDP
Chöông 4 : URL
Vaøo cuoái moãi chöông hoïc vieân phaûi traûi qua moät baøi kieåm tra kieán thöùc cuûa chöông ñoù. Neáu ñaït ñieåm >=5 hoïc vieân môùi ñöôïc hoïc tieáp chöông tieáp theo. Neáu chöa ñaït hoïc vieân coù theå kieåm tra laàn 2, neáu soá laàn khoâng ñaït maø quaù 3 laàn thì buoäc hoïc vieân ñoù phaûi hoïc laïi chöông ñoù ñeå laáy laïi kieán thöùc ñeå thi toát hôn.
Ñieåm thi cuûa hoïc vieân seõ ñöôïc löu laïi ñeå hoï coù theå xem vaøo baát kyø luùc naøo khi hoï vaøo Web Site.
Khi hoïc vieân ñaõ hoïc xong 4 chöông vaø ñieåm kieåm tra cuûa hoï ñaõ ñaït thì hoï seõ coù kyø thi cuoái khoaù hoïc thoâng qua boä ñeà thi maø giaùo vieân ñöa ra töø ngaân haøng caâu hoûi.
Neáu ñieåm thi cuoái khoùa ñaït thì hoïc vieân ñaõ hoaøn thaønh khoaù hoïc vaø hoï coù theå tin töôûng raèng hoï coù theâm moät ít kieán thöùc veà moân Laäp Trình Maïng naøy.
Quaûn trò heä thoáng :
Vôùi heä thoáng ta phaân thaønh 3 caáp quyeàn , öùng vôùi moãi quyeàn thì user ñoù coù chöùc naêng rieâng töông öùng quyeàn cuûa hoï :
Vôùi hoïc vieân hoïc coù quyeàn : hoïc , thi, xem ñieåm, caäp nhaät thoâng tin
Vôùi giaùo vieân quyeàn cuûa hoï laø : caäp nhaät caâu hoûi vaøo ngaân haøng caâu hoûi vaø caäp nhaät ñeà thi môùi vaøo heä thoáng, ñoàng thôøi hoï cuõng coù quyeàn hoïc nhö moät hoïc vieân.
Coøn Admin laø ngöôøi coù quyeàn cao nhaát trong heä thoáng neân hoï coù quyeàn : caáp quyeàn cho caùc user, xoaù caùc user, caäp nhaät giaùo vieân vaø caäp nhaät chöông trình hoïc vaø ñoàng thôøi Admin cuõng coù quyeàn cuûa caû hoïc vieân.
PHAÂN TÍCH VAØ THIEÁT KEÁ HEÄ THOÁNG VÔÙI RATIONAL ROSE
Xaây döïng moâ hình Use- Case :
Nhaän dieän caùc Actor :
Hoïc vieân laø ngöôøi coù queàn vaøo daïo xem Web, ñaêng kyù hoïc , hoïc ,thi, sau ñoù hoï coù theå ñaêng nhaäp vaøo heä thoáng ñeå caäp nhaät laïi thoâng tin cuûa mình , ñoàng thôøi cuõng coù theå xem ñieåm maø mình ñaõ ñaït ñöôïc .
Giaùo vieân laø ngöôøi maø hoï coù quyeàn ra caâu hoûi , ra ñeà thi , sau ñoù hoï ñaêng nhaäp vaøo heä thoáng ñeå thay ñoåi thoâng tin cuûa mình , ñoàng thôøi cuõng coù quyeàn caäp nhaät vaøo ñeà thi môùi ñeå hoïc vieân thi.
Admin laø ngöôøi coù quyeàn cao nhaát trong heä thoáng neân hoï coù quyeàn caäp nhaät giaùo vieân môùi , ñoàng thôøi caäp nhaät chöông trình hoïc môùi vaøo cho hoïc vieân hoïc.
Xaây döïng moâ hình Use Case:
Töø yeâu caàu thöïc tieån ta coù moâ hình Use Case nhö sau
Hình 1. 1. Moâ hình Use Case.
Xaây döïng sô ñoà lôùp (Class Diagram):
Nhaän dieän caùc lôùp chính :
Users : löu tröõ ñaày ñuû caùc thoâng tin veà Usernames , Password vaø caû quyeàn cuûa taát caû caùc User khi vaøo heä thoáng .
Hocvien : löu tröõ thoâng tin veà hoïc vieân khi hoï ñaêng nhaäp vaøo hoïc .
Giaovien : löu tröõ thoâng tin Teân, Email, Usernames cuûa giaùo vieân khi hoï ñaêng nhaäp vaøo heä thoáng.
Chöông : löu tröõ chöông trình hoïc bao goàm 4 chöông.
Demuc : löu tröõ soá ñeà muïc coù trong moãi chöông ñoù .
Tieumuc : löu tröõ soá tieåu muïc vaø noäi dung chi tieát cuûa moãi ñeà muïc trong moãi chöông ñoù.
Hocvienduthi : löu tröõ thoâng tin hoïc vieân khi vaøo thi ñeà thi ñoù , soá laàn vaøo thi vaø ñieåm cuûa hoïc vieân öùng vôùi moãi laàn thi.
Cauhoi : löu tröõ chi tieát veà noäi dung caâu hoûi coù trong ngaân haøng caâu hoûi do giaùo vieân ra vaø trong moät chöông cuï theå.
Dethi : löu tröõ soá ñeà thi trong ñoù bao nhieâu caâu hoûi vaø thuoäc chöông naøo do giaùo vieân naøo ra.
Cautraloi : löu tröõ soá caâu traû lôøi coù trong moät caâu hoûi ñeå hoïc vieân coù theå choïn löïa khi thi.
Luachon : löu tröõ soá caâu löïa choïn cuûa hoïc vieân trong caâu hoûi ñoù vaø ñaùp aùn caâu hoûi ñoù ñeå so saùnh keát quaû ñuùng khi hoïc vieân ñaõ choïn.
Xaây döïng Class Diagram :
Hình 1. 2. Sô ñoà lôùp ( Class Diagram ).
Löôïc ñoà tuaàn töï ( Sequence Diagram ) vaø löôïc ñoà hoaït ñoäng (Activity Model ) :
Löôïc ñoà tuaàn töï (Sequence Diagram) :
Chöùc naêng Hoïc Vieân:
Löôïc ñoà döôùi ñaây moâ taû chi tieát caùc chöùc naêng cuûa hoïc vieân khi hoï vaøo trang web
Ñaàu tieân vaøo Hoïc vieân ñaêng kyù vaøo heä thoáng
Hình 1.3 . Löôïc ñoà tuaàn töï thöù nhaát cuûa hoïc vieân
Keá ñeán Hoïc vieân seõ ñaêng nhaäp vaøo heä thoáng baèng Usernames vaø Password maø hoï ñaõ ñaêng kyù
Hình 1.4 . Löôïc ñoà tuaàn töï thöù hai cuûa hoïc vieân
Sau khi ñaêng nhaäp vaøo heä thoáng thaønh coâng hoïc vieân seõ baét ñaàu hoïc
Hình 1.5 . Löôïc ñoà tuaàn töï thöù ba cuûa hoïc vieân
Sau ñoù hoïc vieân cuõng coù theå ñaêng nhaäp vaøo heä thoáng ñeå caäp nhaät thoâng tin cuûa mình
Hình 1.6 . Löôïc ñoà tuaàn töï thöù tö cuûa hoïc vieân
Ñoàng thôøi hoïc vieân cuõng coù theå ñaêng nhaäp vaøo thay ñoåi laïi Password maø mình ñaõ ñaêng kyù tröôùc ñoù
Hình 1.7 . Löôïc ñoà tuaàn töï thöù naêm cuûa hoïc vieân
höùc naêng Giaùo Vieân:
Löôïc ñoà döôùi ñaây moâ taû chi tieát caùc chöùc naêng cuûa Giaùo vieân khi hoï vaøo trang web
Ñaàu tieân giaùo vieân seõ ñaêng nhaäp vaøo heä thoáng ñeå thöïc hieän quyeàn cuûa mình
Hình 1.8 . Löôïc ñoà tuaàn töï thöù nhaát cuûa giaùo vieân
Sau Khi ñaõ ñaêng nhaäp thaønh coâng thì giaùo vieân thöïc thi chöùc naêng caäp nhaät ñeà thi vaøo heä thoáng
Hình 1.9 . Löôïc ñoà tuaàn töï thöù hai cuûa giaùo vieân
Keá ñeán giaùo vieân cuõng coù theå ñaêng nhaäp vaøo heä thoáng ñeå thay ñoåi Password cuûa mình
Hình 1.10 . Löôïc ñoà tuaàn töï thöù ba cuûa giaùo vieân
Chöùc naêng Admin:
Löôïc ñoà döôùi ñaây moâ taû chi tieát caùc chöùc naêng cuûa Admin khi hoï vaøo trang web
Ñaàu tieân Admin cuõng phaûi ñaêng nhaäp vaøo heä thoáng ñeå thöïc hieän quyeàn cuûa mình
Hình 1.11 . Löôïc ñoà tuaàn töï thöù nhaát cuûa Admin
Sau khi ñaõ ñaêng nhaäp thaønh coâng thì Admin thöïc thi quyeàn ñaàu tieân cuûa mình laø caäp nhaät chöông trình hoïc vaøo heä thoáng ñeå hoïc vieân coù theå tieáp caän nhöõng chöông trình môùi
Hình 1.12 . Löôïc ñoà tuaàn töï thöù hai cuûa Admin
Ngoaøi ra Admin coù quyeàn caäp nhaät giaùo vieân môùi vaøo heä thoáng
Hình 1.13 . Löôïc ñoà tuaàn töï thöù ba cuûa Admin
Sau cuøng Admin cuõng coù quyeàn thay ñoåi thoâng tin Password cuûa chính mình
Hình 1.14 . Löôïc ñoà tuaàn töï thöù tö cuûa Admin
Sô ñoà hoaït ñoäng (Activity Model):
Hình 1. 15 . Sô ñoà hoaït ñoäng
Vôùi sô ñoà (hình 1. 15) treân ñaây cho ta thaáy chi tieát hôn veà hoïat ñoäng cuûa heä thoáng keå töø khi hoïc vieân baét ñaàu ñaêng kyù vaøo hoïc. Ñeå laøm roõ hôn nöõa caùc chöùc naêng heä thoáng ta böôùc vaøo phaàn thieát keá döõ lieäu seõ moâ taû chi tieát caùc class vaø xöû lyù caøi ñaët chöông trình sau ñaây.
Sô Ñoà Entity Relationship:
Ñeå theå hieän roû hôn quan heä giöõa caùc lôùp ta söõ duïng coâng cuï Together taïo ra sô sau
THIEÁT KEÁ DÖÕ LIEÄU:
Moâ taû chi tieát caùc Table trong cô sôû döõ lieäu
Table Users
Users ( Usernames , Passwords , Quyen )
STT
THUOÄC TÍNH
GIAÙ TRÒ
KIEÅU
RAØNG BUOÄC
DIEÃN GIAÛI
1
Usernames
Not null
Varchar(50)
Khoùa chính
Teâân ñaêng nhaäp vaøo heä thoáng phaân bieät vôùi nhöõng teân ñaêng nhaäp khaùc
2
Passwords
Not
null
Varchar(50)
ÖÙng vôùi moãi teân ñaêng nhaäp coù moät maät khaåu rieâng
3
Quyen
Null
Int(4)
Quyeàn ñöôïc öu tieân khi ñaêng nhaäp (1:Admin; 2:Giaùovieân;
3: Hoïcvien)
Table Giaovien
Giaovien(Magiaovien,Tengiaovien,Email,Usernames)
STT
THUOÄC TÍNH
GIAÙ TRÒ
KIEÅU
RAØNG BUOÄC
DIEÃN GIAÛI
1
Magiaovien
Not null
Int (4)
Khoaù chính
Moãi giaùo vieân coù moät Maõ soá rieâng ñeå phaân bieät vôùi giaùo vieân khaùc
2
Tengiaovien
Null
Varchar(50)
ÖÙng vôùi moãi maõ giaùo vieân laø teân cuûa giaùo vieân
3
Email
Null
Varchar(50)
Email cuûa giaùo vieân
4
Usernames
Not
null
Varchar(50)
Teân ñaêng nhaäp cuûa giaùo vieân khi vaøo heä thoáng
Table Hocvien
Hocvien(Mahocvien,Tenhocvien,Email,Usernames)
STT
THUOÄC TÍNH
GIAÙ TRÒ
KIEÅU
RAØNG BUOÄC
DIEÃN GIAÛI
1
Mahocvien
Not null
Int(4)
Khoùa chính
Moãi hoïc vieân coù moät maõ soá rieâng ñeå phaân bieät vôùi hoïc vieân khaùc
2
Tenhocvien
Not null
Varchar
(50)
ÖÙng vôùi moãi hoïc vieân laø teân cuûa hoïc vieân
3
Email
Null
Varchar
(50)
Email cuûa hoïc vieân
4
Usernames
Not
null
Varchar
(50)
Teân ñaêng nhaäp cuûa hoïc vieân vaøo heä thoáng
Table Hoc
Hoc(Machuong,Mahocvien,Lanthi,Diem)
STT
THUOÄC TÍNH
GIAÙ TRÒ
KIEÅU
RAØNG BUOÄC
DIEÃN GIAÛI
1
Machuong
Not null
Int(4)
Khoùa chính
Coù nhieàu chöông ñöôïc phaân bieät theo maõ chöông
2
Mahocvien
Not null
Int(4)
Khoùa chính
Coù nhieàu hoïc vieân theo hoïc ñöôïc phaân bieät theo Maõ hoïc vieân
3
Lanthi
Not Null
Int(4)
Khoùa chính
Soá thöù töï laàn thi sau khi hoïc moãi chöông
4
Diem
Null
Float
Ñieåm thuoäc veà laàn thi sau moãi chöông
Table Chuong
Chuong(Machuong,Tenchuong,Noidungtomtat,Hinh,Chuongtruoc,
Chuong sau)
STT
THUOÄC TÍNH
GIAÙ TRÒ
KIEÅU
RAØNG BUOÄC
DIEÃN GIAÛI
1
Machuong
Not null
Int(4)
Khoaù chính
Moãi chöông coù moät maõ soá rieâng ñeå phaân bieät chöông khaùc
2
Tenchuong
Null
Varchar
(50)
ÖÙng vôùi moãi chöông laø teân chöông
3
Noidungtomtat
Null
Varchar
(7000)
Moãi chöông coù moät noäi dung toùm taét
4
Hinh
Null
Varchar(50)
Hình veõ cuûa chöông ( neáu coù )
5
Chuongtruoc
Null
Int (4)
Moãi chöông coù moät maõ soá chöông lieàn tröôùc
6
Chuongsau
Null
Int(4)
Moãi chöông coù moät maõ soá chöông lieàn sau
Table Demuc
Demuc(Mademuc,Tendemuc,Noidungdemuc,Machuong,Hinh)
STT
THUOÄC TÍNH
GIAÙ TRÒ
KIEÅU
RAØNG BUOÄC
DIEÃN GIAÛI
1
Mademuc
Not null
Int(4)
Khoùa chính
Moãi ñeà muïc coù moät maõ ñeà muïc rieâng ñeå phaân bieät vôùi ñeà muïc khaùc
2
Tendemuc
Null
Varchar
(50)
ÖÙng vôùi moãi ñeà muïc coù teân ñeà muïc
3
Noidungdemuc
Null
Varchar
(7000)
Moãi ñeà muïc coù noäi dung ñeà muïc
4
SourceCode
Null
Varchar
(7000)
Source Code cuaû moãi ñeà muïc
5
Machuong
Null
Int(4)
Khoùa ngoaïi
Maõ ñeà muïc thuoäc veà maõ chöông naøo
6
Hinh
Null
Varchar
(50)
Hình veõ öùng vôùi moãi ñeà muïc ( neáu coù)
Table Tieumuc
Tieumuc(Matieumuc,Tentieumuc,Noidungtieumuc,Mademuc,Hinh)
STT
THUOÄC TÍNH
GIAÙ TRÒ
KIEÅU
RAØNG BUOÄC
DIEÃN GIAÛI
1
Matieumuc
Not null
Int(4)
Khoùa chính
Moãi tieâu muïc coù moät maõ soá rieâng ñeå phaân bieät vôùi tieåu muïc khaùc
2
Tentieumuc
Null
Varchar
(50)
Moãi tieåu muïc coù teân tieåu muïc
3
Noidungtieumuc
Nul
Varchar
(7000)
ÖÙng vôùi moãi tieåu muïc coù noäi dung
4
Mademuc
Null
Int(4)
Tieåu muïc thuoäc veà maõ ñeà muïc naøo ?
5
Hinh
Null
Varchar
(50)
Hình veõ minh hoïa cho tieåu muïc ( neáu coù )
Table Hocvienduthi
Hocvienduthi(Mahocvien,Madethi,Lanthicuoi,Diem)
STT
THUOÄC TÍNH
GIAÙ TRÒ
KIEÅU
RAØNG BUOÄC
DIEÃN GIAÛI
1
Mahocvien
Not null
Int(4)
Khoùa chính
Moãi hoïc vieân coù moät maõ soá rieâng ñeå phaân bieät vôùi hoïc vieân khaùc (trong kyø thi cuoái khoùa)
2
Madethi
Not Null
Int(4)
ÖÙng vôùi maõ hoïc vieân coù moät maõ ñeà thi rieâng
3
Lanthicuoi
Not Null
Int(4)
Soá thöù töï laàn thi sau moãi khoùa hoïc
4
Diem
Null
Float
Ñieåm thuoäc laàn thi ñoù
Table Chitietdethi
Chitietdethi(Macauhoi,Madethi)
STT
THUOÄC TÍNH
GIAÙ TRÒ
KIEÅU
RAØNG BUOÄC
DIEÃN GIAÛI
1
Macauhoi
Not null
Int(4)
Khoùa chính
Maõ caâu hoûi thuoäc nhieàu ñeà thi, phaân bieät vôùi nhöõng caâu hoûi khaùc
2
Madethi
Not null
Int(4)
Khoùa chính
Moät ñeà thi goàm nhieàu caâu hoûi , phaân bieät vôùi nhöõng ñeà thi khaùc.
Table Ñeà thi
Dethi(Madethi,Socaukho,Socaude,Socautrungbinh, Machuong,Magiaovien)
STT
THUOÄC TÍNH
GIAÙ TRÒ
KIEÅU
RAØNG BUOÄC
DIEÃN GIAÛI
1
Madethi
Not null
Int(4)
Khoùa chính
Moãi ñeà thi coù moät maõ soá rieâng ñeå phaân bieät vôùi ñeà thi khaùc
2
Socaukho
Null
Int(4)
Soá caâu hoûi khoù thuoäc veà maõ ñeà thi
3
Socaude
Null
Int(4)
Ñeà thi goàm bao nhieâu caâu hoûi deã ?
4
Socautrungbinh
Null
Int(4)
Soá caâu hoûi trung bình coù trong ñeà thi
5
Machuong
Null
Int(4)
Ñeà thi thuoäc maõ chöông gì ?
6
Magiaovien
Null
Int(4)
Gíao vieân naøo ra ñeà thi ?
Table Cauhoi
Cauhoi(Macauhoi,Noidungcauhoi,Machuong,Magiaovien,Mucdo)
STT
THUOÄC TÍNH
GIAÙ TRÒ
KIEÅU
RAØNG BUOÄC
DIEÃN GIAÛI
1
Macauhoi
Not null
Int(4)
Khoùa chính
Moãi caâu hoûi coù moat maõ soá rieâng ñeå phaân bieät vôùi caâu hoûi khaùc
2
Noidungcauhoi
Null
Varchar
(7000)
Moãi caâu hoûi coù noäi dung rieâng
3
Machuong
Null
Int(4)
Khoùa ngoïai
Caâu hoûi thuoäc veà maõ chöông naøo .
4
Magiaovien
Null
Int(4)
Khoùa ngoaïi
Maõ giaùo vieân soaïn caâu hoûi
5
Mucdo
Null
Int(4)
Moãi caâu hoûi coù möùc ñoä khoù rieâng
Table Cautraloi
Cautraloi(Macauluachon,Noidungcauluachon,Macauhoi)
STT
THUOÄC TÍNH
GIAÙ TRÒ
KIEÅU
RAØNG BUOÄC
DIEÃN GIAÛI
1
Macauluachon
Not null
Int(4)
Khoùa chính
Moãi caâu löïa choïn coù moät maõ rieâng phaân bieät vôùi nhöõng caâu löïa choïn khaùc
2
Noidungcauluachon
Null
Varchar
(7000)
ÖÙng vôùi moãi maõ caâu löïa choïn coù noäi dung caâu löïa choïn
Table Chonlua
Chonlua(Macauhoi,Macauluachon,Ghichu)
STT
THUOÄC TÍNH
GIAÙ TRÒ
KIEÅU
RAØNG BUOÄC
DIEÃN GIAÛI
1
Macauhoi
Not null
Int(4)
Khoùa chính
Moãi caâu hoæ coù maõ caâu hoæ rieâng
2
Macauluachon
Not Null
Int(4)
Khoùa chính
ÖÙng vôùi moãi maõ caâu hoæ coù nhieàu maõ caâu löïa choïn
3
Ghichu
Null
Int(4)
Ñaùp aùp ñuùng öùng vôùi moãi maõ caâu hoæ
CHÖÔNG II : CAØI ÑAËT CHÖÔNG TRÌNH
SÔ ÑOÀ PHAÂN RAÕ CHÖÙC NAÊNG HEÄ THOÁNG :
WEB SITE HOÏC QUA MAÏNG
CHÖÙC NAÊNG ADMIN
CHÖÙC NAÊNG HOÏC VIEÂN
CHÖÙC NAÊNG GIAÙO VIEÂN
ÑAÊNG KÍ HOÏC
HOÏC
THI
ÑAÊNG KÍ THI
XEM ÑIEÅM THI
CAÄP NHAÄT THOÂNG TIN
DAÏO XEM WEB
CAÄP NHAÄT CHÖÔNG TRÌNH HOÏC
CAÄP NHAÄT GIAÙO VIEÂN
CAÄP NHAÄT ÑEÀ THI
THAY ÑOÅI MAÄT KHAÅU
THAY ÑOÅI PASSWORD
Hình 2. 1. Sô ñoà phaân raõ chöùc naêng heä thoáng
CAØI ÑAËT CHÖÔNG TRÌNH :
Phaàn hoïc vieân :
Töø sô ñoà tuaàn töï öùng vôùi phaàn hoïc vieân (hình 1. 3) ôû chöông 1 , öùng vôùi löôïc ñoà ñaàu tieân thì hoïc vieân muoán vaøo hoïc phaûi ñaêng kyù vaøo hoïc , ñeå laøm roõ hôn chöùc naêng naøy ta coù ñoïan xöû lyù sau:
Xöû lyù ñaêng kyù
Böôùc 1: khai baùo keát noái cô sôû döõ lieäu
Khai baùo trình ñieàu khieån vaø thoâng tin caàn thieát ñeå keát noái vôùi cô sôû döõ lieäu
Drivername=”sun. jdbc. Odbc. jdbcOdbcDriver”
URL=”jdbc: odbc: HOCQUAMANG”
Usernames=”sa”
Password =””
Böôùc 2 : Khai baùo caùc tham soá nhaän töø request nhö :
Tenhocvien=request. getParameter(“txtTenhocvien”)
Töông töï cho email, teân ñaêng nhaäp(Usernames) , maät khaåu (Password) ., ñoàng thôøi caáp quyeàn cho hoïc vieân baèng 0
( Int quyen=0)
Böôùc 3 : Khai baùo caùc ñoái töôïng caàn thieát ñeå taïo keát noái
Class. forName(Drivername). newInstace();
Connection Cn=null
Cn = DriverManage. getConnection(URL,”Usernames”,”Password”)
Statement st=null
ResultSet Rs=null
Böôùc 4 : Thöïc thi caâu leänh SQL xem hoïc vieân ñaõ ñaêng kyù chöa
String SQL=” Select Usernames From Hocvien
where Usernames=’”+tendangnhap+”’
String SQL1=” Select Usernames From Hocvien
where Usernames=’”+tendangnhap+”’
Rs=st. executeQuery(SQL)
Rs=st. executeQuery(SQL1)
Kieåm tra neáu neáu teân ñaêng nhaäp (Usernames) naøy ñaõ coù roài thì chuyeån höôùng nhaûy ñeán trang baùo loãi
If( rs.next()) { response. SendRedirect(“Loi.html”) }
Vaø môøi hoïc vieân ñaêng kyù laïi
Kieåm tra neáu chöa toàn taïi thì ta thöïc hieän theâm hoïc vieân naøy vaøo cô sôû döõ lieäu
Else { sql=Insert into Hocvien(Tenhocvien,Email ,Usernames) Value (‘”+tenhocvien+”’, ‘”+email+”’,’”+tendangnhap+”’)
Sql1=Insert into Users(Usernames, Password, quyen) Value(’”+tendangnhap+”’, ‘”+matkhau+”’,”+quyen+”)
Sau khi caäp nhaäp hoïc vieân môùi thaønh coâng seõ chuyeån ñaán trang thaønh coâng
Böôùc 5 : Cuoái cuøng ñoùng caùc keát noái laïi
Rs. close
Cn . close
Sau khi ñaõ ñaêng nhaäp vaøo heä thoáng vôùi Usernames vaø Password cuûa mình laø hoï ñaõ coù ñaày ñuû quyeàn töông öùng(hình 1.4). Ñoaïn Chöông trình sau ñaây minh hoïa xöû lyù vieäc login cuûa hoïc vieân khi ñaêng nhaäp vaøo heä thoáng.
Xöû lyù Login vaøo heä thoáng cuûa hoïc vieân
Töông töï nhö ñoïan xöû lyù treân
Böôùc 1 : Khai baùo keát noái cô sôû döõ lieäu
Böôùc 2 : Khai baùo caùc tham soá nhaän töø request
User=requesr. getParameter(“txtTendangnhap”)
Pass=requesr. getParameter(“txtPassword”)
Böôùc 3 : Khai baùo caùc ñoái töôïng caàn thieát ñeå keát noái
Böôùc 4 : Thöïc thi caâu leänh SQL so saùnh xem coù hoïc vieân naøy khoâng neáu coù thì chaáp nhaän vaø cho hoïc vieân naøy vaøo heä thoáng
Select Mahocvien Form Hocvien Where Usernames=’”+User+”’
Neáu khoâng coù hoïc vieân naøy thì baùo loãi vaø môøi hoïc vieân naøy ñaêng nhaäp laïi hoaëc ñaêng kyù laøm hoïc vieân thì môùi ñöôïc vaøo hoïc
Böôùc 5 : Ñoùng caùc keát noái
Khi vaøo heä thoáng vôùi quyeàn töông öùng cuûa mình hoïc vieân coù quyeàn hoïc vaø thi chöông trình hoïc(hình 1.5 ) ñeå minh hoïa cho chöùc naêng naøy ta coù ñoïan xöû lyù
Xöû lyù chöùc naêng hoïc
Böôùc 1: Keát noái cô sôû döõ lieäu
Böôùc 2 : Thöïc thi caâu leänh truy vaán cho vieäc choïn hoïc phaàn cuaû hoïc vieân
sql="SELECT Machuong,Tenchuong FROM Chuong"
Trong khi ñaõ choïn ñöôïc chöông ta laáymaõ chöông vaø teân chöông hieån thò cho hoïc vieân choïn
while (rs.next()){
}
Böôùc 3 :Sau khi choïn hoïc phaàn ,ñoái töôïng request seõ nhaän tham soá töø trang chuong1.jsp gôûi ñeán baèng caâu leänh
String machuong=request.getParameter("Machuong")
vaø gôûi traû veà trang kqdemuc.jsp vôùi caùc ñeà muïc thuoäc veà chöông maø hoïc vieân ñaõ choïn .
String sql="SELECT Mademuc,Tendemuc FROM Demuc WHERE Machuong=" +machuong
Böôùc 4 : Töông töï nhö hoïc vieân choïn tieåu muïc vaø noäi dung tieåu muïc
Böôùc 5 : Ñoùngkeát noái
Xöû lyù chöùc naêng Thi
Böôùc 1: keát noái cô sôû döõ lieäu
Böôùc 2 : Thöïc thi caâu leänh sql vaø xöû lyù caùc giaûi thuaät
Taïo ñeà thi vôùi soá thöù töï ñeà thi laø ngaãu nhieân
int t=(int)Math.random()*10+1;
out.println("De thi so "+t)
Truy xuaát caâu hoæ töø caâu leänh truy vaán sql:
String sql="Select Macauhoi,Noidungcauhoi From CauHoi ";
Khai baùo 2 bieán vaø 2 maûng chöùa maõ caâu hoæ vaø noäi dung caâu hoæ :
String ma,noidung
int a[]=new int[100]
//Maûng chöùa maõ caâu hoûi
String b[]=new String[100]
//Maûng chöùa maõ noäi dung
Taïo recordset ñeå laáy veà maõ caâu hoûi vaø noäi dung caâu hoûi chöaù vaøo 2 maûng
while( rs.next() )
{
ma=rs.getString("Macauhoi");
a[i]=Integer.parseInt(ma);
//phaân tích maõ caâu hoûi thaønh soá vaø ñöa vaøo maûng
b[i]=rs.getString("Noidungcauhoi")
//phaân tích noäi dung caâu hoûi vaø ñöa vaøo maûng 2
i++;
}
Böôùc 4 : So saùnh ñaùp aùn
ÖÙng vôùi moãi caâu hoûi , caàn hieån thò Ghichu , Macauluachon , Noidungcauluachon baèng caâu leänh truy vaán
sql1="SELECT Chonlua.Ghichu AS Ghichu, Cautraloi.Macauluachon, Cautraloi.Noidungcauluachon FROM Chonlua INNER JOIN Cautraloi ON Chonlua.Macauluachon = Cautraloi.Macauluachon Where Chonlua.Macauhoi="+a[r]+" And Chonlua.Macauluachon=Cautraloi.Macauluachon"
Böôùc 5 : Hieån thò keát quaû
Böôùc 6 : Ñoùng keát noái
ÖÙng vôùi ñöôøng ñi töø sô ñoà hoïc vieân coøn coù theå login vaøo heä thoáng ñeå thay ñoåi thoâng tin vaø thay ñoåi Password cuûa mình(hình 1.6 & hình 1.7) , ñoïan chöông trình sau seõ laøm roõ chöùc naêng naøy
Xöû lyù chöùc naêng thay ñoåi Password
Böôùc 1:keát noái cô sôû döõ lieäu
Böôùc 2 : xöû lyù caâu leänh sql
Laáy teân ñaêng nhaäp vaø maät khaåu cuõ vaø maät khaåu môùi do hoïc vieân nhaäp vaøo
String username=request.getParameter("txtUsername")
String oldPass=request.getParameter("txtOldPass")
String newPass=request.getParameter("txtNewPass")
Caäp nhaät laïi maät khaåu môùi döïa treân maät khaåu cuõ vaø teân ñaêng nhaäp thoâng qua caâu leänh
SQL2="UPDATE Users SET Passwords='" + newPass + "'";
SQL2=SQL2 +" WHERE Passwords='" + oldPass + "'";
Neáu thay ñoài thaønh coâng traû veà trang thaønh coâng , neáu Usernames vaø Password cuõ sai heä thoáng seû traû veà trang loãi
Böôùc 3 : Ñoùng keát noái
Xöû lyù chöùc naêng thay ñoåi thoâng tin
Böôùc 1: Keát noái cô sôû döõ lieäu
Statement stmt = null
ResultSet rs=null
Connection con = null
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
con = DriverManager.getConnection("jdbc:odbc:HOCQUAMANG","sa","")
stmt = con.createStatement()
Böôùc 2 : Khai baùo caùc tham soá nhaän töø request
String Ma=request.getParameter("txtMa")
String Ten=request.getParameter("txtTen")
String EM=request.getParameter("txtEmail")
String SQL=""
Böôùc 3 : Thöïc thi caâu leänh SQL
SQL="UPDATE Hocvien SET Tenhocvien='"+Ten+"',Email='"+EM+"'";
SQL=SQL+ " WHERE Mahocvien="+Ma;
Neáu coù hoïc vieân naøy thì heä thoáng seõ caäp nhaät laïi thoâng tin cho hoïc vieân ñoù
Ngöôïc laïi heä thoáng seõ traûveà trang thoâng baùo loãi cho hoïc vieân ñeå hoï ñaêng nhaäp lai
Böôùc 4 : Ñoùng keát noái
Phaàn giaùo vieân :
Ñeå minh hoïa caùc chöùc naêng cuûa giaùo vieân töø sô ñoà tuaàn töï
ôû chöông 1 ta seõ vaøo phaàn caøi ñaët cho moãi moät chöùc naêng rieâng öùng vôùi quyeàn cuûa giaùo vieân.
Moät giaùo vieân khi muoán vaøo heä thoáng thì hoï ñaêng nhaäp vaøo heä thoáng (hình 1.8) vôùi quyeàn töông öùng cuûa mình thì hoï môùi vaøo ñöôïc , ñeå laøm roõ hôn chöùc naêng ñaêng nhaäp vaøo heä thoáng vôùi quyeàn töông öùng ta coù ñoaïn xöû lyù sau
Xöû lyù ñaêng nhaäp vaøo quaûn trò heä thoáng
Böôùc 1: Keát noái cô sôû döõ lieäu
Böôùc 2: Khai baùo caùc tham soá nhaän töø request
user=request.getParameter("txtuser")
pass= request.getParameter("txtpass")
quyen=request.getParameter("txtquyen")
Böôùc 3: Xöû lyù caâu leänh sql
String strSQL="select * from Users where Usernames='" +user+ "' and Passwords='" +pass+ "' and Quyen='"+quyen+"'"
rs=stmt.executeQuery(strSQL)
Böôùc 4 : So saùnh quyeàn töông öùng vôùi moãi User
Neáu quyeàn = Admin heä thoáng seõ traû veà trang quaûn trò cuaû Admin vôùi caùc chöùc naêng töông öùng cuaû Admin
Neáu qyueàn = Giaùo vien heä thoáng seõ traû veà trang quaûn trò cuûa Gíaovien
Neáu quyeàn = Hocvien heä thoáng seõ traû veà trang öùng caùc chöùc naêng cuaû hoïc vieân
Ngöôïc laïi heä thoáng traû veà trang baùo loãi vaø môøi baïn ñaêng nhaäp laïi
Böôùc 4: Ñoùng keát noái
Sau khi ñaêng nhaäp vaøo heä thoáng thaønh coâng thì giaùo vieân coù quyeàn caäp nhaät môùi caâu hoûi vaøo ngaân haøng caâu hoûi ñeå sinh ra ñeà thi môùi cho hoïc vieân thi (hình 1.9), ñeå laøm roõ hôn ñieàu naøy ta coù ñoaïn chöông trình sau
Xöû lyù caäp nhaät caâu hoûi thi vaøo ngaân haøng caâu hoûi
Böôùc 1: keát noái cô sôû döõ lieäu
Böôùc 2 : khai baùo caùc tham soá nhaän töø request
String mch,nd,md,mc,mgv,sqlStr="";
mch=""+request.getParameter("txtMch")
nd=""+request.getParameter("txtNdung")
md=""+request.getParameter("txtmucdo")
mc=""+request.getParameter("txtCh")
mgv=""+request.getParameter("txtgv")
Böôùc 3: Thöïc thi caâu leänh sql
sqlStr="INSERT INTO Cauhoi(Noidungcauhoi,Mucdo,Machuong,Magiaovien)"
+"VALUES('"+nd+"','"+md+"',"+mc+","+mgv+")"
khi caäp nhaät neáu caâu hoûi naøy ñaõ coù seõ traû veà trang loãi coøn neáu chöa coù thì caäp nhaät caâu hoûi môùi vaøo ngaân haøng caâu hoûi
Sau cuøng heä thoáng seõ traû veà trang thaønh coâng khi ta caäp nhaät xong
Böôùc 4: Ñoùng keát noái
Töông töï nhö Hoïc vieân Giaùo vieân cuõng coù quyeàn thay ñoåi Password cuûa mình (hình 1.10) khi caàn thieát.
Phaàn Admin :
Töông töï ñoái vôùi Admin laø ngöôøi coù chöùc vuï cao nhaát trong h