Chương 2: Phân tích thiết kế website Trung tâm gia sư Phần này sẽ trình bày chi tiết quá trình phân tích thiết kế hệ thống từ bước tìm hiểu, phân tích yêu cầu người dùng, tạo tài liệu c
Trang 1KHOA HỆ THỐNG THÔNG TIN KINH TẾ
- -
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
XÂY DỰNG WEBSITE TRUNG TÂM GIA SƯ
Sinh viên thực hiện: Trình Nguyễn Cẩm Tú
Trang 2Thông tin Kinh tế đã truyền đạt những kiến thức quý báu cho em trong những năm học vừa qua và nhất là đã tạo điều kiện cho em có thể hoàn thành đề tài một cách thuận lợi nhất
Đặc biệt em xin cảm ơn thầy ThS Nguyễn Hữu Hoàng Thọ đã hướng dẫn tận tình, giúp em có những điều chỉnh kịp thời và phù hợp trong quá trình làm luận văn tốt nghiệp
Tiếp theo em xin cảm ơn các anh chị trong công ty FPT Software Đà Nẵng đã tạo điều kiện tốt nhất để em có thể thực tập tại công ty, giúp em hiểu biết thêm được nhiều kiến thức chuyên ngành cũng như các kỹ năng cần thiết cho công việc sau này của mình
Mặc dù đã cố gắng nhưng do trình độ và kinh nghiệm thực tế còn hạn chế nên trong quá trình thực hiện đề tài không tránh khỏi những thiếu sót Em rất mong nhận được những nhận xét, đóng góp từ thầy cô và các bạn để đề tài thực tập cuối khóa này được hoàn thiện hơn
Em xin chân thành cảm ơn!
Đạ i h
ọc Kinh
tế Hu
ế
Trang 31 Những kiến thức trong bài báo cáo này là do em thực hiện dưới sự hướng dẫn trực tiếp của ThS Nguyễn Hữu Hoàng Thọ và các anh chị ở công ty
FPT Software Đà Nẵng
2 Mọi tham khảo dùng trong bài báo cáo đều được trích dẫn rõ ràng tên
tác giả, tên công trình, thời gian và đị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
Huế, tháng 5 năm 2017 Sinh viên Trình Nguyễn Cẩm Tú
Đạ i h
ọc Kinh
tế Hu
ế
Trang 4NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Huế, ngày …… tháng …… năm 2017
Giáo viên hướng dẫn
Đạ i h
ọc Kinh
tế Hu
ế
Trang 5NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Huế, ngày …… tháng …… năm 2017
Giáo viên phản biện
Đạ i h
ọc Kinh
tế Hu
ế
Trang 6MỤC LỤC
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 2
3.1 Đối tượng nghiên cứu 2
3.2 Phạm vi nghiên cứu 2
4 Phương pháp nghiên cứu 2
5 Nội dung khóa luận 2
CHƯƠNG 1: CƠ SỞ LÝ LUẬN 4
1.1 Giới thiệu về ngôn ngữ lập trình Java 4
1.9.1 Java là gì? 4
1.9.2 Lịch sử phát triển của ngôn ngữ lập trình Java 4
1.9.3 Một số đặc điểm nổi bật của ngôn ngữ lập trình Java 4
1.2 Mô hình MVC 6
1.3 Struts framework 7
1.4 HTML 9
1.5 JQUERY 9
1.9.1 Giới thiệu 9
1.9.2 Cú pháp 10
1.6 AJAX 10
1.9.1 Giới thiệu 10
1.9.2 Cú pháp 11
1.7 JSP và Servlet 12
1.9.1 Servlet 12
1.9.2 JSP 12
1.8 Môi trường phát triển tích hợp Eclipse 13
1.9 Giới thiệu hệ quản trị cơ sở dữ liệu SQL Server 13
1.9.1 SQL là ngôn ngữ cơ sở dữ liệu quan hệ 14
Đạ i h
ọc Kinh
tế Hu
ế
Trang 7CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ WEBSITE TRUNG TÂM GIA SƯ 15
2.1 Mô tả website Trung tâm gia sư 15
2.1.1 Tác nhân 15
2.1.2 Mô hình Use Case của hệ thống 16
2.2 Thiết kế các bảng dữ liệu vật lý 20
2.2.1 Mô hình thực thể mối quan hệ ERD 20
2.2.2 Chuẩn hóa cơ sở dữ liệu 20
2.2.3 Sơ đồ dữ liệu quan hệ 24
2.3 Sơ đồ lớp (Class Diagram) 25
2.4 Sơ đồ tuần tự (Sequence Diagram) 29
CHƯƠNG 3: XÂY DỰNG WEBSITE TRUNG TÂM GIA SƯ 38
3.1 Môi trường xây dựng 38
3.2 Kết quả 38
KẾT LUẬN 49
1 Các kết quả đạt được 49
2 Hạn chế 49
3 Hướng phát triển 49
TÀI LIỆU THAM KHẢO 50
Đạ i h
ọc Kinh
tế Hu
ế
Trang 8DANH MỤC CÁC HÌNH VẼ, SƠ ĐỒ, BIỂU ĐỒ
Hình 1: Cơ chế hoạt động của Struts 8
Hình 2: Mô hình Use Case của hệ thống 16
Hình 3: Mô hình Use Case - Chức năng xem trang chủ 17
Hình 4: Mô hình Use Case - Chức năng thống kê 17
Hình 5: Mô hình Use Case - Chức năng đăng ký dạy 18
Hình 6: Mô hình Use Case - Chức năng xem thông tin 18
Hình 7: Mô hình Use Case - Chức năng đăng ký học 19
Hình 8: Mô hình Use Case - Chức năng quản lý tài khoản 19
Hình 9: Mô hình Use Case - Chức năng quản lý đơn đăng ký dạy, đơn đăng ký học 19
Hình 10: Mô hình ERD 20
Hình 11: Sơ đồ dữ liệu quan hệ 24
Hình 12: Sơ đồ lớp quản lý tài khoản 25
Hình 13: Sơ đồ lớp quản lý đăng ký dạy 26
Hình 14: Sơ đồ lớp quản lý đăng ký học 27
Hình 15: Sơ đồ lớp quản lý dạy học 28
Hình 16: Sơ đồ tuần tự chức năng đăng nhập 29
Hình 17: Sơ đồ tuần tự chức năng đăng xuất 29
Hình 18: Sơ đồ tuần tự chức năng đăng ký học viên 30
Hình 19: Sơ đồ tuần tự chức năng đăng ký học 30
Hình 20: Sơ đồ tuần tự chức năng đăng ký dạy 31
Hình 21: Sơ đồ tuần tự chức năng xem danh sách đơn đăng ký học 31
Hình 22: Sơ đồ tuần tự chức năng chọn xuất học 32
Hình 23: Sơ đồ tuần tự chức năng tìm gia sư theo môn 33
Hình 24: Sơ đồ tuần tự chức năng chọn xuất dạy 33
Hình 25: Sơ đồ tuần tự chức năng xem thông tin chi tiết xuất dạy 34
Hình 26: Sơ đồ tuần tự chức năng cập nhật thông tin cá nhân học viên 34
Hình 27: Sơ đồ tuần tự chức năng cập nhật thông tin cá nhân gia sư 35
Hình 28: Sơ đồ tuần tự chức năng xem danh sách gia sư 35
Đạ i h
ọc Kinh
tế Hu
ế
Trang 9Hình 30: Sơ đồ tuần tự chức năng xóa đơn đăng ký dạy 37
Hình 31: Màn hình trang chủ 39
Hình 32: Màn hình đăng nhập 40
Hình 33: Màn hình đăng ký học viên 40
Hình 34: Màn hình đăng ký học kèm 41
Hình 35: Màn hình đăng ký dạy kèm 41
Hình 36: Màn hình thông tin cá nhân giáo viên 42
Hình 37: Màn hình danh sách gia sư 43
Hình 38: Màn hình danh sách đơn đăng ký học 44
Hình 39: Màn hình danh sách đơn đăng ký dạy theo môn 45
Hình 40: Màn hình quản lý đơn đăng ký học 46
Hình 41: Màn hình quản lý đơn đăng ký dạy 47
Hình 42: Màn hình admin 48
Đạ i h
ọc Kinh
tế Hu
ế
Trang 10DANH MỤC CÁC BẢNG
Bảng 1: Bảng TaiKhoan (Tài khoản) 20
Bảng 2: Bảng PhuHuynh (Phụ huynh) 20
Bảng 3: Bảng HocVien (Học viên) 21
Bảng 4: Bảng GiaoVien (Giáo viên) 21
Bảng 5: Bảng DonDKHoc (Đơn đăng ký học) 22
Bảng 6: Bảng ThoiKhoaBieu (Thời khóa biểu) 22
Bảng 7: Bảng DangKyHoc (Đăng ký học) 22
Bảng 8: Bảng DonDKDay (Đơn đăng ký dạy) 23
Bảng 9: Bảng ThoiGianDay (Thời gian dạy) 23
Bảng 10: Bảng DayHoc (Dạy học) 23
Bảng 11: Bảng MonHoc (Môn học) 23
Bảng 12: Bảng DangKyDay (Đăng ký dạy) 24
Đạ i h
ọc Kinh
tế Hu
ế
Trang 11MỞ ĐẦU
1 Lý do chọn đề tài
Hiện nay, trong sự phát triển của xã hội, giáo dục là vấn đề được quan tâm và đặt lên hàng đầu Các bậc phụ huynh cũng như mỗi gia đình luôn muốn tạo điều kiện học tập tốt nhất cho con em mình Chính vì vậy bên cạnh việc cho con tham gia vào các lớp học văn hóa tại trung tâm thì việc tìm gia sư học tập là điều cần thiết
Bên cạnh đó, nhiều sinh viên từ năm nhất đã bắt đầu đi làm thêm để có thu nhập trang trải chi phí học tập và sinh hoạt Phần lớn sinh viên lựa chọn công việc bán thời gian để có thể vừa đi làm vừa đi học Trong số các công việc bán thời gian đó thì dạy kèm tại nhà cho học sinh là một trong những lựa chọn hàng đầu của sinh viên Bởi lẽ gia sư là công việc ít vất vả hơn các công việc bán thời gian khác như phục vụ, bán hàng,…
Trước thực tế đó, hàng loạt các trung tâm gia sư ra đời và phát triển nhanh chóng, với đủ quy mô, đủ loại chất lượng tràn ngập trên thị trường Cùng với sự phát triển mạnh mẽ của công nghệ thông tin như hiện nay, vấn đề tìm kiếm dịch vụ gia sư
và dạy kèm đều được thực hiện thông qua mạng Internet và công cụ website
Chính vì những lí do trên, tôi chọn “Xây dựng website Trung tâm gia sư”
làm hướng nghiên cứu cho đề tài
2 Mục tiêu của đề tài
Xây dựng được một website Trung tâm gia sư với các mục tiêu sau:
- Đầy đủ tính năng cơ bản, phù hợp với nhu cầu sử dụng của người quản lý cũng như tiện dụng cho việc đăng kí học
- Giao diện trực quan, tiện dụng
- Có khả năng bảo mật, phân quyền truy cập, mỗi loại người dùng chỉ có thể truy cập những chức năng riêng
- Các chức năng đúng với mục đích và nhu cầu sử dụng của người dùng cũng như thuận lợi trong việc quản lý của admin
Trang 12- Nghiên cứu các công cụ, nền tảng lập trình được sử dụng: Microsoft SQL Server, Java, HTML/CSS, Javascript, Struts 1.x Framework, 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
- Các nghiệp vụ, cách thức hoạt động của các trung tâm gia sư
- Cách xây dựng website
- Lập trình Java với mô hình MVC sử dụng Struts 1.x Framework
3.2 Phạm vi nghiên cứu
- Không gian: Các trung tâm gia sư tại Đà Nẵng
- Thời gian: Từ ngày 03/01/2017 đến hết ngày 29/04/2017
4 Phương pháp nghiên cứu
- Phương pháp nghiên cứu tài liệu: chủ động tìm kiếm, nghiên cứu các tài liệu liên quan đến đề tài, các website tương tự để đánh giá ưu nhược điểm, học hỏi cách thức hoạt động của website Từ đó xây dựng một website Trung tâm gia sư phù hợp
với mục đích đặt ra
- Phương pháp điều tra trực tiếp: hỏi đáp các đối tượng có liên quan đến đề tài nhằm thu thập các tài liệu bổ sung, tìm hiểu về các đối tượng nghiên cứu
- Phương pháp chuyên gia: khai thác ý kiến đánh giá của các anh/chị hướng dẫn
để xem xét, nhận định một vấn đề để tìm ra giải pháp tối ưu cho vấn đề đó
- Phương pháp phân tích, thiết kế hệ thống: tiến hành tổng hợp, phân loại thông tin Dựa trên những thông tin thu thập được, kiến thức và nển tảng công nghệ có sẵn, tiến hành xây dựng website Trung tâm gia sư
- Phương pháp lập trình hướng đối tượng: sau khi tiến hành phân tích, thiết kế website sẽ lựa chọn ngôn ngữ lập trình Java, HTML/CSS, Javascript với hệ quản trị cơ
sở dữ liệu Microsoft SQL Server
5 Nội dung khóa luận
Ngoài phần mở đầu và kết thúc, khóa luận này gồm 3 chương:
Chương 1: Cơ sở lý luận
Đạ i h
ọc Kinh
tế Hu
ế
Trang 13Phần này sẽ trình bày sơ lược các kiến thức cơ bản mà đề tài sử dụng để thiết kế website trung tâm gia sư như: Java, mô hình MVC, Struts Framework, HTML, Jquery, Ajax, Servlet, SQL Server cũng như môi trường sử dụng Eclipse
Chương 2: Phân tích thiết kế website Trung tâm gia sư
Phần này sẽ trình bày chi tiết quá trình phân tích thiết kế hệ thống từ bước tìm hiểu, phân tích yêu cầu người dùng, tạo tài liệu cho quá trình xây dựng như: Requirement outline, SRS, vẽ Usecase, sơ đồ lớp (Class Diagram), sơ đồ tuần tự (Sequence Diagram), và tiến hành thiết kế cơ sở dữ liệu cho ứng dụng
Chương 3: Xây dựng website Trung tâm gia sư
Trình bày kết quả đạt được sau quá trình xây dựng website Trung tâm gia sư
Đạ i h
ọc Kinh
tế Hu
ế
Trang 14CHƯƠNG 1: CƠ SỞ LÝ LUẬN
1.1 Giới thiệu về ngôn ngữ lập trình Java
1.9.1 Java là gì?
Java là ngôn ngữ lập trình hướng đối tượng (tựa C++) do Sun Microsystem đưa
ra vào giữa thập niên 90
Chương trình viết bằng ngôn ngữ lập trình java có thể chạy trên bất kì hệ thống nào có cài máy ảo java (Java Virtual Machine)
1.9.2 Lịch sử phát triển của ngôn ngữ lập trình Java
Ngôn ngữ lập trình Java do James Gosling và các cộng sự của Công ty Sun Microsystem phát triển
Đầu thập niên 90, Sun Microsystem tập hợp các nhà nghiên cứu thành lập nên nhóm đặt tên là Green Team Nhóm Green Team có trách nhiệm xây dựng công nghệ mới cho ngành điện tử tiêu dùng Để giải quyết vấn đề này nhóm nghiên cứu phát triển
đã xây dựng một ngôn ngữ lập trình mới đặt tên là Oak tương tự như C++ nhưng loại
bỏ một số tính năng nguy hiểm của C++ và có khả năng chạy trên nhiều nền phần cứng khác nhau Cùng lúc đó word wide web bắt đầu phát triển và Sun đã thấy được tiềm năng của ngôn ngữ Oak nên đã đầu tư cải tiến và phát triển Sau đó không lâu ngôn ngữ mới với tên gọi là Java ra đời và được giới thiệu năm 1995
Java là tên gọi của một hòn đảo ở Indonexia Đây là nơi nhóm nghiên cứu phát triển đã chọn để đặt tên cho ngôn ngữ lập trình Java trong một chuyến đi tham quan và làm việc trên hòn đảo này Hòn đảo Java này là nơi rất nổi tiếng với nhiều khu vườn trồng cafe, đó là lý do chúng ta thường thấy biểu tượng ly café trong nhiều sản phẩm phần mềm, công cụ lập trình Java của Sun cũng như một số hãng phần mềm khác đưa
ra
1.9.3 Một số đặc điểm nổi bật của ngôn ngữ lập trình Java
Máy ảo Java (JVM - Java Virtual Machine): Tất cả các chương trình muốn
thực thi được thì phải được biên dịch ra mã máy Mã máy của từng kiến trúc CPU của mỗi máy tính là khác nhau (tập lệnh mã máy của CPU Intel, CPU Solarix, CPU Macintosh… là khác nhau), vì vậy trước đây một chương trình sau khi được biên dịch
Đạ i h
ọc Kinh
tế Hu
ế
Trang 15chúng ta có thể chạy các hệ điều hành như Microsoft Windows, Unix, Linux, OS/2,… Chương trình thực thi được trên Windows được biên dịch dưới dạng file có đuôi EXE còn trên Linux thì được biên dịch dưới dạng file có đuôi ELF, vì vậy trước đây một chương trình chạy được trên Windows muốn chạy được trên hệ điều hành khác như Linux chẳng hạn thì phải chỉnh sửa và biên dịch lại Ngôn ngữ lập trình Java ra đời, nhờ vào máy ảo Java mà khó khăn nêu trên đã được khắc phục Một chương trình viết bằng ngôn ngữ lập trình Java sẽ được biên dịch ra mã của máy ảo java (mã java bytecode) Sau đó máy ảo Java chịu trách nhiệm chuyển mã java bytecode thành mã máy tương ứng Sun Microsystem chịu trách nhiệm phát triển các máy ảo Java chạy trên các hệ điều hành trên các kiến trúc CPU khác nhau
Thông dịch: Java là một ngôn ngữ lập trình vừa biên dịch vừa thông dịch
Chương trình nguồn viết bằng ngôn ngữ lập trình Java có đuôi *.java đầu tiên được biên dịch thành tập tin có đuôi *.class và sau đó sẽ được trình thông dịch thông dịch thành mã máy
Độc lập nền: Một chương trình viết bằng ngôn ngữ Java có thể chạy trên nhiều
máy tính có hệ điều hành khác nhau (Windows, Unix, Linux,…) miễn sao ở đó có cài đặt máy ảo java (Java Virtual Machine) Viết một lần chạy mọi nơi (write once run anywhere)
Hướng đối tượng: Hướng đối tượng trong Java tương tự như C++ nhưng Java
là một ngôn ngữ lập trình hướng đối tượng hoàn toàn Tất cả mọi thứ đề cập đến trong Java đều liên quan đến các đối tượng được định nghĩa trước, thậm chí hàm chính của một chương trình viết bằng Java cũng phải đặt bên trong một lớp Hướng đối tượng trong Java không có tính đa kế thừa như trong C++ mà thay vào đó Java đưa ra khái niệm interface để hỗ trợ tính đa kế thừa
Đa nhiệm - đa luồng (MultiTasking - Multithreading): Java hỗ trợ lập trình
đa nhiệm, đa luồng cho phép nhiều tiến trình, tiểu trình có thể chạy song song cùng một thời điểm và tương tác với nhau
Khả chuyển (portable): Chương trình ứng dụng viết bằng ngôn ngữ Java chỉ
cần chạy được trên máy ảo Java là có thể chạy được trên bất kỳ máy tính, hệ điều hành nào có máy ảo Java “Viết một lần, chạy mọi nơi” (Write Once, Run Anywhere)
Đạ i h
ọc Kinh
tế Hu
ế
Trang 16Hỗ trợ mạnh cho việc phát triển ứng dụng: Công nghệ Java phát triển mạnh
mẽ nhờ vào “đại gia Sun Microsystem” cung cấp nhiều công cụ, thư viện lập trình phong phú hỗ trợ cho việc phát triển nhiều loại hình ứng dụng khác nhau cụ thể như: J2SE (Java 2 Standard Edition) hỗ trợ phát triển những ứng dụng đơn, ứng dụng client-server; J2EE (Java 2 Enterprise Edition) hỗ trợ phát triển các ứng dụng thương mại, J2ME (Java 2 Micro Edition) hỗ trợ phát triển các ứng dụng trên các thiết bị di động, không dây,…
1.2 Mô hình MVC
MVC là mô hình thiết kế mang tính tổng thể để giải quyết vấn đề có tính nghiệp
vụ cao, thường áp dụng cho những dự án lớn và có tính thương mại cao Mô hình MVC được tạo ra bởi Krasner và Pope năm 1988 cho Smalltalk, hiện tại được IBM và Apache ứng dụng trong các dự án của họ rất thành công Đây là một giải pháp cho phép xây dựng các ứng dụng phân tầng một cách rất hiệu quả, bằng cách tạo ra những phương thức quản lý từng tầng một cách riêng rẽ Trong J2EE, thì MVC cũng được xây dựng dựa trên những tính năng mạnh của công nghệ JSP và Servlet
MVC có 3 thành phần chính:
Model : Trong mô hình kiến trúc MVC, đây là thành phần quan trọng nhất
trong ứng dụng Thành phần Model cung cấp một giao diện cho dữ liệu và các dịch vụ được sử dụng trong ứng dụng Theo cách này, thành phần Controller sẽ không cần phải nhúng mã lệnh để thao tác trực tiếp với các dữ liệu trong ứng dụng Thay vào đó, chúng sẽ trao đổi với thành phần Model để thực hiện thao tác và truy xuất dữ liệu Thành phần Model có rất nhiều dạng khác nhau, nó có thể đơn giản là các JavaBean hoặc phức tạp hơn là Enterprise JavaBean hoặc Web Service
View: Thành phần View trong mô hình MVC dùng để hiển thị dữ liệu ở phía
người dùng của ứng dụng Đó có thể là các dạng dữ liệu hiển thị cho việc nhập liệu đầu vào của người dùng cung cấp cho thành phần Controller hoặc cũng có thể là dữ liệu trả về từ Controller sau quá trình xử lý để hiển thị kết quả Thông thường, thành phần View này có thể là các trang HTML, JSP hoặc một số dạng templete như Velocity hoặc FreeMarker …
Đạ i h
ọc Kinh
tế Hu
ế
Trang 17Controller: Đây là thành phần điều khiển các luồng dữ liệu giữa các thành
phần View và Model, phụ thuộc vào tác động của người sử dụng và chỉ ra các hành động và chuyển hướng hành động theo các yêu cầu của người dùng
1.3 Struts framework
Struts nguồn gốc được tạo ra bởi Craig R.McClanahan và sau đó được chuyển giao cho dự án Jakarta của Apache Software Foundation (AFS) vào năm 2000 Vào tháng 6 năm 2001, Struts đã phát hành phiên bản 1.0 Sau đó, có rất nhiều người đã tham gia đóng góp cả về mã nguồn và tài liệu cho dự án và Struts ngày càng trở nên hoàn thiện hơn
Struts là một framework mã nguồn mở được phát triển trên nền tảng của ngôn ngữ Java, JSP nhằm mục đích tạo ra một thành phần chuẩn trong việc thiết kế ở tầng Web sử dụng MVC dựa trên nền tảng của J2EE Với Struts, người lập trình sẽ không phải quan tâm đến việc xây dựng mô hình MVC như thế nào mà chỉ cần cấu hình và chạy tầng hiển thị của dự án, điều này cho phép giảm thiểu chi phí đào tạo, thời gian phát triển dự án nhanh hơn và cho phép hệ thống chạy ổn định trên các nền và hoặc module tích hợp khác nhau Với Struts ta có thể tách làm 3 tầng làm việc riêng biệt một cách dễ dàng, thích hợp cho một dự án lớn, không bị nhập nhằng giữa việc tạo giao diện, xử lý và truy xuất cơ sở dữ liệu
Struts hiện có hai phiên bản chính, đó là Struts 1.xx và 2.0x Struts 1.xx được công nhận như một framework phổ biến nhất trong Java, Struts 1.xx đủ chín muồi và
là một giải pháp tốt cho nhóm phát triển để giải quyết các vấn đề chung nhất Struts 2.0x, kế thừa nền tảng của webwork framework, được tổ chức như một nền làm việc chuyên nghiệp với web, nhằm giải quyết các vấn đề phức tạp, mang tính nghiệp vụ cao
Cơ chế hoạt động của Struts Framework:
Đạ i h
ọc Kinh
tế Hu
ế
Trang 18Hình 1: Cơ chế hoạt động của Struts
Khi user gửi yêu cầu truy xuất ứng dụng web, request được chuyển đến
ActionServlet, đây là Servlet được tạo sẵn trong Framework để làm chức năng như Controller
Action Server trích xuất thành phần request nhận được để so sánh với nội dung được mapping trong tập tin cấu hình struts-config.xml để tìm ra các thành phần tương ứng cấn xử lý
Nếu không tìm thấy sẽ báo lỗi 404 hay lỗi tương ứng Ngược lại, nếu tìm thấy
sẽ xác định action và View tương ứng của phần xử lý View ở đây bao gồm form đón giá trị nhập và kết xuất để trả về người dùng
Giá trị tương ứng của form nhập được lưu trữ vào Form Bean, thực tế là một Java Object có chứa các thuộc tính – state và các phương thức truy cập get, set Tại đây, nếu có áp dụng validation thì dữ liệu được checking, checking thành công thì mới được lưu trữ vào form bean và kích hoạt chuyển dữ liệu của FormBean đến Action tương ứng để xử lý
Action khi đón nhận FormBean sẽ gọi thành phần xử lý tương ứng tư Java Bean hay Java Object tương ứng hay kết nối lấy dữ liệu từ DB về nếu có để xử lý
Đạ i h
ọc Kinh
tế Hu
ế
Trang 19 Sau khi xử lý hoàn tất, Action sẽ phải trả kết quả trở về Action Servlet đồng thời mapping trong struts-config.xml để xác định view kết xuất cho người dùng dựa trên kết quả xử lý trên struts-config
Khi xác định xong, dữ liệu từ kết quả xử lý Action và Form Bean sẽ được đổ vào trang JSP kết xuất tương ứng và kết quả thành công chuyển về Action Servlet
Action Servlet response kết quả về client – hoàn tất quá trình xử lý
1.4 HTML
HTML là chữ viết tắt của HyperText Markup Language, có nghĩa là ngôn ngữ đánh dấu siêu văn bản Nó dùng để định dạng bố cục, các thuộc tính liên quan đến cách hiển thị của một đoạn text và được hiển thị trên một chương trình đặc biệt ta gọi
là Browser Hiện nay có khá nhiều Browser như Firefox, Chrome, Cốc Cốc, Tất cả Browser đều có điểm chung là giúp người dùng thao tác với website và nó đều có khả năng biên dịch những đoạn mã HTML, CSS và Javascript
Bố cục HTML của một trang web:
<h1>My First Heading</h1>
<p>My first paragraph.</p>
Đạ i h
ọc Kinh
tế Hu
ế
Trang 20liệu HTML và chọn ra các thành phần liên quan Jquery cho phép bạn chọn bất cứ thành phần nào của tài liệu để “vọc” một cách dễ dàng như sử dụng CSS
Thay đổi giao diện của một trang web CSS là công cụ rất mạnh để định dạng một trang web nhưng nó có một nhược điểm là không phải tất cả các trình duyệt đều hiển thị giống nhau Cho nên jQuery ra đời để lấp chỗ trống này, vì vậy các bạn có thể
sử dụng nó để giúp trang web có thể hiển thị tốt trên hầu hết các trình duyệt Hơn nữa jQuery cũng có thể thay đổi class hoặc những định dạng CSS đã được áp dụng lên bất
cứ thành phần nào của tài liệu HTML ngay cả khi trang web đó đã được trình duyệt load thành công
Tương tác với người dùng Cho dù công cụ bạn dùng có mạnh mẽ đến mấy, nhưng nếu bạn không có quyền quyết định khi nào nó được sử dụng thì công cụ đó cũng coi như bỏ Với thư viện JavaScript như JQuery, nó cho bạn nhiều cách để tương tác với người dùng ví dụ như khi người dùng nhấp chuột vào đường link thì sẽ có gì xảy ra Nhưng cái hay của nó là không làm cho code HTML của bạn rối tung lên chính
là nhờ các Event Handlers
1.9.2 Cú pháp
$(selector).action()
Trong đó:
Dấu $ để định nghĩa jQuery
Phần (selector) là phần tìm các thẻ HTML thông qua tên, thuộc tính, lớp
Phần action() là hành vi cần thực hiện cho thẻ HTML sau khi tìm được
1.6 AJAX
1.9.1 Giới thiệu
AJAX viết tắt là Asynchronous JavaScript and XML (JavaScript và XML không đồng bộ có nghĩa là nó có thể làm tất cả điều này mà không cần phải làm mới trang)
Là công cụ cho phép tăng tốc độ ứng dụng web bằng cách cắt nhỏ dữ liệu và chỉ hiển thị những gì cần thiết, thay vì tải đi tải lại toàn bộ trang web
Đạ i h
ọc Kinh
tế Hu
ế
Trang 21Hay theo Jesse James Garrett-người đưa ra ý tưởng về công nghệ Ajax là Ajax không phải là một công nghệ, mà nó là là tập hợp của nhiều công nghệ với thế mạnh của riêng mình để tạo thành một sức mạnh mới:
HTML hoặc XHTML với CSS trong việc hiển thị thông tin
Mô hình DOM (Document Object Model) được thực hiện thông qua JavaScript Model) được thực hiện thông qua JavaScript, nhằm hiển thị thông tin động và tương tác với những thông tin được hiển thị
Đối tượng XMLHttpRequest để trao đổi dữ liệu một cách không đồng bộ với máy chủ web
XML thường là định dạng cho dữ liệu truyền, mặc dù bất cứ định dạng nào cũng có thể dùng, bao gồm HTML định dạng trước, văn bản thuần (plain text), JSON và ngay cả EBML
Và tất cả các kỹ thuật trên được liên kết lại với nhau bằng JavaScript
Trong các thành phần cấu thành trên, điểm mấu chốt Ajax nằm ở XMLHttpRequest Đây là một kỹ thuật do Microsoft khởi xướng và tích hợp lần đầu tiên vào IE5 dưới dạng một ActiveX Mozilla tích hợp công nghệ này vào Mozilla 1.0/Netscape 6 sau đó (đương nhiên toàn bộ các version sau này của Firefox đều có XMLHttpRequest) và hiện nay đã có trong trình duyệt Safari 1.2 (Apple) và Opera 7 trở lên
1.9.2 Cú pháp
$.ajax({
type: ‘POST’, url: ‘vidu.do’,
data: {
test: “1”
dataType: ‘html’, success: function(data) {
//code here },
Đạ i h
ọc Kinh
tế Hu
ế
Trang 22error: function() {
//code here }
});
Trong đó:
type là kiểu dữ liệu, có thể là POST hoặc GET
url là đường dẫn xử lý dữ liệu
data là tập hợp các biến dữ liệu gửi lên server
dataType là kiểu dữ liệu, có thể là html, text, json, xml
success là hàm chạy khi nhận dữ liệu thành công
error là hàm chạy khi có lỗi xảy ra
1.7 JSP và Servlet
1.9.1 Servlet
Servlet là các thành phần máy chủ nhúng trên trình chủ Web server thực hiện lệnh xử lý yêu cầu và phát sinh ra các trang Web động trả về máy khách Để sử dụng được Servlet cần có các trình chỉ Java và hỗ trợ triệu gọi Servlet như Apache, Jrun, Web Logic… Mặc dù vậy biên dịch và tạo Servlet chúng ta chỉ cần đến trình biên dịch JDK mà không cần đến các trình chủ
Servlet là trung tâm của công nghệ Web trong Java Servlet thay thế cho các ứng dụng CGI truyền thống
1.9.2 JSP
JSP (Java Servlet 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
JSP là cách đơn giản hóa hơn cho Servlet Nếu như đối với Servlet phải viết mã Java và biên dịch bằng tay trước khi sử dụng với trình chủ Web server thì JSP không
Đạ i h
ọc Kinh
tế Hu
ế
Trang 23cần điều này JSP viết mã Java tương tự Servet nhưng cho phép trộn lẫn Java với các thẻ HTML để tạo ra Servlet xử lý các yêu cầu mà trình khác gửi đến trang
JSP đơn giản và dễ sử dụng hơn Servlet mặc dù sau khi biên dịch và thực thi chúng chỉ là một
1.8 Môi trường phát triển tích hợp Eclipse
Eclipse là "công cụ hỗ trợ lập trình mã nguồn mở" được phát triển bởi IBM
Eclipse như một môi trường phát triển Java tích hợp (IDE), với Eclipse chúng ta
có thể mở rộng hơn mã nguồn bằng cách chèn thêm các plugins cho project (PDE- Plug-in Development Environment) Mặc dù Eclipse được viết bằng ngôn ngữ lập trình Java, nhưng việc sử dụng nó không hạn chế chỉ cho ngôn ngữ Java Eclipse còn
hỗ trợ cho lập trình viên code theo các mô hình phát triển như MVC, tạo thêm các lib
hỗ trợ phát triển phần mềm
Ví dụ: Eclipse hỗ trợ sẵn hoặc có thể cài thêm các plugins để hỗ trợ cho các ngôn ngữ lập trình như C/C++ và COBOL Ngoài ra, còn rất nhiều ngôn ngữ khác như PHP, Groovy
Ưu điểm:
Tích hợp liền mạch các công cụ bên trong
Hỗ trợ các công cụ như : HTML, C, Java, XML, JSP, GIF, EJB
Hỗ trợ môi trường phát triển GUI
Có thể chạy trên nhiều hệ điều hành : Windows, Linux
Hỗ trợ xây dựng nhiều công cụ lập trình
Không hạn chế các nhà cung cấp công cụ
Load nhanh hơn nhờ việc sử dụng SWT/JFace
Viết được nhiều các công cụ nhờ tính phổ biến Java
Nhược điểm:
Cài đặt phức tạp
Tốn bộ nhớ máy để cài đặt nên hiện nay eclipse đã khắc phục bằng phiên bản Eclipse Luna, không cần cái đặt
Có nhiều plugins quá nên thiếu tính nhất quán
1.9 Giới thiệu hệ quản trị cơ sở dữ liệu SQL Server
Đạ i h
ọc Kinh
tế Hu
ế
Trang 241.9.1 SQL là ngôn ngữ cơ sở dữ liệu quan hệ
SQL (Structured Query Language) – ngôn ngữ hỏi có cấu trúc, là công cụ sử dụng để tổ chức, quản lý và truy xuất dữ liệu được lưu trữ trong các cơ sở dữ liệu SQL là một hệ thống ngôn ngữ bao gồm tập các câu lệnh sử dụng để tương tác với cơ
sở dữ liệu quan hệ
SQL được sử dụng để điều khiển tất cả các chức năng mà một hệ quản trị cơ sở
dữ liệu cung cấp cho người dùng bao gồm:
Định nghĩa dữ liệu: SQL cung cấp trả năng định nghĩa các cơ sở dữ liệu, các
cấu trúc lưu trữ và tổ chức dữ liệu cũng như mối quan hệ giữa các thành phần dữ liệu
Truy xuất và thao tác dữ liệu: Với SQL, người dùng có thể dễ dàng thực hiện
các thao tác truy xuất, bổ sung, cập nhật và loại bỏ dữ liệu trong các cơ sở dữ liệu
Điều khiển truy cập: SQL có thể được sử dụng để cấp phát và kiểm soát các
thao tác của người sử dụng trên dữ liệu, đảm bảo sự an toàn cho cơ sở dữ liệu
Đảm bảo toàn vẹn dữ liệu: SQL định nghĩa các ràng buộc toàn vẹn trong cơ sở
dữ liệu nhờ đó đảm bảo tính hợp lệ và chính xác của dữ liệu trước các thao tác cập nhật cũng cũng như các lỗi của hệ thống
Bản thân SQL không phải là một hệ quản trị cơ sở dữ liệu, nó không thể tồn tại độc lập SQL thực sự là một phần của hệ quản trị cơ sở dữ liệu, nó xuất hiện trong các
hệ quản trị cơ sở dữ liệu với vai trò ngôn ngữ và là công cụ giao tiếp giữa người sử dụng và hệ quản trị cơ sở dữ liệu
1.9.2 Hệ quản trị cơ sở dữ liệu SQL Server
Hệ quản trị cơ sở dữ liệu (Database Management System – DBMS): Là một hệ thống phần mềm cho phép tạo lập cơ sở dữ liệu và điều khiển mọi truy nhập đối với cơ
sở dữ liệu đó
SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ hoạt động theo mô hình khách chủ cho phép đồng thời nhiều người dùng cùng truy xuất đến dữ liệu, quản lý việc truy nhập hợp lệ và các quyền của từng người dùng trên mạng
Đạ i h
ọc Kinh
tế Hu
ế
Trang 25CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ WEBSITE TRUNG TÂM GIA SƯ
2.1 Mô tả website Trung tâm gia sư
Website Trung tâm gia sư là website giúp phụ huynh, học sinh, sinh viên, giáo viên, những người có nhu cầu trong việc tìm người dạy và học kèm một cách thuận lợi
và nhanh chóng nhất
Website được thiết kế đảm bảo các yêu cầu sau:
- Thiết kế một website có giao diện thân thiện với người dùng Website chạy mượt, ổn định, tốc độ tải trang nhanh, tính an toàn, bảo mật cao
- Thiết kế một website cho phép người dùng tạo tài khoản, đăng nhập vào hệ thống, đăng ký dạy/học theo yêu cầu
- Đưa ra gợi ý cho học sinh và gia sư các xuất dạy/học phù hợp với yêu cầu đã đăng ký
- Cung cấp đầy đủ thông tin về các xuất đăng ký dạy/học để người dùng lựa chọn
Trang 262.1.2 Mô hình Use Case của hệ thống
Hình 2: Mô hình Use Case của hệ thống
Đạ i h
ọc Kinh
tế Hu
ế
Trang 272.1.2.1 Mô hình Use Case – Chức năng xem trang chủ
Hình 3: Mô hình Use Case - Chức năng xem trang chủ
2.1.2.1 Mô hình Use Case – Chức năng thống kê
Hình 4: Mô hình Use Case - Chức năng thống kê
Đạ i h
ọc Kinh
tế Hu
ế
Trang 282.1.2.2 Mô hình Use Case – Chức năng đăng ký dạy
Hình 5: Mô hình Use Case - Chức năng đăng ký dạy
2.1.2.3 Mô hình Use Case – Chức năng xem thông tin
Hình 6: Mô hình Use Case - Chức năng xem thông tin
Đạ i h
ọc Kinh
tế Hu
ế
Trang 292.1.2.2 Mô hình Use Case – Chức năng đăng ký học
Hình 7: Mô hình Use Case - Chức năng đăng ký học
2.1.2.3 Mô hình Use Case – Chức năng quản lý tài khoản
Hình 8: Mô hình Use Case - Chức năng quản lý tài khoản
2.1.2.4 Mô hình Use Case – Chức năng quản lý đơn đăng ký dạy, đơn đăng ký
Trang 302.2 Thiết kế các bảng dữ liệu vật lý
2.2.1 Mô hình thực thể mối quan hệ ERD
Hình 10: Mô hình ERD
2.2.2 Chuẩn hóa cơ sở dữ liệu
Bảng 1: Bảng TaiKhoan (Tài khoản)
Bảng 2: Bảng PhuHuynh (Phụ huynh)
Đạ i h
ọc Kinh
tế Hu
ế