Tải bản đầy đủ (.pdf) (51 trang)

Đồ án cơ sở ngành mạng đường ống pipe, website servlet quản lý hồ sơ học sinh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.35 MB, 51 trang )

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

SVTH: Phạm Hồng Nguyên

Page 1


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

SVTH: Phạm Hồng Nguyên

Page 2


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.

SVTH: Phạm Hồng Nguyên

Page 3


PHẦN I. NGUYÊN LÝ HỆ ĐIỀU HÀNH
TIÊU ĐỀ: GIAO TIẾP GIỮA CÁC TIẾN TRÌNH BẰNG ĐƯỜNG ỐNG
PIPE
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1. Bối cảnh và mục tiêu
Trên hệ điều hành Linux việc giao tiếp giữa các tiến trình được thực hiện
thông qua nhiều cơ chế trao đổi dữ liệu, trong đó có cơ chế Pipe. Mục tiêu của đề tài
giú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
có cấu hình yếu.
Linux là một hệ điều hành đa người dùng, đa chương trình và đa xử lý, hỗ trợ
nhiều giao thức mạng khác nhau, hỗ trợ các cơ chế giao tiếp như Pipe, Sockets…
Bên cạnh đó, Linux cũng có những nhược điểm nhất định như : Số lượng
ứng dụng hạn chế, khó làm quen vì trước đó đã quen thuộc với HĐH Windows, một
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

SVTH: Phạm Hồng Nguyên

Page 4


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

SVTH: Phạm Hồng Nguyên

Page 5


đó.

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.

SVTH: Phạm Hồng Nguyên


Page 6


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:
SVTH: Phạm Hồng Nguyên

Page 7


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:

SVTH: Phạm Hồng Nguyên

Page 8


+ 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:

SVTH: Phạm Hồng Nguyên

Page 9


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

int rc,i,j;
close(PIPE1_DOC); // Dóng các dau ong khong dung den
close(PIPE1_GHI);
rc=write(PIPE0_GHI,mang,100*sizeof(int)); // Ghi du lieu doc duoc vao pipe
if (rc==-1){
perror("Error");
close(PIPE0_DOC);
close(PIPE0_GHI);
exit(1);
}

* Đọ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
if (rc<=0){
perror("Error");
close(PIPE0_DOC);
close(PIPE0_GHI);
exit(1);
}
SVTH: Phạm Hồng Nguyên

Page 10


for(i=0;i<=dem;i++){
j=0;
if(i==dem) cout<<"Tong cac so trong day:";
while(mang[i][j]!='\0') {
cout<<" "<

j++;
}
cout<}
close(PIPE0_DOC);
close(PIPE0_GHI);
write_file();

// Goi ham ghi du lieu vao file

exit(0);
}
4.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.
* Đọc dữ liệu từ Pipe
void tientrinh_con(int *con_toi_cha,int *cha_toi_con) {
int rc,i,j,m,n,tam;
int b[10][10];
close(PIPE0_DOC);
close(PIPE0_GHI);
rc=read(PIPE1_DOC,b,100*sizeof(int));
if (rc<=0){

SVTH: Phạm Hồng Nguyên

Page 11



perror("Error");
close(PIPE1_DOC);
close(PIPE1_GHI);
exit(1);
}
* 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
if (rc==-1){
perror("Error");
close(PIPE1_DOC);
close(PIPE1_GHI);
}

close(PIPE1_DOC);
close(PIPE1_GHI);
exit(0);
}

SVTH: Phạm Hồng Nguyên

Page 12


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)
SVTH: Phạm Hồng Nguyên

Page 13



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:

SVTH: Phạm Hồng Nguyên

Page 14


File input.txt sau khi xử lý:

4. Đánh giá kết quả
Chương trình đã đáp ứng được yêu cầu của bài toán về việc giao tiếp giữa
các quá trình bằng ống pipe trên nền Linux.

SVTH: Phạm Hồng Nguyên

Page 15


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ố.


SVTH: Phạm Hồng Nguyên

