ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
Tel. (84-511) 3736949, Fax. (84-511) 3842771
Website: itf.dut.udn.vn, E-mail:
[email protected]
ĐỒ ÁN TỐT NGHIỆP KỸ SƯ
NGÀNH CÔNG NGHỆ THÔNG TIN
MÃ NGÀNH : D480201
ĐỀ TÀI :
XÂY DỰNG HỆ THỐNG HỌC TẬP VÀ CHUYÊN CẦN
SINH VIÊN
SINH VIÊN
LỚP
MÃ SINH VIÊN
CBHD
:
:
:
:
TRƯƠNG NGỌC PHÚ
11T2
102110225
TS. HUỲNH CÔNG PHÁP
ĐÀ NẴNG, 5/2015
LỜI CẢM ƠN
Em xin chân thành cảm ơn các thầy cô trong khoa Công nghệ thông tin, trường
Đại học Bách khoa Đà Nẵng đã nhiệt tình giảng dạy, truyền đạt những kiến thức quý
báu cho em trong suốt những năm em theo học tại trường, tạo điều kiện để em thực
hiện tốt luận văn này.
Trong suốt thời gian thực hiện và hoàn thành đồ án này, em đã nhận được sự
giúp đỡ và hướng dẫn tận tình của các thầy, các cô và ở phòng đào tạo trường Cao
đẳng Công nghệ Thông tin-Đại học Đà Nẵng.
Đặc biệt em xin chân thành cảm ơn thầy Ts. Huỳnh Công Pháp đã tận tình
hướng dẫn, chỉ bảo, động viên và hỗ trợ em trong suốt quá trình thực hiện đề tài này.
Trong thời gian làm đồ án cùng thầy, em không những học hỏi được những kiến thức
mà còn học hỏi được khả năng làm việc nghiêm túc, độc lập và có trách nhiệm với
công việc của mình.
Mặc dù em đã cố gắng nổ lực để thực hiện đề tài này, song luận văn chắc chắn
khó tránh khỏi những thiếu sót. Do đó, em rất mong nhận được sự thông cảm và chỉ
bảo tận tình của quý thầy cô.
Một lần nữa, em xin chân thành cảm ơn!
Sinh viên,
Trương Ngọc Phú
1
LỜI CAM ĐOAN
Em xin cam đoan:
1. Những nội dung trong luận văn này là do em thực hiện dưới sự hướng
dẫn trực tiếp của thầy Ts. Huỳnh Công Pháp
2. Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác
giả, tên công trình, thời gian, địa điểm công bố.
3. Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, em
xin chịu hoàn toàn trách nhiệm.
Sinh viên,
Trương Ngọc Phú
2
NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
3
NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
4
MỤC LỤC
CHƯƠNG 1. CƠ SỞ LÝ THUYẾT..........................................................4
1.1. GIỚI THIỆU VỀ JSP VÀ SERVLET.......................................................4
1.1.1. Tìm hiểu về JSP (JavaServer Page).........................................4
1.1.2. Tìm hiểu về servlet....................................................................7
1.1.3. Ưu nhược điểm của JSP và Servlet.........................................11
1.2. MÔ HÌNH MVC TRONG XÂY DỰNG ỨNG DỤNG WEB.........12
1.2.1. Cách thức làm việc của mô hình MVC....................................13
1.2.2. Ưu nhược điểm của MVC.......................................................13
1.3. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MYSQL..............................................14
1.3.1. Giớ thiệu.................................................................................14
1.3.2. Các ưu thế nổi bật của MySQL...............................................14
CHƯƠNG 2. PHÂN TÍCH THIẾT KẾ HỆ THỐNG............................17
2.1. PHÂN TÍCH YÊU CẦU..........................................................................17
2.1.1. Các chức năng chính..............................................................17
2.1.2. Mô tả chức năng.....................................................................17
2.2. SƠ ĐỒ CA SỬ DỤNG (USE CASE).....................................................19
2.2.1. Tác nhân.................................................................................19
2.2.2. Sơ đồ ca sử dụng.....................................................................19
2.3. SƠ ĐỒ HOẠT ĐỘNG.............................................................................25
2.3.1. Sơ đồ hoạt động đăng nhập....................................................25
2.3.2. Sơ đồ hoạt động điểm danh.....................................................26
2.3.3. Sơ đồ hoạt động thống kê chuyên cần sinh viên......................27
2.3.4. Sơ đồ hoạt động quản lý học tập và chuyên cần sinh viên......28
2.3.5. Sơ đồ hoạt động theo dõi học tập và chuyên cần sinh viên.....29
2.4. CƠ SỞ DỮ LIỆU...................................................................................30
2.4.1. Lược đồ cơ sở dữ liệu.............................................................30
2.4.2. Mô tả các bảng dữ liệu...........................................................32
2.5. SƠ ĐỒ LỚP..........................................................................................40
2.5.1. Sơ đồ lớp khái niệm................................................................40
2.5.2. Sơ đồ lớp tổng quát.................................................................40
2.6. SƠ ĐỒ TUẦN TỰ..................................................................................41
2.6.1. Sơ đồ tuần tự đăng nhập.........................................................41
2.6.2. Sơ đồ tuần tự điểm danh.........................................................42
2.6.3. Sơ đồ tuần tự xem thông tin lớp sinh hoạt của giảng viên......43
2.6.4. Biểu đồ tuần tự thống kê.........................................................44
5
2.6.5. Sơ đồ tuần xem chi tiết chuyên cần sinh viên..........................45
CHƯƠNG 3. TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ.....................46
3.1. MÔI TRƯỜNG TRIỂN KHAI..................................................................46
3.2. KẾT QUẢ TRIỂN KHAI.........................................................................46
3.2.1. Các chức năng dành cho giáo viên.........................................46
3.2.2. Các chức năng dành cho sinh viên..........................................51
3.2.3. Các chức năng dành cho phụ huynh.......................................55
3.3. ĐÁNH GIÁ VÀ NHẬN XÉT...................................................................57
DANH SÁCH HÌNH VẼ
6
Hình 1.1 Cơ chế triệu gọi trang JSP......................................................................6
Hình 1.2 Vai trò của Servlet...................................................................................8
Hình 1.3 Vòng đời Servlet.....................................................................................9
Hình 1.4 Mô hình MVC xấy dựng ứng dụng web..............................................12
Hình 1.5 Cách thức làm việc vủa mô hình MVC................................................13
Hình 2.1. Sơ đồ ca sử dụng tổng quát.................................................................19
Hình 2.2. Sơ đồ ca sử dụng điểm danh sinh viên................................................20
Hình 2.3. Sơ đồ ca sử dụng thống kê chuyên cần sinh viên...............................21
Hình 2.4. Sơ đồ ca sử dụng xem thông tin lớp sinh hoạt....................................22
Hình 2.5. Sơ đồ ca sử dụng xem thông tin lớp học phần....................................23
Hình 2.6. Sơ đồ ca sử dụng quản lý học tập sinh viên........................................24
Hình 2.7. Sơ đồ hoạt động đăng nhập.................................................................25
Hình 2.8 Sơ đồ hoạt động điểm danh..................................................................26
Hình 2.9. Sơ đồ hoạt động thống kê chuyên cần sinh viên.................................27
Hình 2.10. Sơ đồ hoạt động quản lý học tập và chuyên cần sinh viên...............28
Hình 2.11. Sơ đồ hoạt động theo dõi học tập và chuyên cần sinh viên..............29
Hình 2.12. Lược đồ cơ sở dữ liệu thông tin sinh viên........................................30
Hình 2.13. Lược đồ cơ sở dữ liệu lớp sinh hoạt..................................................31
Hình 2.14. Lược đồ cơ sở dữ liệu lớp học phần và chuyên cần.........................31
Hình 2.15. Lược đồ cơ sở dữ liệu kết quả học tập..............................................32
Hình 2.16. Sơ đồ lớp khái niệm...........................................................................40
Hình 2.17. Sơ đồ lớp tổng quát...........................................................................40
Hình 2.18. Sơ đồ tuần tự đăng nhập....................................................................41
Hình 2.19. Sơ đồ tuần tự điểm danh....................................................................42
Hình 2.20. Sơ đồ tuần tự xem thông tin lớp sinh hoạt của giảng viên...............43
7
Hình 2.21. Sơ đồ tuần tự thống kê.......................................................................44
Hình 2.22. Sơ đồ tuần tự xem chi tiết chuyên cần sinh viên..............................45
Hình 3.1. Giao diện màn hình đăng nhập dành cho giảng viên..........................46
Hình 3.2. Giao diện màn hình trang chủ của giảng viên....................................47
Hình 3.3. Giao diện màn hình xem thông tin lớp học phần của giảng viên.......47
Hình 3.4. Xem danh sách sinh viên lớp học phần của giảng viên......................48
Hình 3.5. Giao diện màn hình điểm danh của giảng viên...................................48
Hình 3.6. Giao diện màn hình xem thông tin lớp sinh hoạt của giảng viên.......49
Hình 3.7. Giao diện màn hình thông kê chuyên cần sinh viên...........................49
Hình 3.8. Giao diện màn hình thống kê chuyên cần chi tiết từng sinh viên......50
Hình 3.9. Giao diện màn hình chi tiết buổi vắng sinh viên của giảng viên.......50
Hình 3.10. Giao diện màn hình đăng nhập dành cho sinh viên..........................51
Hình 3.11. Giao diện màn hình trang chủ của sinh viên.....................................51
Hình 3.12. Giao diện màn hình xem thông tin cá nhân của sinh viên................52
Hình 3.13. Giao diện màn hình xem thông tin lớp sinh hoạt của sinh viên.......52
Hình 3.14. Xem kết quả học tập và rèn luyện của sinh viên..............................53
Hình 3.15. Xem thông tin lớp học phần và chuyên cần của sinh viên...............53
Hình 3.16. Giao diện màn hình xem chi tiết chuyên cần của sinh viên.............54
Hình 3.17. xem danh sách sinh viên lớp học phần của sinh viên.......................54
Hình 3.18 Giao diện màn hình tra cứu thông tin sinh viên.................................55
Hình 3.19. Xem thông tin cá nhân sinh viên của phụ huynh..............................55
Hình 3.20. Xem kết quả học tập và rèn luyện sinh viên của phụ huynh............56
Hình 3.21. Xem thông tin lớp học phần và chuyên cần sinh viên......................56
Hình 3.22. Xem chi tiết chuyên cần sinh viên của phụ huynh...........................57
8
9
DANH SÁCH BẢNG BIỂU
Bảng 1. Các tác nhân của hệ thống................................................................19
Bảng 2. Đặc tả ca sử dụng điểm danh sinh viên............................................20
Bảng 3. Đặc tả ca sử dụng thống kê chuyên cần sinh viên............................21
Bảng 4. Đặc tả ca sử dụng xem thông tin lớp sinh hoạt................................22
Bảng 5. Đặc tả ca sử dụng xem thông tin lớp học phần................................23
Bảng 6. Đặc tả ca sử dụng quản lý học tập sinh viên....................................25
Bảng 7. Mô tả bảng DIEMRENLUYEN.......................................................32
Bảng 8. Mô tả bảng DM_CAPDAOTAO......................................................32
Bảng 9. Mô tả bảng DM_COTDIEM............................................................33
Bảng 10. Mô tả bảng DM_DANTOC............................................................33
Bảng 11. Mô tả bảng DM_HT_DAOTAO.....................................................33
Bảng 12. Mô tả bảng DM_LOAIHOCPHAN...............................................33
Bảng 13. Mô tả bảng DM_NGANHANG.....................................................33
Bảng 14. Mô tả bảng DM_QUOCTICH........................................................33
Bảng 15. Mô tả bảng DONVI........................................................................34
Bảng 16. Mô tả bảng HOCPHAN..................................................................34
Bảng 17. Mô tả bảng HOCVU_DK...............................................................35
Bảng 18. Mô tả bảng HOSO_CB...................................................................35
Bảng 19. Mô tả bảng HOSO_SV...................................................................36
Bảng 20. Mô tả bảng KHOAHOC.................................................................36
Bảng 21. Mô tả bảng KHUNG.......................................................................37
Bảng 22. Mô tả bảng LOP..............................................................................37
Bảng 23. Mô tả bảng LOPHOCPHAN..........................................................38
10
Bảng 24. Mô tả bảng LOPHOCPHANDIEM................................................38
Bảng 25. Mô tả bảng LOPHPDKTAMTHOI................................................38
Bảng 26. Mô tả bảng LOPHPNAMHOC......................................................39
Bảng 27. Mô tả bảng NGANH_CHUYENNGANH.....................................39
Bảng 28. Mô tả bảng NGUOIDUNG.............................................................39
Bảng 29. Mô tả bảng PHONGHOC...............................................................39
Bảng 30. Mô tả bảng THOIKHOABIE.........................................................39
DANH SÁCH TỪ VIẾT TẮT
11
Từ viết tắt
Diễn giải
JSP
JavaServer Page
ASP
Active Server Pages
CGI
Common Gateway Interface
HTML
HyperText Markup Language
JVM
Java Vitual Machine
HTTP
HyperText Transfer Protocol
IE
Internet Explorer
MCV
Model – View – Controller
GUI
Graphical User Interface
PHP
Hypertext Preprocessor
OS
Operating System
SQL
Structured Query Language
DBA
DataBase Administrator
ETL
Electrical Testing Labs
12
Xây dựng hệ thống học tập và chuyên cần sinh viên
MỞ ĐẦU
1.
Tổng quan về đề tài
Trường Cao đẳng Công nghệ Thông tin-Đại học Đà Nẵng được thành lập từ năm
2003, từ năm 2006 phương thức đào tạo theo hệ thống tín chỉ được áp dụng vào nhà
trường. Nhà trường đã sử dụng các phần mềm quản lý tín chỉ nhưng chưa được hoàn
thiện. Vì vậy vẫn đang trong quá trình xây dựng và bổ xung các chức năng.
Quản lý đào tạo tín chỉ là một công việc rất phức tạp không thể thực hiện bằng
tay. Cho đến thời điểm hiện tại, trường vẫn chưa có một phần mềm hay Website nào
hỗ trợ cho việc học tập và chuyên cần sinh viên, việc quản lý sinh viên trong lớp học
phần của giảng viên bộ môn vẫn thực hiện theo hướng thủ công, giảng viên chủ nhiệm
và phụ huynh không thể biết được tình hình học tập của sinh viên, sinh viên cần biết rõ
tình hình chuyên cần, kết quả học tập của bản thân để có hướng học tập tốt hơn.
Sau khi tìm hiểu về hệ thống phần mềm quản lý đào tạo tín chỉ kết hợp với cơ sở
dữ liệu sẵn có của nhà trường, nhận thấy việc xây dựng hệ thống quản lý học tập và
chuyên cần sinh viên là khả thi và cần thiết. Em đã chọn đề tài đề tài "Xây dựng hệ
thống học tập và chuyên cần sinh viên" với mong muốn đưa lĩnh vực công nghệ
thông tin áp dụng vào thực tế.
Các vấn đề quan trọng cần giải quyết trong đề tài:
Giảng viên bộ môn biết được thông tin lớp học phần mà mình giảng dạy
để tiến hành điểm danh sinh viên theo thời khóa biểu.
Giảng viên chủ nhiệm nắm rõ thông tin các các sinh viên trong lớp sinh
hoạt mà mình chủ nhiệm, thống kê chuyên cần sinh viên lớp sinh hoạt để
có biện pháp xử lý đối với những sinh viên hay nghỉ học.
Sinh viên cần biết kết quả học tập, lịch học các môn mà mình đăng ký,
nắm được tình hình chuyên cần bản thân để có hướng học tập tốt hơn.
Phụ huynh nắm được kết quả học tập, chuyên cần học tập của sinh viên để
quan tâm và động viên sinh viên trong học tập.
2.
Mục đích và ý nghĩa của đề tài
SVTH: Trương Ngọc Phú - 11T2
Trang 1
Xây dựng hệ thống học tập và chuyên cần sinh viên
2.1.
Mục đích
Xây dựng website quản lý học tập và chuyên cần sinh viên cho Trường Cao đẳng
Công nghệ Thông tin-Đại học Đà Nẵng, nhằm giúp giảng viên, phụ huynh giám sát
được tình hình học tập của sinh viên, sinh viên nắm được lịch học, kết quả học tập và
chuyên cần để có phương hướng học tập thật tốt. Hệ thống được xây dựng dành cho 3
đối tượng: giảng viên, sinh viên và phụ huynh bao gồm các chức năng chính sau.
Đối với giảng viên:
Xem thông tin lớp học phần mà mình giảng dạy.
Xem thông tin lớp sinh hoạt.
Thống kê chuyên cần sinh viên của lớp sinh hoạt.
Đối với sinh viên:
Xem thông tin cá nhân.
Xem thông tin lớp sinh hoạt.
Xem thông tin lớp học phần.
Xem kết quả học tập.
Xem chuyên cần bản thân.
Đối với phụ huynh:
Xem kết quả học tập và rèn luyện của sinh viên.
Xem chuyên cần sinh viên.
2.2.
Ý nghĩa
Đưa lĩnh vực công nghệ thông tin áp dụng vào thực tế.
Tạo mối liên hệ giữa sinh viên và giảng viên, sinh viên và phụ huynh.
Giúp cải thiện ý thức học tập của sinh viên.
3.
Phương pháp thực hiện
Phương pháp nghiên cứu lý thuyết
Tìm hiểu thực tế tại phòng đào tạo Trường Cao đẳng Công nghệ Thông
tin-Đại học Đà Nẵng.
Tìm hiểu nghiệp vụ thông qua sổ tay sinh viên của nhà trường.
Nghiên cứu và phân tích cơ sở dữ liệu của hệ thống để áp dụng vào đề tài.
Nghiên cứu tài liệu về phân tích và thiết kế hướng đối tượng.
SVTH: Trương Ngọc Phú - 11T2
Trang 2
Xây dựng hệ thống học tập và chuyên cần sinh viên
Tìm hiểu, nghiên cứu các tài liệu liên quan, ngôn ngữ lập trình và công
nghệ. Nắm rõ các công cụ hỗ trợ liên quan đến việc viết mã nguồn, công
cụ sử dụng trong phân tích và thiết kế hệ thống.
Phương pháp nghiên cứu thực nghiệm
4.
Phân tích yêu cầu thực tế của đề tài
Phân tích thiết kế hệ thống cho đề tài
Xây dựng chương trình và triển khai thử nghiệm.
Đánh giá kết quả.
Bố cục đồ án
Chương 1. CƠ SỞ LÝ THUYẾT
1.1 . Giới thiệu về JSP và Servlet
1.2 . Mô hình MVC trong xây dựng ứng dụng web
1.3 . Hệ quản trị cơ sở dữ liệu MySQL
Chương 2. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
2.1. Phân tích yêu cầu
2.2. Sơ đồ ca sử dụng (USE CASE)
2.3. Sơ đồ hoạt động
2.4. Cơ sở dữ liệu
2.5. Sơ đồ lớp
2.6. Sơ đồ hoạt động
Chương 3. TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ
3.1. Môi trường triển khai
3.2. Kết quả triển khai
3.3. Đánh giá và nhận xét
KẾT LUẬN VÀ HỚNG PHÁT TRIỂN
SVTH: Trương Ngọc Phú - 11T2
Trang 3
Xây dựng hệ thống học tập và chuyên cần sinh viên
CHƯƠNG 1.
CƠ SỞ LÝ THUYẾT
Trong chương này, nội dung chính sẽ được trình bày cơ sở lý thuyết về ngôn ngữ
lập trình, ứng dụng được triển khai trên môi trường web, sử dụng công nghệ JSPServlet, xây dựng ứng dụng theo mô hình MVC, hệ quản trị cơ sở dữ liệu MySQL
1.1.
Giới thiệu về JSP và SERVLET
1.1.1. Tìm hiểu về JSP (JavaServer Page)
Internet đã phát triển nhanh chóng, các Web server cần phải được thiết kế để có
thể đáp ứng được nhiều kiểu yêu cầu hơn, Web server phải có khả năng tương tác với
trình khách, xử lý dữ liệu do trình khách gửi đến, trả kết quả động tuỳ theo dữ liệu của
trình khách yêu cầu. Các trang web với nội dung tĩnh giờ đây không còn đáp ứng được
nữa. Cho đến giờ có rất nhiều công nghệ cho phép ta đưa ứng dụng vào chạy trong
môi trường web như: ASP (Active Server Pages), CGI (Common Gateway Interface)
v.v… trong số đó JSP/Servlet là công nghệ của Java.
JSP (JavaServer Page) là công nghệ rất mạnh để tạo ra trang HTML về phía trình
chủ. Đây là một kỹ thuật server-side do đó chúng ta không thể thực hiện bất kỳ hành
động nào ở client. Kỹ thuật JSP là một thành phần trong đại gia đình Java, nó sử dụng
ngôn ngữ kịch bản dựa vào ngôn ngữ lập trình Java, các trang JSP được biên dịch
thành servlets. Từ đó chúng ta cũng nhận biết được, JSP thì không phụ thuộc bất kỳ
nền (platform) nào.
JSP là một cách đơn giản hóa hơn cho Servlet, là bước chuyển tiếp tiếp theo của
Servlet trong ứng dụng Java. Nếu như đối với Servlet ta phải viết mã Java và biên dịch
thủ công trước khi đưa vào sử dụng với trình chủ Web server thì JSP không cần điều
này. JSP viết mã Java tương tự Servlet nhưng cho phép trộn lẫn Java với các thẻ định
dạng HTML (HyperText Markup Language). Trình diễn dịch JSP sẽ chịu trách nhiệm
kết hợp mã Java và thẻ HTML để tạo ra Servlet xử lý các yêu cầu mà trình khác gửi
đến. Đối với trang JSP ta chỉ cần biên dịch một lần duy nhất sau đó giữ nguyên mã
bytecode ở các lần thực thi kế tiếp. Chính vì lí do này trang JSP được xem là có tốc độ
thực thi tương đương với Servlet và ưu điểm hơn hẳn các công nghệ xử lý trang động
hiện hành như CGI hay ASP. JSP cho phép chúng ta tách thành phần động của trang ra
SVTH: Trương Ngọc Phú - 11T2
Trang 4
Xây dựng hệ thống học tập và chuyên cần sinh viên
khỏi thành phần tĩnh HTML. Rất đơn giản, chúng ta chỉ cần viết một tài liệu HTML
bình thường rồi sau đó bao quanh mã của thành phần động trong các tag đặc biệt, bắt
đầu với “<%” và kết thúc với “%>”.
1.1.1.1.
Chu trình sống của JSP
Trang Trang JSP có chu trình sống xác định tính từ khi hệ thống đọc biên dịch
trang JSP, gọi thực thi và loại trang ra khỏi bộ nhớ. Chu trình sống trải qua các giai
đoạn sau: Biên dịch trang JSP → Nạp trang → Khởi tạo → Thực thi → Dọn dẹp.
Biên dịch trang JSP: Khi trình duyệt yêu cầu trang JSP, Web server sẽ kiểm tra
trang JSP đã được biên dịch hay chưa. Nếu chưa biên dịch hoặc đã biên dịch nhưng
trang JSP mới vừa thay đổi trong mã nguồn thì Web server sẽ thực hiện biên dịch trang
JSP. Quá trình biên dịch trang JSP thực tế là chuyển trang JSP thành Servlet, file biên
dịch *.class của trang sẽ được đặt trong thư mục đệm. Như vậy quá trình biên dịch chỉ
diễn ra một lần. Nếu trang đã biên dịch mà sau đó không có thay đổi mã nguồn thì quá
trình biên dịch lần sau sẽ không xảy ra, do đó tốc độ thực thi trang sẽ nhanh hơn. Sau
khi trang đã được biên dịch, mã trang sẽ đƣợc nạp vào bộ nhớ để thực thi.
Nạp trang: Từ giai đoạn này, trang JSP đã được biên dịch ra servlet cho nên việc
nạp trang JSP cũng giống như nạp servlet. Để nạp servlet, trình chủ Web server cần
phải biết tên của lớp servlet (file.class) cũng là tên mà trình duyệt dùng để triệu gọi
servlet. Khi có một yêu cầu triệu gọi JSP, trình chủ Web server sẽ xem JSP đã nạp vào
bộ nhớ hay chưa, nếu chưa có nó sẽ nạp vào bộ nhớ.
Khởi tạo: Khi đã nạp mã thành công, Web server sẽ gọi đến phương thức khởi tạo
trang. Mặc dù JSP được dịch ra servlet nhưng phương thức khởi tạo của JSP lại mang
tên jspInit() chứ không phải là init().
Thực thi: Sau quá trình khởi tạo JSP sẽ gọi đến phương thức jspService().
Phương thức này sẽ cho ta hai lớp đối tượng, hai đối tượng: HttpServletRequest và
HttpServletResponse để đọc và ghi kết xuất trả về trình khách.
Dọn dẹp: Khi trang JSP đã thực thi xong, trình chủ Web server sẽ gọi phương
thức jspDestroy() để giải phóng mã trang ra khỏi bộ nhớ.
SVTH: Trương Ngọc Phú - 11T2
Trang 5
Xây dựng hệ thống học tập và chuyên cần sinh viên
1.1.1.2.
Cơ chế hoạt động của trang JSP
Hình 1.1 Cơ chế triệu gọi trang JSP
Servlet đưa mã HTML vào lệnh Java trong khi ngược lại JSP đưa lệnh Java vào
các mã HTML. Các trang JSP chứa các thẻ đặc biệt quy định gần giống thẻ của ngôn
ngữ HTML. Khi từ trình duyệt gởi yêu cầu một trang JSP, trình chủ Web Server sẽ đọc
trang JSP từ đĩa cứng, bộ diễn dịch JSP Engine (thường được cài đặt trong các trình
chủ Web Server) sẽ diễn dịch mã lệnh Java chứa trong trang JSP thành một servlet.
Sau đó trình chủ sẽ triệu gọi servlet trả kết xuất thuần HTML về cho trình khách.
1.1.1.3.
Cú pháp cơ bản của JSP
Thẻ bọc mã <% %> hay
: ưu điểm của trang JSP là khả năng
nhúng mã Java giữa các thẻ định dạng HTML. Khi gặp thẻ <% bộ diễn dịch JSP sẽ
biết được lệnh cần thực hiện tiếp theo là mã lệnh Java.
Hiển thị kết xuất bằng cú pháp <%= %>: Thay vì sử dụng cú pháp <% %> để
diễn đạt một khối gồm nhiều lệnh ta có thể sử dụng cú pháp <%= %> chỉ để hiển thị
kết xuất của một giá trị biến hay một biểu thức, hàm nào đó. JSP không dùng dấu (;) ở
cuối các biến hoặc biểu thức gọi hàm trong cú pháp <%= %>, bởi vì nội dung của cú
pháp này sẽ được chuyển thành lệnh out.println().
Chèn chú thích vào mã trang JSP: Cũng như Java, JSP cho phép ta dùng cú
pháp // để chú thích một dòng mã lệnh và cú pháp /* */ được áp dụng cho nhiều dòng.
Các dòng chú thích sẽ được bỏ qua khi trình chủ diễn dịch trang JSP. Ngoài ra JSP còn
cung cấp thêm cho ta cú pháp chú thích <%-- --%>. Tất cả khối lệnh Java và HTML
nằm giữa hai dấu chú thích này sẽ được trình biên dịch bỏ qua.
SVTH: Trương Ngọc Phú - 11T2
Trang 6
Xây dựng hệ thống học tập và chuyên cần sinh viên
Thẻ :Chỉ thị <%@ include %> chỉ dùng để nhúng các mã nguồn
tĩnh. Nếu muốn nhúng kết quả kết xuất từ các trang .jsp, servlet hay .html khác vào
trang hiện hành JSP cung cấp cho ta thẻ với cú pháp sau: .
Thẻ chỉ dẫn biên dịch trang <%@ page %>: Thẻ <%@ page %> chỉ dẫn một số
tính chất biên dịch áp dụng cho tồn trang jsp. Ta có thể sử dụng thẻ này để khai báo
các thư viện import của Java, chỉ định tùy chọn trang jsp có cần giữ trên cache bộ nhớ
của trình chủ để tăng tốc hay không.
Chuyển hướng sang trang mới: Thẻ giúp ta triệu gọi và chuyển
hướng trang web sang địa chỉ khác hoặc chuyển dữ liệu cho trang jsp khác xử lý, với
sendRedirect() cũng có chức năng giống như thẻ . Nhưng nó khác nhau
ở chỗ là sendRedirect() chỉ thực hiện triệu gọi trang mà không chuyển tham số của
trang hiện hành cho trang chuyển hướng. Hành động có thể chứa
. Khi các hành động này thực hiện thì sẽ kết thúc trang hiện hành. Những
thẻ này cung cấp tham số yêu cầu cho việc chuyển hướng.
1.1.2. Tìm hiểu về servlet
Hiện nay, trong lập trình có một xu hướng rất quan trọng đang được tập trung
phát triển, đó là xây dựng các chương trình dịch vụ Java ở phía máy chủ. Servlet là
thành phần chính được sử dụng để phát triển các chương trình dịch vụ Java ở phía máy
chủ. Các Servlet là các chương trình Java thực hiện ở các ứng dụng Server (tên gọi
“Servlet” cũng gần giống như “Applet” ở phía máy Client) để trả lời cho các yêu cầu
của Client. Các Servlet không bị ràng buộc chặt với một giao thức Client-Server cụ thể
nào cả, giao thức thường được sử dụng là HTTP, do vậy, khi nói tới Servlet nghĩa là
nói tới HTTP Servlet. Servlet là sự phát triển mở rộng của CGI để đảm bảo Server
thực hiện được các chức năng của mình. Ta có thể sử dụng Servlet của Java để tùy
chỉnh lại một dịch vụ bất kỳ, như Web Server, Mail Server. Một servlet là một lớp Java
và vì thế cần được thực thi trên một máy ảo Java (JVM – Java Vitual Machine) bằng
một dịch vụ gọi là servlet engine. Servlet engine tải lớp servlet lần đầu tiên được yêu
cầu, hoặc ngay khi servlet engine được bắt đầu. Servlet ngừng tải để xử lý nhiều yêu
SVTH: Trương Ngọc Phú - 11T2
Trang 7