Báo cáo đồ án Cơ sở ngành mạng. Nội dung gồm 2 phần, phần 1 là nguyên lý hệ điều hành đề tài: giao tiếp giữa các tiến trình bằng đường ống pipe; phần 2 là lập trình mạng đề tài: Thiết kế website servlet quản lý hồ sơ học sinh khối tiểu học. Nội dung phần 1 hướng dẫn cài đặt hệ điều hành linux trên môi trường máy ảo VMWare, tìm hiểu nguyên lý hoạt động của đường ống Pipe và code gửi nhận dữ liệu. Nội dung phần 2 là xây dựng website java servlet Quản lý hồ sơ học sinh, cơ sở dữ liệu là SQL server
Trang 1
MỤC LỤC LỜI NÓI ĐẦU 3
PHẦN I NGUYÊN LÝ HỆ ĐIỀU HÀNH 4
TIÊU ĐỀ: GIAO TIẾP GIỮA CÁC TIẾN TRÌNH BẰNG ĐƯỜNG ỐNG PIPE 4
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 4
1 Bối cảnh và mục tiêu 4
2 Giới thiệu hệ điều hành Linux 4
3 Tiến trình, tiến trình trong Linux 4
3.1 Tổng quan về tiến trình 4
3.2 Cấu trúc tiến trình 5
3.3 Các thao tác điều khiển tiến trình 5
4 Đường ống Pipe 5
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 7
1 Mô tả bài toán 7
2 Cách thức giải quyết 7
3 Môi trường và ngôn ngữ lập trình 7
4 Thuật toán sử dụng và triển khai thuật toán 7
4.1 Thuật toán 7
4.2 Triển khai thuật toán 10
CHƯƠNG 3: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 13
1 Cài đặt công cụ lập trình 13
1.1 Cài đặt máy ảo VMWare: 13
1.2 Cài đặt hệ điều hành Ubuntu 13
2 Chạy chương trình 13
3 Kết quả 14
4 Đánh giá kết quả 15
CHƯƠNG 4: KẾT LUẬN 17
1 Kết luận 17
2 Hướng phát triển 17
PHẦN II LẬP TRÌNH MẠNG 18
TIÊU ĐỀ: THIẾT KẾ WEBSITE SEVLET QUẢN LÝ HỒ SƠ HỌC SINH KHỐI TIỂU HỌC ( TRƯỜNG TIỂU HỌC NGÔ SĨ LIÊN) – THUỘC SỞ GIÁO DỤC VÀ ĐÀO TẠO THÀNH PHỐ ĐÀ NẴNG 18
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 18
Trang 2
1 Bối cảnh và mục tiêu 18
2 Lý thuyết liên quan 18
2.1 Tìm hiểu về HTML, CSS, JavaScript và JSP 18
2.2 Sevlet, JSP và mô hình MVC 21
2.3 Các công cụ cần thiết và cài đặt môi trường lập trình 22
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 24
1 Phân tích hệ thống 24
1.1 Phân tích đề tài 24
1.2 Các nhóm chức năng của hệ thống 24
1.3 Các tác nhân của hệ thống 24
1.4 Biểu đồ ca sử dụng của tác nhân 24
2 Thiết kế hệ thống 26
2.1 Người sử dụng 26
2.2 Những chức năng chính 26
3 Thuật toán sử dụng và triển khai thuật toán 27
CHƯƠNG 3: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 29
1 Triển khai 29
1.1 Tạo mới Dynamic Web Project 29
1.2 Kết nối cơ sở dữ liệu 29
1.3 Cấu trúc chính của Project cần xử lý 29
1.4 Các chức năng 31
CHƯƠNG 4: KẾT LUẬN 38
1 Kết luận 38
2 Hướng phát triển 38
TÀI LIỆU THAM KHẢO 39
PHỤ LỤC 40
1 Phần hệ điều hành 40
2 Phần lập trình mạng 47
Trang 3
LỜI NÓI ĐẦU
Đồ án Cơ sở ngành mạng là một trong những đồ án quan trọng của sinh viên khoa Công nghệ Thông Tin trường Đại học Bách Khoa – Đại học Đà Nẵng, trong
học kỳ này đồ án được chia làm hai phần chính: Phần đầu là Nguyên lý hệ điều hành
và phần thứ hai là Lập trình mạng
Trong đó Nguyên lý hệ điều hành là một môn học bổ ích giúp sinh viên hiểu
được cơ cấu tổ chức cũng như việc quản lý, điều phối các tiến trình của hệ thống máy tính Qua đó hiểu biết phần nào về phần mềm cơ bản nhất của máy tính là hệ điều hành Việc nghiên cứu đồ án nguyên lý hệ điều hành cũng giúp em được hiểu
rõ hơn nữa về hệ điều hành Linux, một hệ điều hành có nhiều tính năng vượt trội
và có triển vọng trong tương lai Bên cạnh đó môn học Lập trình mạng cũng không
kém phần quan trọng, môn học có ý nghĩa thực tiễn rất cao đặc biệt thông qua việc nghiên cứu, viết một ứng dụng website Servlet đã giúp em hiểu rõ hơn về cơ chế hoạt động, cách xây dựng một hệ thống quản lý thông tin ở các cơ quan, doanh nghiệp, trường học…những nơi mà mức độ tương tác giữa người dùng và đơn vị quản lý rất cao
Em xin chân thành cảm ơn sự hướng dẫn của thầy Nguyễn Văn Nguyên đã tận tình chỉ dẫn giúp em hoàn thành được đề tài đồ án này trong suốt thời gian vừa qua
Trang 4giúp hiểu được thế nào là Pipe và cách thức hoạt động của nó
2 Giới thiệu hệ điều hành Linux
Năm 1991, khi đang theo học đại học tại đại học Helsinki (Phần Lan), ông Linux Torvads nảy sinh ý tưởng viết ra một hệ điều hành mới thay thế cho hệ điều hành cũ kỹ hiện tại Ông bắt tay vào xây dựng hệ điều hành này, đặt nền móng cho
sự phát triển của hệ điều hành Linux Ngày nay, Linux được phân ra làm nhiều nhánh như : Ubuntu, Linux Mint , Fedora…nhưng phổ biến nhất vẫn là Ubuntu Ban đầu Linux chỉ là hệ điều hành với giao diện dòng lệnh (command line interface ), về sau người ta xây dựng thêm các giao diện người dùng đồ họa (Graphic user interface) để chúng ta sử dụng dể dàng hơn
Khác với hệ điều hành Windows, Linux là một HĐH mã nguồn mở và miễn phí, vậy nên khi cài đặt người dùng không phải lo về vấn đề bản quyền Ngoài ra Linux còn có tính bảo mật cao, tính linh hoạt và hoạt động mượt mà trên các máy
số nhà sản xuất không phát triển driver hỗ trợ…
3 Tiến trình, tiến trình trong Linux
3.1 Tổng quan về tiến trình
Trang 5
Tiến trình là chương trình đang xử lý, gồm các thanh ghi, con trỏ lệnh và các biến Tài nguyên cho tiến trình gồm bộ nhớ, các thiết bị nhập xuất…, trên mỗi tiến trình có thể thực hiện các thao tác tạo, thay thế, sao chép và xử lý tín hiệu
Hình: Sơ đồ trạng thái các tiến trình trên Linux
3.2 Cấu trúc tiến trình
Trong quá trình thực hiện, một tiến trình được đặc bởi nhiều thuộc tính do hệ thống duy trì như trạng thái, định danh, giá trị của các thanh ghi bao gồm cả bộ đếm chương trình, mã định danh người sử dụng có tên mà tiến trình đang thực hiện, thông tin được Kernel sử dụng để thiết lập lịch biểu của các tiến trình (thứ tự ưu
tiên, v.v…)
3.3 Các thao tác điều khiển tiến trình
Các thao tác điều khiển tiến trình gồm: Tạo lập tiến trình bằng hàm System(), nhân bản tiến trình bằng hàm fork(), thay thế tiến trình hiện hành với hàm exec(), kiểm soát và đợi tiến trình con, đón xử lý tín hiệu khi tiến trình con kết thúc, bỏ rơi tiến trình con
4 Đường ống Pipe
Pipe là một cơ chế giao tiếp giữa các tiến trình trong hệ điều hành Linux Dữ liệu trên pipe đi theo một chiều nhất định Khi một pipe được thiết lập giữa hai tiến trình, một tiến trình sẽ ghi dữ liệu vào pipe, tiến trình còn lại sẽ đọc dữ liệu từ pipe
Trang 6
đó
Pipe thích hợp cho trường hợp dữ liệu tạo ra của qua trình này sẽ là dữ liệu đầu vào cho quá trình kia Tuy nhiên ta cũng có thể sử dụng Pipe để xây dựng các ứng dụng theo kiến trúc Client- Server bằng cách sử dụng hai Pipe : Một Pipe để truyền các yêu cầu (request) và Pipe còn lại để truyền các trả lời (reply)
Có hai loại pipe:
Nomal Pipe (Ống dẫn bình thường): Chỉ giới hạn trong không gian phạm vi địa chỉ của một quá trình Cho phép giao tiếp giữa quá trình cha với các quá trình con hay giữa các quá trình con của một quá trình với nhau Java hỗ trợ pipe loại này Trong đó các quá trình con được thay thế bởi các luồng
Named Pipe (Ống dẫn có tên): Loại này cho phép hai quá trình có không
gian địa chỉ khác nhau (trên cùng một máy) giao tiếp với nhau Thực chất nó giống như một tập tin với quy định rằng dữ liệu sẽ được lấy ra ở đầu tập tin và thêm vào ở cuối tập tin
Trang 7
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
1 Mô tả bài toán
Cho một file text có dạng ***.txt, bên trong file này có nhiều chuỗi số, mỗi chuỗi gồm nhiều số được sắp xếp ngẫu nhiên và cách nhau bởi ký tự space Ví dụ trong file sẽ lưu chuỗi dạng như sau:
12 147 23 1 78 ;
24 67 1 48 123 ;
Thực hiện việc đọc dữ liệu của file và sắp xếp theo thứ tự sau:
+ Các số trên cùng một hàng xếp theo thứ tự từ lớn đến nhỏ
+ Tính tổng các số trên mỗi hàng sau đó sắp xếp các hàng theo quy tắc chuỗi
số có tổng nhỏ nhất nằm trên cùng , các chuỗi tiếp theo có tổng lớn dần và hàng
cuối cùng in các tổng tính được
2 Cách thức giải quyết
Tạo ra hai tiến trình trên hệ điều hành Linux gồm:
-tientrinh_cha (tiến trình cha)
-tientrinh_con (tiến trình con)
Thiết lập Pipe giưa hai tiến trình này, khi đó một tiến trình sẽ ghi dữ liệu vào Pipe
và tiến trình còn lại sẽ đóng vai trò đọc dữ liệu
Tiến trình cha đọc dữ liệu từ file ****.txt, sau đó chuyền các chuỗi dự liệu
này cho tiến trình con
Tiến trình con thực hiện tính toán, cuối cùng trả chuỗi kết quả về cho tiến trình cha để ghi lại vào file
3 Môi trường và ngôn ngữ lập trình
Thuật toán được triển khai lập trình trên file ****.c và thực thi bằng cửa sổ
dòng lệnh Terminal trong hệ điều hành Ubuntu 14.04.4 (một nhánh của Linux), sử dụng ngôn ngữ lập trình C/ C++
4 Thuật toán sử dụng và triển khai thuật toán
4.1 Thuật toán
Các biến và hàm quan trọng được sử dụng trong chương trình:
Trang 8
Biến counter dùng để đếm số dãy số (số hàng) trong file
Fstream inFile;
file.open("input.txt",ios::in);
Hai dòng lệnh trên dùng để tạo các đối tượng inFile, đối tượng này giúp mở
file và đọc dữ liệu từ file
Fstream outFile
outFile.open("input.txt",ios::out);
Hai dòng lệnh trên dùng để tạo đối tượng outFile, đối tượng này giúp mở file
và ghi dữ liệu từ file
Hàm void read_file(): dùng để đọc dữ liệu từ trong file và lưu các dãy số
vào mảng hai chiều
Hàm void write_file(): dùng để ghi lại dữ liệu vào trong file các dãy số của
mảng
Hàm void tientrinh_cha(int *con_toi_cha,int *cha_toi_con): Là hàm thực
hiện tiến trình cha
Hàm void tientrinh_con(int *con_toi_cha,int *cha_toi_con): Là hàm thực
hiện tiến trình con
Hàm tạo một Pipe: rc=pipe (cha_toi_con)
Hàm này tạo ra một Pipe có tên là cha_toi_con, nhưng không phải lúc nào cũng tạo được Pipe nên sẽ chia ra các trường hợp:
+ Nếu rc= -1 : Lỗi không tạo được Pipe
+ Nếu rc= 0: Tạo được Pipe đọc và ghi
Khi đã tạo được Pipe ta cần phải tạo ra hai tiến trình hoạt động song song và dùng Pipe vừa tạo ra để giao tiếp giữa hai tiến trình này với nhau
Để tạo được hai tiến trình cần sử dụng hàm : fork() với cú pháp:
pid = fork();
Vì trong Linux đã hỗ trợ sẵn đa tiến trình nên ta chỉ cần gọi hàm fork() để tạo
ra hai tiến trình hoạt động song song Nhưng không phải lúc nào hàm fork() cũng tạo ra được thành công hai tiến trình mà nó sẽ xảy ra các trường hợp sau:
Trang 9
+ Nếu pid= -1 : Lỗi không tạo được tiến trình
+ Nếu pid khác -1 : tạo ra được hai tiến trình hoạt động một cách song song
Thứ tự thực hiện các thuật toán được mô tả trong sơ đồ sau:
Trang 10
4.2 Triển khai thuật toán
4.2.1 Code xử lý tiến trình cha:
Tiến trình cha nhận dữ liệu từ hàm read_file() thực hiện ghi vào Pipe và gửi tới tiến trình con xử lý Sau khi nhận lại kết quả từ tiến trình con xử lý thì tiến hành ghi
lại vào file
* Nhận dữ liệu từ hàm read_file() và ghi vào Pipe:
void tientrinh_cha(int *con_toi_cha,int *cha_toi_con) { //xu ly o tien trinh cha
* Đọc dữ liệu từ Pipe và ghi lại kết quả nhận được từ tiến trình con vào file text
rc=read(PIPE0_DOC,mang,100*sizeof(int)); // Doc du lieu tu tien trinh con gui
ve -sizeof : kiem tra kich thuoc con tro
Trang 114.2.2 Code xử lý tiến trình con:
Tiến trình này lấy dữ liệu từ tiến trình cha gửi vào Pipe và xử lý – thực hiện các
phép toán theo yêu cầu Sau khi xử lý xong tiến trình con sẽ gửi lại kết quả cho tiến trình cha thông qua Pipe
Trang 12* Ghi lại dữ liệu vào Pipe
rc=write(PIPE1_GHI,b,100*sizeof(int)); // Tien trinh con ghi du lieu vao ong pipe
Trang 13
CHƯƠNG 3: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ
1 Cài đặt công cụ lập trình
1.1 Cài đặt máy ảo VMWare:
Máy ảo là một chương trình đóng vai trò như một máy vi tính ảo Nó chạy trên hệ điều hành hiện tại - hệ điều hành chủ và cung cấp phần cứng ảo tới hệ điều hành khách.Các máy ảo cung cấp phần cứng ảo, bao gồm CPU ảo, RAM ảo, ổ đĩa cứng, giao diện mạng và những thiết bị khác Các thiết bị phần cứng ảo được cung cấp bởi máy ảo và được ánh xạ tới phần cứng thực trên máy thật
Vmware là một chương trình máy ảo chất lượng cao cho Windows và Linux Vmware Player là bản sao miễn phí của Vmware Workstation, một ứng dụng thương mại
Các bước tải và cài đặt máy ảo Vmware có thể tham khảo nhiều hướng dẫn
cụ thể trên Youtube và các trang web khác, chỉ có lưu ý nhỏ là sau khi cài đặt Vmware cần phải tiến hành đổi Port để chương trình không bị trùng cổng khi hoạt động cùng với các phần mêm khác như Xampp hay Skype bằng cách:
Vào Menu Edit/Preferences chọn Shared VMs, sau đó Disable Sharing để đổi HTTPS: 443 thành 4443 rồi Enable Sharing
1.2 Cài đặt hệ điều hành Ubuntu
Ubuntu là một hệ điều hành máy tính dựa trên Debian GNU/Linux, một bản phân phối Linux thông dụng
Để cài đặt, sau khi khởi động Vmware vào File => New Virtual Machine, trỏ tới file ISO của Ubuntu, rồi tiến hành các bước Thiết lập bộ vi xử lý - CPU cho
máy ảo, thiết lập chia sẻ RAM, cấu hình mạng giữa máy ảo và máy thật, ở các thiết
lập tiếp theo, giữ nguyên Default và Next
2 Chạy chương trình
Trên màn hình Desktop của hệ điều hành Ubuntu, tạo một folder mới có tên
là “doan”, folder này sẽ là nơi chứa mã nguồn chương trình cần thực hiện bao gồm
hai file :
+ File thứ nhất tên là input.txt là file đầu vào mà chương trình cần đọc + File thứ hai tên là pipe.cpp là file c++ chứa code bài toán
Để chạy chương trình, mở Terminal lên và nhập lần lượt các lệnh:
cd Desktop ( câu lệnh di chuyển vào màn hình Desktop)
Trang 14
cd doan ( câu lệnh di chuyển vào folder doan)
g++ duongong.cpp -o duongong ( câu lệnh này dùng để biên dịch ra file
thực thi duongong)
./duongong ( thực thi file duongong vừa biên dịch)
3 Kết quả
File input.txt trước khi xử lý:
Chạy chương trình trên Ubuntu:
Trang 16
Tuy nhiên, việc đọc ghi file text chỉ thực hiện được và cho kết quả đúng khi
nó thõa mãn cú pháp theo 1 dạng xác định, đó là dấu “;” ở cuối mỗi chuỗi và các phần tử trong chuỗi ngăn cách nhau bởi dấu “ “ ( khoàng trắng ) và các kí tự trong file text đều là các số
Trang 17
CHƯƠNG 4: KẾT LUẬN
1 Kết luận
Việc tìm hiểu giao tiếp giữa các tiến trình bằng cơ chế đường ống giúp chúng
ta hiểu rõ hơn đặc điểm và cách quản lý tiến trình trong các Hệ điều hành nói chung
và trong Hệ điều hành Linux nói riêng
Đặc biệt ở Việt Nam khi mà hệ điều hành Windows rất phổ biến, việc làm quen với HĐH Linux là rất quan trọng bởi Việt Nam đang khuyến khích sử dụng hệ điều hành mã nguồn mở
Đây là bước đầu tiên khi bước chân vào thế giới lập trình mã nguồn mở để
có thể xây dựng các phần mềm chạy trên nền các hệ điều hành mã nguồn mở trong tương lai
Trang 18
PHẦN II LẬP TRÌNH MẠNG
TIÊU ĐỀ: THIẾT KẾ WEBSITE SEVLET QUẢN LÝ HỒ SƠ HỌC SINH KHỐI TIỂU HỌC ( TRƯỜNG TIỂU HỌC NGÔ SĨ LIÊN) – THUỘC SỞ GIÁO DỤC VÀ ĐÀO TẠO THÀNH PHỐ ĐÀ NẴNG
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1 Bối cảnh và mục tiêu
Ngày nay, cùng với sự phát triển mạnh mẽ của ngành Công nghệ thông tin và mạng Internet toàn cầu, nhu cầu làm việc, học tập, vui chơi, giải trí trên mạng là vô cùng lớn Ở đó người dùng tương tác với nhau thông qua các hệ thống Website và
để đáp ứng nhu cầu dường như vô tận ấy, công nghệ lập trình web luôn luôn phát triển không ngừng, nhiều ngôn ngữ lập trình ra đời như : PHP, Java Sevlet, C# nhằm phục vụ cho lập trình viên có thể phát huy tối đa ứng dụng của chúng vào các công việc lập trình Website
Một trong những ứng dụng có thể kể đến là thiết kế các hệ thống Website quản lý hồ sơ, hoạt động, thông tin của các đơn vị, cơ quan, xí nghiệp, cơ sở sản xuất… và cụ thể ở đề tài này là thiết kế một Website sử dụng Servlet để “Quản lý
hồ sơ học sinh khối tiểu học – thuộc sở giáo dục và đào tạo thành phố Đà Nẵng ”
2 Lý thuyết liên quan
2.1 Tìm hiểu về HTML, CSS, JavaScript và JSP
2.1.1 Ngôn ngữ HTML
HTML – viết tắt của cụm từ tiếng Anh: Hyper Text Markup Language, nghĩa
là “ngôn ngữ đánh dấu siêu văn bản” – là một ngôn ngữ đánh dấu được thiết kế để chỉ rõ một trang Web được hiển thị như thế nào trong một trình duyệt, sử dụng các thẻ và phần tử HTML
HTML không phải là một ngôn ngữ lập trình máy tính mà nó là một ngôn ngữ đánh dấu, 2 ngôn ngữ này khác nhau thế nào? Bạn có thể hiểu đơn giản, ngôn ngữ lập trình máy tính ví dụ như: C, C++, Java… sẽ được cài đặt và thực thi trên máy tính; HTML thì không cài đặt và thực thi trên máy tính của người dùng, nó chỉ đánh dấu các phần tử thông tin trong một văn bản (giống như văn bản chúng ta đọc bình thường trên giấy) hiển thị trên trình duyệt của người đọc như thế nào
Viết một tập tin HTML:
Để viết một tập tin HTML thì chúng ta cần những điều sau đây:
Trang 19
Nội dung các phần tử thông tin mà bạn muốn đưa vào trang web
Kiến thức về HTML: các thẻ, các phần tử…
Trình soạn thảo HTML: notepad, notepad++, wordpad…
Máy tính đã cài trình duyệt: IE, Chrome, FireFox, Opera
2.1.2 CSS
CSS là viết tắt của cụm từ “Cascading Style Sheet” , nó là một ngôn ngữ quy định cách trình bày của các thẻ html trên trang web Là ngôn ngữ đang được sử dụng rất nhiều trong lập trình web, có thể nói CSS ra đời đã tạo nên một cuộc cách mạng Đôi khi các bạn sẽ bối rối khi nhận thấy rằng các đoạn code mình viết hiển thị không giống nhau trên các trình duyệt khác nhau, CSS sẽ giúp các bạn giải quyết bài toán này CSS quy định cách hiển thị nội dung của các thẻ HTML trên các trình duyệt gần như giống nhau, bằng cách quy định các thuộc tính cho thẻ HTML đó
Cách chèn CSS vào trang HTML:
Có 3 cách để đưa nội dung của CSS vào trang web như sau:
Cách 1: Chèn nội dung CSS vào trong cặp thẻ <style> </style> trong phần
<head></head> của trang web
Cách 2: Chèn trực tiếp vào bên trong thẻ HTML
Chèn trực tiếp CSS vào bên trong các thẻ mở của HTML Nếu có nhiều thuộc tính cần quy định, ta ngăn cách giữa chúng bằng khoảng trắng
Trang 20
Đây là cách được dùng nhiều nhất trong sử dụng CSS vì tính tiện dụng và linh hoạt của nó Giả sử, bạn có một website gồm hàng trăm trang, khi bạn muốn thay đổi cách trình này của website, thay vì gạch cạch đi gõ từng trang một, bạn chỉ cần sửa file CSS bên ngoài, hàng trăm trang web của bạn đều được thay đổi
Cú pháp: Thực hiện liên kết bằng thẻ <link> ( Không có tag đóng ), theo cú pháp
sau:
<link rel=”stylesheet” href=”Đường dẫn đên file css” type=”text/css” />
Tag này được đặt trong cặp tag <head></head> của trang web, và không cần đặt trong tag <style></style>
Nếu bạn đặt file *.css cùng thư mục với trang web, thì trong thuộc tính href bạn chỉ
là một …
Javascript là một ngôn ngữ thông dịch, chương trình nguồn của nó được
nhúng hoặc tích hợp vào tập tin HTML Khi trang web được tải trong trình duyệt hỗ trợ javascript, Trình duyệt sẽ thông dịch và thực hiện các lệnh Javascipt
JavaScript là một trong những ngôn ngữ lập trình phổ biến nhất thể giới, nó là
ngôn ngữ cho HTML, web, server, PC, laptop, tablet, smart phone…
JavaScript là một ngôn ngữ kịch bản
Ngôn ngữ kịch bản là một ngôn ngữ lập trình nhỏ
JavaScript là mã lập trình có thể được chèn vào các trang HTML
JavaScript được chèn vào các trang web có thể được chạy bởi tất cả các trình duyệt web
Trang 21Servlet là các thành phần máy chủ nhúng trên trình chủ Web server thực hiện
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ịc và tạo Sevlet 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 Muốn hiểu rõ về lập trình Web trong java trước hết nên tìm hiểu rõ cơ chế hoạt động của servlet
Vòng đời của servlet:
Có 5 bước:
- Tải Servlet Class vào bộ nhớ
- Tạo đối tượng Servlet
- Gọi method servlets init()
- Gọi method servlets service()
- Gọi method servlets destroy()
2.2.2 JSP
JavaServer Pages (JSP) là một công nghệ để phát triển các Webpage mà hỗ trợ nội dung động, giúp các lập trình viên chèn java code vào trong các HTML page bằng việc sử dụng các JSP tag đặc biệt, hầu hết bắt đầu với <% và kết thúc với %>
Một thành phần JavaServer Pages (JSP) là một loại Java Servlet, được thiết
kế để thực hiện vai trò của một giao diện người dùng (User Interface) cho một ứng dụng Java Web Lập trình viên Web viết JSPs như là các text file mà kết nối
Trang 222.2.3 Mô hình MVC trong Java (Model – View – Controller)
MVC là một mẫu thiết kế nhằm mục tiêu chia tách phần Giao diện và Code
để dễ quản lý, phát triển và bảo trì MVC chia ứng dụng phần mềm ra làm 3 phần có tương tác với nhau là Model(Dữ liệu), View(Giao diện), Controller( Code điều khiển tương tác giữa Model và View cũng như nghiệp vụ (Business))
2.3 Các công cụ cần thiết và cài đặt môi trường lập trình
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,
Trang 23Để có thể chạy được các ứng dụng web servlet cần phải cài đặt Apache Tomcat vào công cụ lập trình Eclipse , hiện nay có rất nhiều hướng dẫn để thực hiện các bước này trước khi bắt đầu vào việc xây dựng Website servlet
2.3.3 Hệ quản trị cơ sở dữ liệu SQL Server
SQL Server là một hệ thống quản trị cơ sở dữ liệu quan hệ (Relational Database Management System (RDBMS) ) sử dụng Transact-SQL để trao đổi dữ liệu giữa Client computer và SQL Server computer Một RDBMS bao gồm databases, database engine và các ứng dụng dùng để quản lý dữ liệu và các bộ phận khác nhau trong RDBMS
Các bản SQL Server ngày nay được tối ưu để có thể chạy trên môi trường cơ
sở dữ liệu rất lớn (Very Large Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho hàng ngàn user Ví dụ như SQL Server 2012 có thể kết hợp
"ăn ý" với các server khác như Microsoft InternetInformation Server (IIS), Commerce Server, Proxy Server
Trang 24lý giáo viên, học sinh, lớp học của trường Đối với người quan lý ngoài chức năng đó ra có thê truy cập vào profile cá nhân chỉnh sửa thông tin., cập nhật, xóa dữ liệu, thêm mới một số chưc năng dựa vào yêu cầu thực tế
1.1 Phân tích đề tài
1.2 Các nhóm chức năng của hệ thống
- Nhóm chức năng đăng nhập Admin và giáo viên
- Nhóm chức năng quản lý thông tin lớp học, giáo viên và thông tin học sinh của trường
- Nhóm chức năng tìm kiếm thông tin
1.3 Các tác nhân của hệ thống
Giáo vụ: điều hành, quản lý theo dõi mọi hoạt động của hệ thống, thêm
sữa,xóa, cập nhật thông tin của trường, lớp học, giáo viên và học sinh
Giáo viên: điều hành, quản lý điểm của học sinh của lớp mà giáo viên đó
phụ trách, chỉnh sửa và cập nhật thông tin cá nhân
1.4 Biểu đồ ca sử dụng của tác nhân
1.4.1 Tác nhân giáo vụ