Page 16


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ở.
2. Hướng phát triển
Đồ án chỉ dừng lại trong phạm vi tìm hiểu sự giao tiếp giữa các tiến trình
bằng cơ chế đường ống và viết chương trình mô phỏng đơn giản.
Pipe là chỉ một trong rất nhiều cơ chế giao tiếp giữa các tiến trình của Linux.
Khi đã nắm chắc Pipe ta có thể dễ dàng nắm được các kiểu giao tiếp khác như : Tín
hiệu (Signal), Vùng nhớ chia sẻ, Trao đổi thông điệp (Message), Sockets.
Đâ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.

SVTH: Phạm Hồng Nguyên

Page 17


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:


SVTH: Phạm Hồng Nguyên

Page 18







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.
Ví dụ:

<html>
<head>
<title>Chèn CSS cách 1</title>
<! Chen CSS vào giữa cặp thẻ sau: >
<style type="text/css">
//Nội dung CSS đặt bên trong đây
</style>
</head>
<body>
//Nội dung
</body>
</html>

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.
<html>
<head>
<title>Chèn CSS cách 2</title>
</head>
<body>

khoảng trắng">
</body>
</html>

Cách 3: Liên kết với một file *.css bên ngoài.
SVTH: Phạm Hồng Nguyên

Page 19




Đâ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ỉ
cần viết: href=”Nếu file *.css không cùng thư mục với trang web: Bạn cần chỉ trong đường dẫn
tuyệt đối tới file *.css đó trong thuộc tính href
Ví dụ:
<html>
<head>
<title>Chèn CSS cách 3</title>
<link rel="stylesheet" href="css_name.css" type="text/css" />
</head>
<body>
//Nội dung
</body>
</html>

2.1.3 Ngôn ngữ JavaScript
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 …
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.
SVTH: Phạm Hồng Nguyên

Page 20


JavaScript là một ngôn ngữ lập trình dễ học.
Javascript là một ngôn ngữ có đặc tính:
Đơn giản.
Động (Dynamic).
Hướng đối tượng (Object Oriented).
2.2 Sevlet, JSP và mô hình MVC
2.2.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
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
SVTH: Phạm Hồng Nguyên

Page 21


HTML code hoặc XHTML code, phần tử XHTML, và các JSP actions và câu lệnh
JSP được nhúng.
Sử dụng JSP, bạn có thể thu thập input từ người dùng thông qua các
Webpage Form, trình bày các record từ một Database hoặc đăng ký quyền ưu tiên
của người dùng, truy cập các thành phần JavaBeans, truyền điều khiển giữa các
page và chia sẻ thông tin giữa các Request, page, …
Chu trình sống của JSP
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 bỏ trang ra khỏi bộ nhớ. Chu trình sống của trang

JSP gồm có 5 giai đoạn sau:
- Biên dịch trang
- Nạp trang
- Khởi tạo
- Thực thi
- Dọn dẹp
2.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
2.3.1 Công cụ lập trình Eclipse
Eclipse là 1 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. 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, ...

SVTH: Phạm Hồng Nguyên

Page 22


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.
2.3.2 Apache Tomcat

Apache Tomcat là một Java Servlet được phát triển bởi Apache Software
Foundation (ASF). Tomcat thi hành các ứng dụng Java Servlet và JavaServer Pages
(JSP) từ Sun Microsystems, và cung cấp một máy chủ HTTP cho ngôn ngữ Java
thuần túy để thực thi các chương trình lệnh viết bằng ngôn ngữ Java.
Để 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), ECommerce Server, Proxy Server ...

SVTH: Phạm Hồng Nguyên

Page 23


CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
1. Phân tích hệ thống

Website phục vụ việc quản lý hồ sơ học sinh ở một trường tiểu học cụ
thể là hệ thống cung cấp cho người sử dụng và người quản lý những chức
năng cần thiết để xem, cập nhật, chỉnh sửa thông tin liên quan đến việc quản
lý 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ụ

SVTH: Phạm Hồng Nguyên

Page 24


SVTH: Phạm Hồng Nguyên

Page 25


×