UBND TỈNH QUẢNG NAM
TRƯỜNG ĐẠI HỌC QUẢNG NAM
KHOA: TOÁN – TIN
----------
HIÊN CÔNG
XÂY DỰNG WEBSITE QUẢN LÝ KÝ TÚC XÁ
TRƯỜNG ĐẠI HỌC QUẢNG NAM
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC
Quảng Nam, tháng 4 năm 2023
UBND TỈNH QUẢNG NAM
TRƯỜNG ĐẠI HỌC QUẢNG NAM
KHOA: TOÁN – TIN
----------
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
Tên đề tài:
XÂY DỰNG WEBSITE QUẢN LÝ KÝ TÚC XÁ
TRƯỜNG ĐẠI HỌC QUẢNG NAM
Sinh viên thực hiện
HIÊN CÔNG
MSSV: 2119011049
CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
KHOÁ: 2019 – 2023
Cán bộ hướng dẫn
ThS. NGUYỄN THỊ MINH CHÂU
Quảng Nam, tháng 04 năm 2023
LỜI CẢM ƠN
Để thực hiện được đề tài: “Xây dựng Website quản lý KTX trường Đại học
Quảng Nam” em đã nhận được nhiều sự giúp đỡ nhiệt tình các thầy cô giáo, bạn bè,
người thân.
Lời đầu tiên, em xin bày tỏ lịng cảm ơn sâu sắc đến cơ giáo - Th.S Nguyễn
Thị Minh Châu - giảng viên khoa Toán – Tin đã tận tình hướng dẫn em trong suốt
quá trình nghiên cứu và giúp em hoàn thành đề tài này.
Em xin gửi lời cảm ơn chân thành tới các thầy cô giáo khoa Toán – Tin cùng
các giảng viên trong nhà trường đã giảng dạy, tạo điều kiện để em được học tập,
nghiên cứu và truyền đạt những kiến thức bổ ích cho chúng em trong quá trình học
tập tại trường.
Em cũng xin chân thành cảm ơn sự hợp tác, giúp đỡ của Thủ trưởng đơn vị
công ty TNHH Phần mềm FPT Miền Trung và các anh chị trong công ty đã giúp đỡ
em trong quá trình nghiên cứu, thực nghiệm.
Cuối cùng em xin gửi lời cảm ơn chân thành đến gia đình, bạn bè đã ln giúp
đỡ, động viên em thực hiện đề tài này. Mặc dù đã có nhiều cố gắng và nỗ lực để
hồn thành đề tài nghiên cứu nhưng với sự hạn chế về thời gian, kinh nghiệm và
năng lực của bản thân nên bài khóa luận khơng tránh khỏi những thiếu sót. Kính mong
nhận được những ý kiến, nhận xét góp ý của q thầy cơ để bài nghiên cứu được hồn
thiện hơn.
Em xin chân thành cảm ơn!
DANH MỤC VIẾT TẮT
STT Chữ viết tắt Ý nghĩa
1 AI Auto Increment
2 API Application Programming Interface
3 CGC Common Gateway Interface
4 CSDL Cơ sở dữ liệu
5 CSS Cascading Style Sheets
6 FK Foreign key
7 HTML HyperText Markup Language
8 JDBC Java Database Connectivity
9 JSP Java Server Page
10 JavaSE Java Standard Edition
11 JVM Java Virtual Machine
12 KTX Ký túc xá
13 MVC Model – View - Controller
14 PK Primary Key
15 RDBMS Relational Database Management System
DANH MỤC HÌNH ẢNH
Hình 1. 1. Mơ hình Client - Server..............................................................................5
Hình 1. 2. Mơ hình MVC ..........................................................................................10
Hình 2. 1. Chu kỳ sống của JSP ..................................................................................9
Hình 2. 2. Sơ đồ UseCase tổng quát .........................................................................20
Hình 2. 3. Sơ đồ lớp ..................................................................................................26
Hình 2. 4. Sơ đồ tuần tự Đăng nhập..........................................................................26
Hình 2. 5. Sơ đồ tuần tự Tra cứu điện nước..............................................................27
Hình 2. 6. Sơ đồ tuần tự Tra cứu tiền phong.............................................................27
Hình 2. 7. Sơ đồ tuần tự Đăng ký phịng...................................................................28
Hình 2. 8. Sơ đồ tuần tự Thêm bài viết .....................................................................28
Hình 2. 9. Sơ đồ cộng tác Đăng nhập .......................................................................29
Hình 2. 10. Sơ đồ cộng tác Tra cứu điện nước .........................................................29
Hình 2. 11. Sơ đồ cộng tác Tra cứu tiền phịng ........................................................30
Hình 2. 12. Sơ đồ cộng tác Đăng ký phịng ..............................................................30
Hình 2. 13. Sơ đồ cộng tác Thêm bài viết.................................................................31
Hình 2. 14. Sơ đồ trạng thái lớp TaiKhoan ...............................................................31
Hình 2. 15. Sơ đồ trạng thái Phịng ...........................................................................32
Hình 2. 16. Sơ đồ trạng thái Phiếu Đăng ký phịng ..................................................32
Hình 2. 17. Sơ đồ trạng thái Phiếu đăng ký Dịch vụ ................................................32
Hình 2. 18. Sơ đồ hoạt động Quản lý phịng.............................................................33
Hình 2. 19. Sơ đồ hoạt động Quản lý bài viết...........................................................33
Hình 2. 20. Sơ đồ hoạt động Đăng ký phịng............................................................34
Hình 2. 21. Sơ đồ hoạt động Tra cứu tiền phịng ......................................................34
Hình 3.1. Cấu trúc bảng doituongut ..........................................................................44
Hình 3.2. Cấu trúc bảng taikhoan..............................................................................44
Hình 3.3. Cấu trúc bảng quoctich..............................................................................44
Hình 3.4. Cấu trúc bảng sinhvien..............................................................................45
Hình 3.5. Cấu trúc bảng nhanvien.............................................................................45
Hình 3.6. Cấu trúc bảng loaibaiviet ..........................................................................45
Hình 3.7. Cấu trúc bảng baiviet ................................................................................46
Hình 3.8. Cấu trúc bảng khu .....................................................................................46
Hình 3.9. Cấu trúc bảng loaiphong ...........................................................................46
Hình 3.10. Cấu trúc bảng phong ...............................................................................47
Hình 3.11. Cấu trúc bảng dichvu ..............................................................................47
Hình 3.12. Cấu trúc bảng hocky................................................................................47
Hình 3.13. Cấu trúc bảng phieudiennuoc..................................................................48
Hình 3.14. Cấu trúc bảng dangkyphong ...................................................................48
Hình 3.15. Cấu trúc bảng dangkychuyenphong........................................................49
Hình 3.16. Cấu trúc bảng dangkydv .........................................................................49
Hình 3. 17. Mối quan hệ giữa các bảng trong MySql ...............................................49
Hình 3.18. Hàm kết nối giao tiếp giữa Java và CSDL..............................................50
Hình 3.19. Giao diện Website chính .........................................................................50
Hình 3.20. Giao diện tin tức – sự kiện ......................................................................51
Hình 3.21. Giao diện hiển thị danh sách phịng ........................................................51
Hình 3.22. Giao diện đăng ký thành viên .................................................................52
Hình 3.23. Giao diện đăng nhập website .................................................................52
Hình 3.24. Thơng báo đăng ký phịng ở đã được ghi nhận.......................................53
Hình 3.25. Giao diện hiển thị kết quả tra cứu tiền phịng .........................................53
Hình 3.26. Giao diện đăng nhập Admin ..................................................................54
Hình 3.27. Giao diện chính của Admin ....................................................................54
Hình 3.28. Giao diện quản lý sinh viên.....................................................................55
Hình 3.29. Giao diện quản lý khu .............................................................................55
Hình 3.30. Giao diện thông báo cập nhật khu thành công ........................................56
Hình 3. 31. Giao diện thống kê sinh viên..................................................................56
DANH SÁCH CÁC BẢNG BIỂU
Bảng 1. 1. Mơ hình R1 Đăng nhập............................................................................14
Bảng 1. 2. Mơ hình R2 Đăng ký tài khoản ...............................................................14
Bảng 1. 3. Mơ hình R3 Đăng ký phịng ở .................................................................15
Bảng 1. 4. Mơ hình R4 Duyệt đơn đăng ký phịng ...................................................16
Bảng 1. 5. Mơ hình R5 Tra cứu điện nước ...............................................................16
Bảng 1. 6. Mơ hình R6 Xem danh sách sinh viên theo phịng..................................17
Bảng 2. 1. Actors có trong hệ thống .........................................................................19
Bảng 2. 2. Đặc tả UC Đăng nhập ..............................................................................20
Bảng 2. 3. Đặc tả UC Đăng ký tài khoản ..................................................................21
Bảng 2. 4. Đặc tả UC Tra cứu tiền phòng.................................................................22
Bảng 2. 5. Đặc tả UC Tra cứu tiền điện nước ...........................................................22
Bảng 2. 6. Đặc tả UC Đăng ký phòng.......................................................................23
Bảng 2. 7. Đặc tả UC Duyệt đăng ký phòng.............................................................24
Bảng 2. 8. Đặc tả UC Yêu cầu chuyển phòng...........................................................25
Bảng 2.9. Các đối tượng và các thuộc tính của đối tượng ........................................35
Bảng 2.10. Mô tả dữ liệu cho bảng taikhoan ............................................................36
Bảng 2.11. Mô tả dữ liệu cho bảng doituongut.........................................................36
Bảng 2.12. Mô tả dữ liệu cho bảng quoctich ............................................................36
Bảng 2.13. Mô tả dữ liệu cho bảng sinhvien ............................................................36
Bảng 2.14. Mô tả dữ liệu cho bảng nhanvien ...........................................................37
Bảng 2.15. Mô tả dữ liệu cho bảng loaiphong ..........................................................38
Bảng 2.16. Mô tả dữ liệu cho bảng khu ....................................................................38
Bảng 2.17. Mô tả dữ liệu cho bảng phong ................................................................38
Bảng 2.18. Mô tả dữ liệu cho bảng loaibaiviet .........................................................39
Bảng 2.19. Mô tả dữ liệu cho bảng baiviet ...............................................................39
Bảng 2.20. Mô tả dữ liệu cho bảng hocky ................................................................39
Bảng 2.21. Mô tả dữ liệu cho bảng dichvu ...............................................................40
Bảng 2.22. Mô tả dữ liệu cho bảng dangkyphong ....................................................40
Bảng 2.23. Mô tả dữ liệu cho bảng dangkydv ..........................................................41
Bảng 2.24. Mô tả Mô tả dữ liệu cho bảng dangkychuyenphong ..............................42
Bảng 2.25. Mô tả dữ liệu cho bảng phieudiennuoc ..................................................42
MỤC LỤC
Phần 1. MỞ ĐẦU ......................................................................................................1
1. Lý do chọn đề tài.....................................................................................................1
2. Mục tiêu của đề tài ..................................................................................................1
3. Đối tượng và phạm vi nghiên cứu...........................................................................1
3.1. Đối tượng nghiên cứu...........................................................................................1
3.2. Phạm vi nghiên cứu..............................................................................................2
4. Phương pháp nghiên cứu.........................................................................................2
5. Đóng góp của đề tài.................................................................................................2
6. Cấu trúc đề tài .........................................................................................................2
Phần 2. NỘI DUNG...................................................................................................3
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT ........................................................................3
1.1. Tổng quan về ngôn ngữ Java ...............................................................................3
1.1.1. Nguồn gốc và lịch sử ra đời của Java................................................................3
1.1.2. Đặc điểm của Java.............................................................................................3
1.1.3. Các kiểu ứng dụng trong Java ...........................................................................4
1.2. Tổng quan về MySQL, Xampp và Tomcat..........................................................4
1.2.1. MySQL..............................................................................................................4
1.2.2. Xampp ...............................................................................................................5
1.2.3. Apache Tomcat .................................................................................................5
1.3. Các công cụ, thư viện và công nghệ hỗ trợ..........................................................6
1.3.1. HTML ...............................................................................................................6
1.3.2. CSS....................................................................................................................7
1.3.3. JavaScript ..........................................................................................................7
1.3.4. Bootstrap ...........................................................................................................8
1.3.5. JSP.....................................................................................................................8
1.3.6. Servlet ...............................................................................................................9
1.4. Mơ hình MVC ....................................................................................................10
1.5. Khảo sát hệ thống...............................................................................................11
1.5.1. Mơ tả bài tốn..................................................................................................11
1.5.2. u cầu chức năng ..........................................................................................12
1.5.3. Mơ hình Ri ......................................................................................................14
1.5.4. Đặc tính từng người dùng ...............................................................................17
1.5.5. Yêu cầu phi chức năng ....................................................................................18
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG...................................19
2.1. Phân tích chức năng và dữ liệu ..........................................................................19
2.1.1. Phân tích chức năng ........................................................................................19
2.1.2. Phân tích dữ liệu..............................................................................................35
2.2. Thiết kế dữ liệu ..................................................................................................36
CHƯƠNG 3: TRIỂN KHAI HỆ THỐNG ............................................................44
3.1. Cài đặt cơ sở dữ liệu...........................................................................................44
3.2. Kết nối ứng dụng Java với CSDL trong MySQL ..............................................50
3.3. Các giao diện chính............................................................................................50
3.3.1. Giao diện bên người dùng ...............................................................................50
3.3.2. Giao diện bên quản trị viên .............................................................................54
Phần 3. KẾT LUẬN VÀ KIẾN NGHỊ ..................................................................57
Phần 4. TÀI LIỆU THAM KHẢO ........................................................................58
Phần 1. MỞ ĐẦU
1. Lý do chọn đề tài
Hàng năm, Trường Đại học Quảng Nam phải tiếp nhận hồ sơ của các bạn sinh
viên có nguyện vọng đăng ký nhập học tại trường là rất lớn. Song, nhu cầu đăng ký
ở khu ký túc xá trường Đại học Quảng Nam của các bạn sinh viên cũng nhảy vọt tăng
theo. Hiện nay, phía Ban Quản lý KTX trường Đại học Quảng Nam phải trực tiếp
tiếp nhận, quản lý một khối lượng lớn và thường xuyên nhiều loại sinh viên, cùng với
hàng loạt vấn đề phát sinh theo nhu cầu của sinh viên. Do đó, công việc quản lý KTX
của trường Đại học Quảng Nam ngày càng phức tạp hơn. Hơn nữa, công tác quản lý
không chỉ đơn thuần là quản lý về lưu lượng sinh viên đến ở tại khu KTX, sử dụng
các loại hình dịch vụ trong KTX, mà cơng việc quản lý còn phải đáp ứng nhu cầu về
việc báo cáo các loại hình doanh thu, tình hình hoạt động của Ban Quản lý. Từ đó có
thể đưa ra định hướng và lập kế hoạch phát triển cho công việc quản lý. Nhưng với
việc lưu trữ và xử lý bằng thủ công như hiện nay thì sẽ tốn rất nhiều thời gian và nhân
lực mà không đem lại hiệu quả cao. Do đó cần phải tin học hóa hình thức quản lý, cụ
thể là xây dựng một Website để tạo một môi trường hiện đại giúp sinh viên tiếp cận
thông tin, sử dụng các loại dịch vụ của KTX một cách thuận tiện, nhanh chóng và
hiệu quả. Đồng thời, đáp ứng nhu cầu quản lý toàn diện, thống nhất và đạt hiệu quả
cao nhất trong việc quản lý KTX của Nhà trường.
Từ những cơ sở thực tiễn trên, em quyết định chọn đề tài: “Xây dựng Website
quản lý KTX trường Đại học Quảng Nam” làm đề tài khóa luận tốt nghiệp của mình.
2. Mục tiêu của đề tài
- Tìm hiểu về ngơn ngữ Java, JSP/Servlet
- Tìm hiểu về MySQL, Tomcat trong Java.
- Phân tích và thiết kế hệ thống theo hướng đối tượng.
- Xây dựng Website quản lý KTX trường Đại học Quảng Nam theo mô hình MVC
3. Đối tượng và phạm vi nghiên cứu
3.1. Đối tượng nghiên cứu
- Thực trạng và kinh nghiệm thực tế trong công tác quản lý KTX trường Đại học
Quảng Nam
- Mối quan hệ giữa hệ thống quản lý với hoạt động học tập, đăng ký ở ký túc xá của
các bạn sinh viên trường Đại học Quảng Nam.
1
3.2. Phạm vi nghiên cứu
- Đề tài được tập trung xây dựng hệ thống Website cho công tác quản lý KTX của
trường Đại học Quảng Nam.
4. Phương pháp nghiên cứu
- Phương pháp lý luận :
+ Tìm hiểu kỹ thuật lập trình, tìm hiểu cách thức hoạt động và các đối tượng trong
mơ hình MVC thơng qua sách, tài liệu Internet.
- Phương pháp thực tiễn :
+ Viết ứng dụng xây dựng website quản lý KTX trường Đại học Quảng Nam.
- Ngồi ra cịn sử dụng các phương pháp khác như : logic, phân tích, tổng hợp, thống
kê,…
5. Đóng góp của đề tài
Đề xuất một mơ hình hệ thống Website phục vụ cơng tác quản lý trong mơi
trường giáo dục, góp phần làm phong phú hình thức quản lý trong giáo dục, phát huy
hiệu quả việc ứng dụng công nghệ thông tin vào hoạt động quản lý, giáo dục.
6. Cấu trúc đề tài
Ngoài phần mở đầu, phần kết luận và danh mục tài liệu tham khảo, khóa luận
gồm có 3 chương:
Chương 1: Cơ sở lý thuyết
Chương 2: Phân tích và thiết kế hệ thống.
Chương 3: Triển khai hệ thống
2
Phần 2. NỘI DUNG
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1. Tổng quan về ngôn ngữ Java
1.1.1. Nguồn gốc và lịch sử ra đời của Java
Java là một ngơn ngữ lập trình được Sun Microsystems giới thiệu vào tháng 6
năm 1995. Từ đó, nó đã trở thành một cơng cụ lập trình của các lập trình viên chuyên
nghiệp. Java được xây dựng trên nền tảng của C và C++. Do vậy, nó sử dụng các cú
pháp của C và các đặc trưng hướng đối tượng của C++.
Ban đầu Java được thiết kế để làm ngôn ngữ viết chương trình cho các sản
phẩm điện tử dân dụng như đầu video, tivi, điện thoại, máy nhắn tin. Tuy nhiên với
sự phát triển mạnh mẽ của Java, rất nhiều ứng dụng, trang web đều được viết bằng
Java bởi nó nhanh, bảo mật và đáng tin cậy.
Java đầu tiên có tên là Oak - là cây sồi mọc ở phía sau văn phịng của nhà thiết
kế, chính ơng Jame Gosling, sau này ơng thấy rằng đã có ngơn ngữ lập trình tên Oak,
do vậy nhóm thiết kế quyết định đổi tên thành Java, Java là tên của một quán cafe
trên một hịn đảo ở Indonesia mà nhóm thiết kế Java hay đến công tác.
- Phiên bản đầu tiên của Java là JDK Beta được phát hành vào năm 1995.
1.1.2. Đặc điểm của Java
Java là ngơn ngữ lập trình hướng đối tượng nên nó cũng có 4 đặc điểm chung
của các ngơn ngữ hướng đối tượng
+ Tính trừu tượng (Abstraction): là tiến trình xác định và nhóm các thuộc tính, các
hành động liên quan đến một thực thể đặc thù, xét trong mối tương quan với ứng dụng
đang phát triển.
+ Tính đa hình (Polymorphism): cho phép một phương thức có các tác động khác
nhau trên nhiều loại đối tượng khác nhau. Với tính đa hình, nếu cùng một phương
thức ứng dụng cho các đối tượng thuộc các lớp khác nhau thì nó đưa đến những kết
quả khác nhau. Bản chất của sự việc chính là phương thức này bao gồm cùng một số
lượng các tham số.
+ Tính kế thừa (Inheritance): Điều này cho phép các đối tượng chia sẻ hay mở rộng
các đặc tính sẵn có mà khơng phải tiến hành định nghĩa lại.
+ Tính đóng gói (Encapsulation): Là tiến trình che giấu việc thực thi những chi tiết
của một đối tượng đối với người sử dụng đối tượng ấy.
3
- Bên cạnh đó Java cịn có một số đặc tính khác:
+ Độc lập nền (Write Once, Run Anywhere): Khơng giống như nhiều ngơn ngữ lập
trình khác như C và C ++, khi Java được biên dịch, nó khơng được biên dịch sang mã
máy cụ thể, mà thay vào đó là mã byte code chạy trên máy ảo Java (JVM). Điều này
đồng nghĩa với việc bất cứ thiết bị nào có cài đặt JVM sẽ có thể thực thi được các
chương trình Java.
+ Đơn giản: Java trở nên đơn giản hơn so với C/C++ do đã loại bỏ tính đa kế thừa và
phép toán con trỏ từ C/C++.
+ Bảo mật: Java hỗ trợ bảo mật rất tốt bởi các thuật tốn mã hóa như mã hóa một
chiều (one way hashing) hoặc mã hóa cơng cộng (public key)...
+ Đa luồng: Với tính năng đa luồng Java viết chương trình có thể thực thi nhiều task
cùng một lúc. Tính năng này thường được sử dụng rất nhiều trong lập trình game.
Hiệu suất cao nhờ vào trình thu gom rác (garbage collection), giải phóng bộ nhớ đối
với các đối tượng khơng được dùng đến.
+ Linh hoạt: Java được xem là linh hoạt hơn C/C ++ vì nó được thiết kế để thích ứng
với nhiều môi trường phát triển.
1.1.3. Các kiểu ứng dụng trong Java
- Với sự mạnh mẽ của Java, rất nhiều kiểu ứng dụng, trang web được xây dựng như:
Ứng dụng Applets, ứng dụng dòng lệnh (console), ứng dụng đồ họa , JSP/Servlet,
ứng dụng mạng socket, ứng dụng cho các thiết bị di động,…
1.2. Tổng quan về MySQL, Xampp và Tomcat
1.2.1. MySQL
MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở Relational Database
Management System – RDBMS hiện nay được sử dụng phổ biến trên phạm vi toàn
cầu. Hệ quản trị cơ sở dữ liệu này hoạt động dựa trên mơ hình tiêu chuẩn là Client –
Server
- Cách thức hoạt động của MySQL
MySQL tuân theo hoạt động của Kiến trúc Client – Server. Mơ hình này được
thiết kế cho người dùng cuối được gọi là khách hàng truy cập tài nguyên từ máy tính
trung tâm được gọi là máy chủ sử dụng dịch vụ mạng. Tại đây, các máy khách đưa ra
yêu cầu thông qua giao diện người dùng đồ họa (GUI) và máy chủ sẽ cung cấp đầu
ra mong muốn ngay khi các hướng dẫn được khớp.
4
Hình 1. 1. Mơ hình Client - Server
1.2.2. Xampp
Là sự tích hợp của 5 phần mềm chính là Cross-Platform (X), Apache (A),
MariaDB (M), PHP (P) và Perl (P), nên tên gọi XAMPP cũng là viết tắt từ chữ cái
đầu của 5 phần mềm này. Trong đó, chữ X đầu tiên là viết tắt của hệ điều hành mà
nó hoạt động như: Linux, Windows hoặc Mac OS X. Nó là chương trình tạo web
server
- Ưu điểm
+ Có thể chạy được linh hoạt được trên mọi hệ điều hành: Cross-platform, Windows,
MacOS, Linux.
+ Có cấu hình đơn giản nhưng mang đến nhiều chức năng hữu ích như: Lập Server giả
định, lập Mail Server giả định và hỗ trợ SSL trên localhost.
+ Tích hợp được nhiều tính năng với các thành phần quan trọng như: Apache, PHP,
MySql. Vì thế, người dùng khơng cần cài đặt từng phần trên riêng lẻ mà chỉ cần cài
XAMPP là có 1 web server hoàn chỉnh.
+ Tạo mã nguồn mở: Giao diện quản lý dễ dàng và tiện lợi giúp người dùng luôn chủ
động được trong chế độ khởi động lại hay bật/ tắt đối với máy chủ theo thời gian phù
hợp nhất.
- Nhược điểm
+ Do cấu hình khá đơn giản cho nên Xampp hồn tồn khơng nhận được sự hỗ trợ
về cấu hình Module
+ Khơng có phiên bản cụ thể cho từng thành phần của server như PHP, Apache mà
phải cài đặt riêng.
1.2.3. Apache Tomcat
5
Apache Tomcat là một loại web server HTTP được phát triển bởi Apache
Software Foundation, nó có khả năng hỗ trợ mạnh cho các ứng dụng Java thay vì các
website tĩnh khác. Do vậy, nó có khả năng chạy trên nhiều bản Java chuyên biệt như:
Java Servlet, JavaServer Pages (JSP), Java EL và WebSocket.
- Ưu điểm
+ Tomcat có độ ổn định cao.
+ Đa dạng tính năng của nhiều ứng dụng web thương mại.
+ Đây là phần mềm mã nguồn mở và được sử dụng hoàn tồn miễn phí.
+ Được tích hợp nhiều tính năng bổ sung như: tomcat valves, tomcat manager
application hay specialized realm implementation.
+ Hỗ trợ đa dạng các nền tảng như Windows, Linux, Mac OS,… và chúng đặc biệt
mạnh mẽ hơn với WordPress có cộng đồng lớn, sẵn sàng hỗ trợ giải quyết mọi vấn
đề.
+ Các phiên bản của Apache Tomcat trùng với phiên bản và đặc điểm kỹ thuật của
Servlet Java hoặc Java servlet API.
- Nhược điểm
+ Hiệu năng sẽ bị ảnh hưởng nếu website có lượng truy cập cực lớn.
+ Có thể gây ra các điểm yếu bảo mật do có quá nhiều lựa chọn thiết lập.
1.3. Các công cụ, thư viện và công nghệ hỗ trợ
1.3.1. HTML
HTML là viết tắt của cụm từ Hypertext Markup Language (ngôn ngữ đánh dấu
siêu văn bản). HTML được sử dụng để tạo cấu trúc các thành phần trong trang web
hoặc ứng dụng, phân chia các đoạn văn, heading, titles, blockquotes… và HTML
khơng phải là ngơn ngữ lập trình.
- Cấu trúc cơ bản của file HTML:
<!DOCTYPE html>
<html>
<head>
<title>Tiêu đề trang web</title>
</head>
6
<body>
...Phần thân viết ở đây...
</body>
</html>
- Trong đó:
<!Doctype>: Phần khai báo chuẩn của html hay xhtml.
<head></head>: Phần khai báo ban đầu, khai báo về meta, title, css, javascript…
<body></body>: Phần chứa nội dung của trang web, nơi hiển thị nội dung.
1.3.2. CSS
CSS là chữ viết tắt của Cascading Style Sheets, nó là một ngơn ngữ được sử
dụng để tìm và định dạng lại các phần tử được tạo ra bởi các ngôn ngữ đánh dấu
(HTML). Nói ngắn gọn hơn là ngơn ngữ tạo phong cách cho trang web.
- Cấu trúc cơ bản của CSS:
Selector{
properties: value;
}
- Trong đó:
-Selector: Là các đối tượng mà chúng ta muốn tác động vào. VD: div, p hay các class,
id trong HTML.
-Properties: Là các thuộc tính trong css như: background,color,...
-Value: Là các giá trị của thuộc tính .
1.3.3. JavaScript
JavaScript là một loại ngơn ngữ lập trình được sử dụng chủ yếu trong HTML
với mục đích phát triển các ứng dụng internet được chạy trên server và client.
Javascript có cấu trúc cơ bản sau:
Tất cả những đoạn mã Javascript đều phải đặt trong cặp thẻ mở <script> và thẻ đóng
</script>.
- Ví dụ:
7
<script language="javascript">
alert("Hello World!");
</script>
1.3.4. Bootstrap
Bootstrap là 1 framework HTML, CSS, và JavaScript cho phép người dùng dễ
dàng thiết kế website theo 1 chuẩn nhất định, tạo các website thân thiện với các thiết
bị cầm tay như mobile, ipad, tablet,... Bootstrap có những ưu điểm sau:
+ Rất dễ để sử dụng: Nó đơn giản vì nó được base trong HTML, CSS và Javascript
chỉ cần có kiến thức cơ bản về 3 cái đó là có thể sử dụng bootstrap tốt.
+ Responsive: Bootstrap xây dựng sẵn responsive css trên các thiết bị Iphones,
tablets, và desktops. Tính năng này khiến cho người dùng tiết kiệm được rất nhiều
thời gian trong việc tạo ra một website thân thiện với các thiết bị điện tử, thiết bị cầm
tay.
+ Tương thích với mọi trình duyệt (IE browser >= IE9)
1.3.5. JSP
JSP là viết tắt của Java Server Page hay Java Scripting Preprocessor – tạm dịch
là “Bộ tiền xử lý văn lệnh Java”. Đây 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 giúp cho trang web sinh
động hơn.
- Một trang JSP gồm có các thành phần như:
+ Thẻ Root: Thẻ này sẽ chứa các thuộc tính, thơng tin của trang JSP.
+ Comment: Cũng như trang HTML , trong JSP, bạn cũng có thể comment với kí
hiệu này: <! your comment –>
+ Declaration: khai báo biến hoặc phương thức của java ngay trong trang JSP. Nhưng
nếu như khai báo quá nhiều trong trang thì sẽ bị nhầm lẫn giữa code JSP và code java.
Cú pháp là <%! your code %>
+ Expression: được sử dụng để chèn một giá trị vào trong trang một cách trực tiếp.
Thẻ biểu thức JSP: được sử dụng để đánh giá một biểu thức và định hướng các output
đến một trình duyệt web phù hợp. Cú pháp khai báo là: <%= your code %>
8
+ Scriptlet Tag: Cho phép bạn viết mã java trong trang JSP. Cú pháp như sau : <%
<i> mã java </ i>%>
- Chu kỳ sống của JSP:
Hình 2. 1. Chu kỳ sống của JSP
- Ưu điểm của JSP
+ Hỗ trợ cho việc thiết kế giao diện web dễ dàng hơn.
+ Có vai trị lớn trong việc cho phép thiết kế web tạo nên những trang web động.
+ Có thể tái sử dụng
- Hạn chế của JSP
+ Tiêu tốn dung lượng lưu trữ phía server gấp đơi.
+ Lần đầu tiên truy cập vào trang JSP sẽ mất nhiều thời gian chờ.
1.3.6. Servlet
Tùy theo ngữ cảnh sử dụng mà Servlet được định nghĩa bằng nhiều cách khác
nhau như:
- Servlet chính là cơng nghệ được dùng để thiết lập ra các ứng dụng web.
- Servlet được xem là một API cung cấp các interface, lớp và cả các tài liệu.
- Một thành phần web được triển khai trên máy chủ để tạo ra trang web động.
Có nhiều interface và các lớp trong API servlet như Servlet, GenericServlet,
HttpServlet, ServletRequest, ServletResponse, …
9
Servlet sử dụng công nghệ mạnh mẽ và cho phép mở rộng. Mặc dù trước khi
Servlet ra đời, đã có ngơn ngữ kịch bản CGI (viết tắt của Common Gateway Interface)
được dùng làm ngôn ngữ lập trình phổ biến. Tuy nhiên, nó vẫn cịn tồn tại nhiều bất
cập. Do đó, Servlet được nghiên cứu và phát triển để có thể khắc phục những hạn chế
mà CGI mang lại.
- Ưu điểm:
+ Viết code Java cực kỳ đơn giản và hiệu quả
+ Nhận client request và lấy thông tin từ request
+ Xử lý nghiệp vụ và phát sinh chuyên môn (bằng cách truy cập Database)
+ Tạo và gửi request đến client hoặc tại request mới đến Servlet một cách rõ
ràng
- Hạn chế: Viết code HTML trong Servlet khó khăn và phức tạp hơn.
1.4. Mơ hình MVC
MVC (Model – View – Controller) là một mơ hình thiết kế hay kiến trúc được
sử dụng phổ biến trong kỹ thuật phần mềm. Nó có nhiệm vụ phân bổ các source code
thành 3 phần chính. Mỗi thành phần có một nhiệm vụ riêng biệt và xử lý độc lập với
các thành phần khác.
Mơ hình MVC giúp các nhà thiết kế, lập trình web xử lý các yêu cầu kỹ thuật
và hoàn thiện sản phẩm dễ dàng và nhanh chóng hơn.
Hình 1. 2. Mơ hình MVC
10