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

Xây dựng website hỏi đáp về công nghệ thông tin

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 (5 MB, 80 trang )

ĐẠI HỌC HUẾ
TRƯỜNG ĐẠI HỌC KINH TẾ
KHOA HỆ THỐNG THÔNG TIN KINH TẾ

uế

----------

tế

H

KHOÁ LUẬN TỐT NGHIỆP

nh

XÂY DỰNG WEBSITE HỎI ĐÁP VỀ

Đ

ại

họ

c

Ki

CÔNG NGHỆ THÔNG TIN

SVTH: Thiều Đăng Vũ



Giáo viên hướng dẫn:

Lớp: K47 Tin học kinh tế

Th.S Trần Thái Hoà

Mã SV: 13K4081153

Huế, tháng 05 năm 2017


LỜI CẢM ƠN
Lời đầu tiên, em xin chân thành cảm ơn quý thầy cô đã giúp đỡ em thực hiện đề tài
này. Đặc biệt thầy Trần Thái Hoà đã tận tình, giúp đỡ em trong suốt quá trình thực
hiện khoá luận tốt nghiệp.
Đồng thời em cũng xin cảm ơn Thầy, Cô thuộc khoa Hệ thống thông tin Kinh tế Trường Đại học Kinh Tế Huế đã truyền đạt những kiến thức, kinh nghiệm quý báu
trong suốt thời gian 4 năm trên giảng đường đại học để em có thể thực hiện tốt đề tài
này.
Và cuối cùng, em xin chân thành cảm ơn những người bạn, những anh chị tại CN

uế

Công ty TNHH Phần mềm FPT tại Đà Nẵng đã luôn đồng hành, chỉ bảo nhiệt tình

H

trong quá trình thực tập tại công ty để em có thể hoàn thành đề tài một cách hoàn
thiện nhất.


tế

Trong quá trình thực hiện đề tài, do kiến thức và thời gian còn hạn chế nên không thể

nh

tránh khỏi những sai sót. Mong quý Thầy, Cô thông cảm và góp ý chân thành để em có

Đ

ại

họ

c

Em xin chân thành cảm ơn!

Ki

thể hoàn thiện đề tài và tích luỹ được kiến thức để phát triển thêm sau này.
Huế, ngày … tháng 05 năm 2017
Sinh viên thực hiện
Thiều Đăng Vũ


MỤC LỤC
MỞ ĐẦU.........................................................................................................................1
1.


Lý do chọn đề tài: ...............................................................................................1

2.

Mục tiêu và nhiệm vụ của đề tài: ......................................................................1

3.

Đối tượng và phạm vi nghiên cứu:....................................................................2

4.

Phương pháp nghiên cứu:..................................................................................2

5.

Cấu trúc của khóa luận: ....................................................................................3

CHƯƠNG I. CƠ SỞ LÝ THUYẾT .............................................................................4
Tổng quan về môi trường phát triển tích hợp Eclipse và ngôn ngữ lập trình

uế

1.

Java: ............................................................................................................................4

1.2.

Ngôn ngữ lập trình Java ..............................................................................5


1.3.

Tổng quan về Java EE .................................................................................8

tế

H

Môi trường phát triển tích hợp Eclipse .......................................................4

nh

Tổng quan về hệ quản trị cơ sở dữ liệu Microsoft SQL Server:....................9
2.1.

Ngôn ngữ truy vấn dữ liệu có cấu trúc (Structure Query Language) .......9

2.2.

Hệ quản trị cơ sở dữ liệu SQL Server ...................................................... 10

Ki

2.

1.1.

Giới thiệu về lập trình hướng đối tượng: ...................................................... 10


4.

Mô hình MVC (Model – View – Controller): ............................................... 10
Mô hình MVC là gì ? ................................................................................ 10

4.2.

Các thành phần trong MVC ..................................................................... 11

Đ

ại

4.1.

4.3.
5.

họ

c

3.

Sự tương tác giữa các lớp trong mô hình MVC ...................................... 11

Giới thiệu về framework Struts: .................................................................... 12
5.1.

Khái niệm về framework Struts ................................................................ 12


5.2.

Cấu trúc của framework Struts ................................................................ 12

5.3.

Tiến trình thực thi mô hình MVC của Struts .......................................... 13


CHƯƠNG II. PHÂN TÍCH HỆ THỐNG ................................................................ 14
1.

Mô tả bài toán: ................................................................................................. 14

2.

Phân tích bài toán: .......................................................................................... 15
2.1.

Yêu cầu chất lượng ................................................................................... 15

2.2.

Yêu cầu chức năng.................................................................................... 15

2.2.1. Tổng quát chức năng .............................................................................. 15
2.2.2. Biểu đồ Use Case ................................................................................... 16
2.3.


Mô hình hoá hệ thống............................................................................... 20

2.3.1. Biểu đồ luồng chức năng hệ thống ......................................................... 20

uế

2.3.2. Biểu đồ tuần tự (Sequence Diagram) ..................................................... 22

H

2.3.3. Biểu đồ lớp (Class Diagram) ................................................................. 34
CHƯƠNG III. THIẾT KẾ HỆ THỐNG .................................................................. 42

tế

Mô tả thực thể ........................................................................................... 42

1.2.

Mối liên kết giữa các thực thể .................................................................. 45

1.3.

Mô tả các bảng .......................................................................................... 50

1.4.

Mô hình quan hệ giữa các bảng .............................................................. 55

c


Ki

nh

1.1.

họ

Thiết kế giao diện: ........................................................................................... 56
2.1.

Giao diện đăng nhập ................................................................................. 56

2.2.

Giao diện đăng ký...................................................................................... 56

2.3.

ại

2.

Thiết kế cơ sở dữ liệu: ..................................................................................... 42

Đ

1.


Giao diện trang chủ .................................................................................. 57

2.4.

Giao diện trang quản lý admin ................................................................. 60

2.5.

Giao diện dành cho member ..................................................................... 61

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ................................................................ 64
1.

Kết quả đạt được:.............................................................................................. 64

2.

Hướng phát triển của đề tài: ............................................................................ 65

TÀI LIỆU THAM KHẢO.......................................................................................... 66
PHỤ LỤC .................................................................................................................... 67


DANH MỤC HÌNH ẢNH
Hình 1: Biểu đồ Use Case chức năng của hệ thống. .................................................... 16
Hình 2: Biểu đồ Use Case chức năng xem trang chủ của visitor. ................................ 17
Hình 3: Biểu đồ Use Case chức năng quản lý bài viết của member và admin. ........... 17
Hình 4: Biểu đồ Use Case chức năng quản lý tài khoản của admin............................. 18
Hình 5: Biểu đồ Use Case chức năng quản lý thông tin cá nhân của member............. 18
Hình 6: Biểu đồ Use Case chức năng tìm kiếm............................................................ 19

Hình 7: Biểu đồ Use Case chức năng quản lý Tag của admin. .................................... 19
Hình 8: Luồng chức năng hệ thống dành cho user. ...................................................... 20

uế

Hình 9: Luồng chức năng hệ thống dành cho admin. .................................................. 21

H

Hình 10: Biểu đồ tuần tự hiển thị danh sách câu hỏi.................................................... 22
Hình 11: Biểu đồ tuần tự hiển thị chi tiết câu hỏi. ....................................................... 23

tế

Hình 12: Biểu đồ tuần tự vote up bài viết. ................................................................... 24

nh

Hình 13: Biểu đồ tuần tự vote down bài viết................................................................ 25
Hình 14: Biểu đồ tuần tự tìm kiếm bài viết. ................................................................. 26

Ki

Hình 15: Biểu đồ tuần tự khoá bài viết......................................................................... 27

c

Hình 16: Biểu đồ tuần tự quản lý đăng bài viết. ........................................................... 28

họ


Hình 17: Biểu đồ tuần tự hiển thị danh sách tài khoản. ............................................... 29
Hình 18: Biểu đồ tuần tự khoá tài khoản. ..................................................................... 30

ại

Hình 19: Biểu đồ tuần tự hiển thị danh sách Tag. ........................................................ 31

Đ

Hình 20: Biểu đồ tuần tự tìm kiếm Tag. ....................................................................... 31
Hình 21: Biểu đồ tuần tự đăng nhập. ............................................................................ 32
Hình 22: Biểu đồ tuần tự đăng xuất.............................................................................. 33
Hình 23: Biểu đồ lớp Bean. .......................................................................................... 34
Hình 24: Biểu đồ lớp hiển thị danh sách câu hỏi. ........................................................ 35
Hình 25: Biểu đồ lớp hiển thị chi tiết câu hỏi. ............................................................. 36
Hình 26: Biểu đồ lớp tương tác bài viết. ...................................................................... 37
Hình 27: Biểu đồ lớp quản lý bài viết. ......................................................................... 38
Hình 28: Biểu đồ lớp quản lý đăng bài viết.................................................................. 39
Hình 29: Biểu đồ lớp quản lý tài khoản........................................................................ 39


Hình 30: Biểu đồ lớp quản lý thông tin cá nhân........................................................... 40
Hình 31: Biểu đồ lớp quản lý Tag. ............................................................................... 41
Hình 32: Biểu đồ lớp đăng nhập – đăng xuất. .............................................................. 41
Hình 33: Mối liên kết giữa Account và Question......................................................... 45
Hình 34: Mối liên kết giữa Question và Tag. ............................................................... 46
Hình 35: Mối liên kết giữa Account và Tag. ................................................................ 46
Hình 36: Mối liên kết giữa Account, Question và VoteQuestion. ............................... 47
Hình 37: Mối liên kết giữa Account, Answer và VoteAnswer. ................................... 48

Hình 38: Mối liên kết giữa Account, Answer và Question. ......................................... 49

uế

Hình 39: Quan hệ giữa các bảng. ................................................................................. 55
Hình 40: Giao diện đăng nhập. ..................................................................................... 56

H

Hình 41: Giao diện đăng ký.......................................................................................... 56

tế

Hình 42: Giao diện trang chủ dành cho visitor. ........................................................... 57

nh

Hình 43: Giao diện trang chủ menu Tags..................................................................... 57
Hình 44: Giao diện trang chủ menu Thành viên. ......................................................... 58

Ki

Hình 45: Giao diện trang chủ tìm kiếm câu hỏi. .......................................................... 58

c

Hình 46: Giao diện trang chủ tìm kiếm thành viên. ..................................................... 59

họ


Hình 47: Giao diện trang chủ dành cho member.......................................................... 59
Hình 48: Giao diện trang quản lý bài viết dành cho admin.......................................... 60

ại

Hình 49: Giao diện trang quản lý Tags dành cho admin. ............................................. 60

Đ

Hình 50: Giao diện trang quản lý tài khoản dành cho admin. ...................................... 61
Hình 51: Giao diện trang đặt câu hỏi dành cho member. ............................................. 61
Hình 52: Giao diện trang chi tiết câu hỏi dành cho member. ....................................... 62
Hình 53: Giao diện trang trả lời câu hỏi dành cho member. ........................................ 62
Hình 54: Giao diện vote câu hỏi/câu trả lời dành cho member. ................................... 63


DANH MỤC BẢNG
Bảng 1: Bảng tblQuestion ............................................................................................ 50
Bảng 2: Bảng tblAnswer. ............................................................................................. 51
Bảng 3: Bảng tblAccount ............................................................................................. 53
Bảng 4: Bảng tblTag. .................................................................................................... 53
Bảng 5: Bảng tblquestion_tag. ..................................................................................... 53
Bảng 6: Bảng tblAccountTag. ...................................................................................... 54
Bảng 7: Bảng tblVoteQuestion ..................................................................................... 54
Bảng 8: Bảng tblVoteAnswer ....................................................................................... 54

Đ

ại


họ

c

Ki

nh

tế

H

uế

Bảng 9: Bảng tblAdmin. ............................................................................................... 55


XÂY DỰNG WEBSITE HỎI ĐÁP VỀ CÔNG NGHỆ THÔNG TIN

MỞ ĐẦU
1. Lý do chọn đề tài:
Hiện nay, có rất nhiều ngôn ngữ lập trình được sử dụng trên thế giới và mỗi
ngôn ngữ đều có những thế mạnh riêng của nó. Ngôn ngữ lập trình Java không
phải là ngoại lệ, Java là một trong những ngôn ngữ lập trình mạnh và được sử
dụng rất nhiều trong việc phát triển phần mềm, những trang web động, game
hay ứng dụng trên các thiết bị di động. Ngôn ngữ lập trình Java đã và đang trở
nên lớn mạnh hơn bao giờ hết.
Bên cạnh đó, công nghệ thông tin (CNTT) là một ngành công nghiệp bao gồm

uế


nhiều kiến thức rộng rãi, đồng thời những công nghệ mới liên tục xuất hiện đòi

H

hỏi bản thân những người làm trong ngành phải không ngừng tìm hiểu và phát
triển những công nghệ đó. Cho nên, việc hỏi đáp và trao đổi kiến thức về công

tế

nghệ thông tin mất khá nhiều thời gian. Chính vì thế, việc xây dựng một nơi có

nh

thể kết nối cộng đồng những người làm việc hay mong muốn được làm việc
trong ngành công nghệ thông tin là rất cần thiết.

Ki

Từ những lý do trên, tôi chọn đề tài “Xây dựng Website hỏi đáp về công nghệ

c

thông tin” làm hướng nghiên cứu cho đề tài.

họ

2. Mục tiêu và nhiệm vụ của đề tài:
a. Mục tiêu: Mục tiêu của đề tài này là xây dựng một website với giao diện


ại

trực quan, là nơi mọi người có thể tương tác với nhau để trao đổi kiến thức,

Đ

góp ý một cách dễ dàng.

b. Nhiệm vụ:
-

Nghiên cứu và nắm vững quy trình xây dựng một website hoàn chỉnh và
các hoạt động của nó.

-

Nghiên cứu các công cụ, framework được sử dụng để xây dựng website:
ngôn ngữ Java, framework Struts, mô hình MVC,...

SVTH: THIỀU ĐĂNG VŨ – K47 TIN HỌC KINH TẾ

1


XÂY DỰNG WEBSITE HỎI ĐÁP VỀ CÔNG NGHỆ THÔNG TIN

3. Đối tượng và phạm vi nghiên cứu:
a. Đối tượng: Sử dụng ngôn ngữ lập trình Java trong việc xây dựng website
hỏi đáp về công nghệ thông tin.
b. Phạm vi nghiên cứu:

-

Địa điểm: Tòa nhà FPT Complex, đường Nam Kỳ Khởi Nghĩa, P.Hòa
Hải, Q.Ngũ Hành Sơn, TP Đà Nẵng.

-

Thời gian: Từ ngày 03/01/2017 đến hết ngày 03/04/2017.

4. Phương pháp nghiên cứu:
Để nghiên cứu và xây dựng website hỏi đáp về công nghệ thông tin, tác giả đã

uế

sử dụng các phương pháp sau trong quá trình thực hiện đề tài:
a. Quá trình thu thập dữ liệu sử dụng những phương pháp sau:

H

• 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

tế

liệu, sách liên quan đến đề tài, các website tương tự để đánh giá những

nh

ưu và nhược điểm, đồng thời kết hợp với những kiến thức đạt được trong
quá trình thực tập để đề ra hướng xây dựng website hoàn chỉnh, trực


Ki

quan, dễ tương tác.

c

• Phương pháp phân tích, đánh giá: dựa vào việc quan sát, nhìn nhận vấn

họ

đề thực tế, áp dụng những kiến thức, công nghệ cần thiết từ đó hoàn
thiện đề tài.

ại

• Phương pháp tổng hợp: hoàn thiện khoá luận dựa trên những kiến thức

Đ

cơ bản đã thu nhận được trong quá trình học tập và những tài liệu, kiến

thức tích luỹ được trong quá trình chủ động học hỏi, tìm kiếm.

b. Giai đoạn phân tích thiết kế và thực hiện sử dụng những phương pháp sau:
• 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, cùng với kiến thức và
nền tảng công nghệ hiện có để tiến hành xây dựng website hỏi đáp về
công nghệ thông tin.

SVTH: THIỀU ĐĂNG VŨ – K47 TIN HỌC KINH TẾ


2


XÂY DỰNG WEBSITE HỎI ĐÁP VỀ CÔNG NGHỆ THÔNG TIN

• 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 và framework
Struts với hệ quản trị CSDL Microsoft SQL Server để xây dựng và quản
lý website.
5. Cấu trúc của khóa luận:
Ngoài phần mở đầu và kết luận, phần nội dung của khóa luận bao gồm:
Chương I: Cơ sở lý thuyết. Chương này sẽ trình bày khái quát về lịch sử hình
thành và phát triển, các đặc điểm của ngôn ngữ lập trình Java, framework Struts
và tầm quan trọng của việc ứng dụng framework Struts trong quá trình xây

uế

dựng một website.

Chương II: Phân tích hệ thống. Chương này đề cập đến thực trạng, sau đó sẽ

H

đi sâu vào việc phân tích bài toán, thiết kế cơ sở dữ liệu và áp dụng framework

tế

Struts để xây dựng hệ thống.


nh

Chương III: Thiết kế hệ thống. Chương này đề cập đến việc thiết kế cơ sở dữ

Đ

ại

họ

c

Ki

liệu, thiết kế giao diện website và kết quả chạy thử website.

SVTH: THIỀU ĐĂNG VŨ – K47 TIN HỌC KINH TẾ

3


XÂY DỰNG WEBSITE HỎI ĐÁP VỀ CÔNG NGHỆ THÔNG TIN

CHƯƠNG I. CƠ SỞ LÝ THUYẾT
1. Tổng quan về môi trường phát triển tích hợp Eclipse và ngôn ngữ lập trình
Java:
1.1. Môi trường phát triển tích hợp Eclipse
a. Tổng quan về Eclipse
Eclipse là một môi trường phát triển tích hợp cho ngôn ngữ lập trình
Java, được phát triển ban đầu bởi IBM, và hiện nay bởi tổ chức Eclipse.

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

uế

cho project (PDE - Plug-in Development Environment). Mặc dù Eclipse

H

đượ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

tế

thêm các plugins để hỗ trợ cho các ngôn ngữ lập trình như PHP, C, C++,

nh

C#, Python, HTML, XML, Javascript,…
b. Ưu điểm và nhược điểm của Eclipse

Ki

• Ưu điểm:

c

- Hỗ trợ xây dựng nhiều công cụ lập trình.

họ


- Không hạn chế các nhà cung cấp công cụ.
- Hỗ trợ các công cụ như: HTML, C, Java, XML, JSP, GIF, EJB,…

ại

- Hỗ trợ môi trường phát triển GUI.

Đ

- Chạy trên nhiều hệ điều hành, bao gồm cả Windows và Linux.

- Do sử dụng SWT/JFace nên có lẽ load nhanh hơn.

• Nhược điểm:
- Cài đặt phức tạp.
- Tốn khá nhiều bộ nhớ của máy tính để cài đặt và sử dụng.
- Thiếu tính nhất quán vì có nhiều plugins.

SVTH: THIỀU ĐĂNG VŨ – K47 TIN HỌC KINH TẾ

4


XÂY DỰNG WEBSITE HỎI ĐÁP VỀ CÔNG NGHỆ THÔNG TIN

1.2. Ngôn ngữ lập trình Java
a. Java là gì?
Java (đọc như “Gia-va”) vừa là một ngôn ngữ lập trình mà cũng vừa là
một nền tảng (platform), cú pháp ngôn ngữ Java có phần giống với ngôn

ngữ C và C++.
Java được tạo ra với tiêu chí viết một lần, thực thi khắp mọi nơi (Write
Once, Run Anywhere). Những chương trình phần mềm được viết bằng
ngôn ngữ lập trình Java có thể chạy trên mọi nền tảng (platform) khác

uế

nhau với điều kiện cần phải có môi trường máy ảo Java (JVM – Java
Virtual Machine). Một số nền tảng hiện nay hỗ trợ Java chẳng hạn

tế

H

như Sun Solaris, Linux, Mac OS, FreeBSD & Windows…
b. Lịch sử phát triển của ngôn ngữ lập trình Java

nh

Ngôn ngữ lập trình Java do James Gosling và các cộng sự của Công ty

Ki

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

họ

c


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

ại

đề 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
Microsystem đã 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.

SVTH: THIỀU ĐĂNG VŨ – K47 TIN HỌC KINH TẾ

5


XÂY DỰNG WEBSITE HỎI ĐÁP VỀ CÔNG NGHỆ THÔNG TIN

c. Đặ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ả 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
xong chỉ có thể chạy trên một kiến trúc CPU cụ thể nào đó. Đối với
CPU chúng ta có thể chạy các hệ điều hành như Microsoft Windows,
Unix, Linux,…

uế

Chương tình thực thi được trên Window được biên dịch dưới dạng file
có đuôi .EXE, còn trên Linux được biên dịch dưới dạng file có đuôi

H

.ELF. Vì vậy trước đây một chương trình muốn chạy được trên hệ

tế

điều hành khác như Linux chẳng hạn thì phải chỉnh sửa và biên dịch

nh

lại.

Ngôn ngữ lập trình Java ra đời, nhờ vào máy ảo mà khó khăn nêu trên

Ki

đã được khắc phục. Một chương tình viết bằng ngôn ngữ lập trình

c


Java sẽ được biên dịch ra mã của máy ảo Java. Sau đó máy ảo Java

họ

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

ại

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, Mac OS,…)
với điều kiện ở đó có cài đặt máy ảo Java (Java Virtual Machine).

SVTH: THIỀU ĐĂNG VŨ – K47 TIN HỌC KINH TẾ

6



XÂY DỰNG WEBSITE HỎI ĐÁP VỀ CÔNG NGHỆ THÔNG TIN

- 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 (hàm main) 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 (multi inheritance) 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)

uế

Java hỗ trợ lập trình đa nhiệm, đa luồng cho phép nhiều tiến trình, tiểu

H

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)

tế

Chương trình ứng dụng viết bằng ngôn ngữ Java chỉ cần chạy được

nh

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,


Ki

Run Anywhere).

c

- Hỗ trợ mạnh cho việc phát triển ứng dụng

họ

Công nghệ Java phát triển mạnh mẽ chính là nhờ vào “đại gia Sun
Microsystem” cung cấp nhiều công cụ, thư viện lập trình phong phú

ại

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,…


SVTH: THIỀU ĐĂNG VŨ – K47 TIN HỌC KINH TẾ

7


XÂY DỰNG WEBSITE HỎI ĐÁP VỀ CÔNG NGHỆ THÔNG TIN

1.3. Tổng quan về Java EE
Java EE (Enterprise Edition) là một nền tảng được sử dụng rộng rãi, chứa
một tập hợp các công nghệ được phối hợp với nhau, làm giảm đáng kể chi
phí và độ phức tạp của việc phát triển, triển khai và quản lý các tầng làm
việc, các ứng dụng máy chủ trung tâm. Java EE được xây dựng dựa trên
nền tảng Java SE và cung cấp thêm một tập các API (giao diện lập trình
ứng dụng) để phát triển và hoạt động các ứng dụng phía máy chủ (Server Side Applications) một cách mạnh mẽ, có khả năng mở rộng, đáng tin cậy,
di động (portable) và bảo mật.

uế

Một số thành phần cơ bản của Java EE bao gồm:

• Enterprise Java Beans (EJB): một thành phần kiến trúc của các ứng

H

dụng server được quản lý, sử dụng để bao gói (encapsulate) các business

tế

logic của các ứng dụng. Công nghệ EJB cho phép phát triển nhanh chóng


nh

và đơn giản hóa các ứng dụng phân tán, các giao dịch an toàn và di động
dựa trên công nghệ Java.

Ki

• Java Persistence API (JPA): một framework cho phép nhà phát triển

c

quản lý dữ liệu bằng cách sử dụng ánh xạ đối tượng quan hệ (Object

họ

Relational Mapping - ORM) trong các ứng dụng được xây dựng trên nền

Đ

ại

tảng Java.

SVTH: THIỀU ĐĂNG VŨ – K47 TIN HỌC KINH TẾ

8


XÂY DỰNG WEBSITE HỎI ĐÁP VỀ CÔNG NGHỆ THÔNG TIN


2. Tổng quan về hệ quản trị cơ sở dữ liệu Microsoft SQL Server:
2.1. Ngôn ngữ truy vấn dữ liệu có cấu trúc (Structure Query Language)
SQL (Structure Query Language) là một công cụ quản lý dữ liệu được sử
dụng phổ biển ở nhiều lĩnh vực và nó 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ệ. Hầu hết các ngôn ngữ bậc cao đều có
trình hỗ trợ SQL như Java, C#, C, C++,…
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:

uế

- Định nghĩa dữ liệu: SQL cung cấp khả năng định nghĩa các cơ sở dữ

H

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

tế

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

nh

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

Ki

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

họ

c

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.

ại

- Đả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 như các lỗi của hệ thống.

SQL là một ngôn ngữ hoàn thiện được sử dụng trong các hệ thống cơ sở dữ
liệu và là một thành phần không thể thiếu trong các hệ quản trị cơ sở dữ
liệu.
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ụ.

SVTH: THIỀU ĐĂNG VŨ – K47 TIN HỌC KINH TẾ

9



XÂY DỰNG WEBSITE HỎI ĐÁP VỀ CÔNG NGHỆ THÔNG TIN

2.2. Hệ quản trị cơ sở dữ liệu SQL Server
SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (Relational Database
Management System (RDBMS)) sử dụng câu lệnh SQL (Transact SQL) để trao đổi dữ liệu giữa máy Client và máy cài SQL Server. 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.
SQL Server đượ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ụ
3. Giới thiệu về lập trình hướng đối tượng:

uế

cùng lúc cho hàng ngàn người dùng (user).

H

Lập trình hướng đối tượng (gọi tắt là OOP, từ chữ Anh ngữ object-oriented

tế

programming), hay còn gọi là lập trình định hướng đối tượng, là kĩ thuật lập
trình hỗ trợ công nghệ đối tượng. OOP được xem là giúp tăng năng suất, đơn

nh

giản hóa độ phức tạp khi bảo trì cũng như mở rộng phần mềm bằng cách cho

Ki


phép lập trình viên tập trung vào các đối tượng phần mềm ở bậc cao hơn.

c

Lập trình hướng đối tượng nhằm giảm nhẹ các thao tác viết mã cho người lập

họ

trình, cho phép họ tạo ra các ứng dụng mà các yếu tố bên ngoài có thể tương tác

ại

với các chương trình đó giống như là tương tác với các đối tượng vật lý.

Đ

4. Mô hình MVC (Model – View – Controller):
4.1. Mô hình MVC là gì ?
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 vào 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 lẻ. 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.

SVTH: THIỀU ĐĂNG VŨ – K47 TIN HỌC KINH TẾ


10


XÂY DỰNG WEBSITE HỎI ĐÁP VỀ CÔNG NGHỆ THÔNG TIN

4.2. Các thành phần trong MVC
Model: là nơi chứa những nghiệp vụ tương tác với dữ liệu hoặc hệ quản trị
cơ sở dữ liệu (mysql, mssql,…) nó sẽ bao gồm các class/function xử lý
nhiều nghiệp vụ như kết nối database, truy vấn dữ liệu, thêm sửa xóa dữ
liệu.
View: là nơi chứa những giao diện như một nút bấm, khung nhập, menu,
hình ảnh,… nó đảm nhiệm hiển thị dữ liệu và giúp người dùng tương tác
với hệ thống.
Controller: là nơi tiếp nhận những yêu cầu xử lý được gửi từ người dùng,

uế

nó sẽ gồm những class/function xử lý nhiều nghiệp vụ logic giúp lấy đúng
dữ liệu thông tin cần thiết nhờ các nghiệp vụ lớp Model cung cấp và hiển

H

thị dữ liệu đó ra cho người dùng nhờ lớp View.

tế

4.3. Sự tương tác giữa các lớp trong mô hình MVC

nh


Controller – View sẽ lấy hình ảnh, nút bấm,… hoặc hiển thị dữ liệu được
trả ra từ Controller để người dùng có thể quan sát và thao tác. Trong sự

Ki

tương tác này cũng có thể không có dữ liệu được lấy từ Model và khi đó nó

c

chỉ chịu trách nhiệm hiển thị đơn thuần như hình ảnh, nút bấm,…

họ

Controller – Model là luồng xử lý khi Controller tiếp nhận yêu cầu và các
tham số đầu vào từ người dùng, Controller sẽ sử dụng các lớp/hàm trong

ại

Model cần thiết để lấy ra những dữ liệu chính xác.

Đ

View – Model có thể tương tác với nhau mà không qua Controller, nó chỉ

đảm nhận hiển thị dữ liệu chứ không phải qua bất kỳ xử lý nghiệp vụ logic
nào. Nó giống như các vùng dữ liệu hiển thị tĩnh trên các website như block
slidebar,…

SVTH: THIỀU ĐĂNG VŨ – K47 TIN HỌC KINH TẾ


11


XÂY DỰNG WEBSITE HỎI ĐÁP VỀ CÔNG NGHỆ THÔNG TIN

5. Giới thiệu về framework Struts:
5.1. Khái niệm về framework Struts
Struts là một framework phục vụ việc phát triển các ứng dụng Web trên
Java. Sử dụng mẫu thiết kế Model – View – Controller (MVC), Struts giải
quyết rất nhiều các vấn đề liên quan đến các ứng dụng Web hướng business
đòi hỏi hiệu năng cao với việc sử dụng Java Servlet và JSP.
Struts là một tập thư viện các thẻ JSP tùy chọn (Custom JSP Tag). Struts
cung cấp các thư viện thẻ tùy chọn cho việc thể hiện các thuộc tính của
bean, quản lý các HTML forms, lặp lại các kiểu cấu trúc dữ liệu, và đưa ra

uế

các HTML có điều kiện.

Đ

ại

họ

c

Ki


nh

tế

H

5.2. Cấu trúc của framework Struts

-

Trong Struts, chỉ có 1 Servlet duy nhất là ActionServlet (được hệ thống
ẩn đi). Do không sử dụng Servlet nào khác nên hệ thống sẽ thay thế bằng
Action và Struts-config.xml.

-

Struts phải tuân thủ các quy định của mô hình MVC, phân rõ chức năng
của từng tầng.

-

Một Action có thể hiểu đơn giản là một màn hình, làm nhiệm vụ điều
hướng.

SVTH: THIỀU ĐĂNG VŨ – K47 TIN HỌC KINH TẾ

12


XÂY DỰNG WEBSITE HỎI ĐÁP VỀ CÔNG NGHỆ THÔNG TIN


-

Một ActionForm có thể hiểu đơn giản là để chứa tất cả các dữ liệu cần
thiết của một Action. ActionForm được hiểu tương tự như javabean, có
dữ liệu (kiểu private) và các phương thức set/get.

-

Mỗi Action chỉ có thể có một ActionForm.

-

Một ActionForm có thể có nhiều javabean khác nhau.

c

Ki

nh

tế

H

uế

5.3. Tiến trình thực thi mô hình MVC của Struts

họ


1. Một yêu cầu (request) được gửi đến từ View.
2. ActionServlet sẽ tiếp nhận request này, phân tích, kiểm tra. Sau đó chỉ

ại

định cho Action tương ứng thực thi yêu cầu, tính toán những tác vụ cần

Đ

thiết.

ActionServlet đóng vai trò là Controller.

3. Action sẽ thao tác và xử lí trên Model của ứng dụng.
4. Mỗi khi Action hoàn thành việc thao tác và xử lí, nó trả quyền điều
khiển về cho ActionServlet kèm theo một key gắn kèm với kết quả trả
về. ActionServlet sẽ dựa vào key này mà quyết định xem các kết quả trả
về sẽ được hiển thị như thế nào.
5. ActionServlet trả lời bằng cách gửi lại một request cho View, đó là một
liên kết đến kết quả trả về của Action thông qua key trên. Sau đó, View
làm nốt công việc trình bày kết quả.
SVTH: THIỀU ĐĂNG VŨ – K47 TIN HỌC KINH TẾ

13


XÂY DỰNG WEBSITE HỎI ĐÁP VỀ CÔNG NGHỆ THÔNG TIN

CHƯƠNG II. PHÂN TÍCH HỆ THỐNG

1. Mô tả bài toán:
Website hỏi đáp về công nghệ thông tin hoạt động chủ yếu phục vụ ba đối
tượng cơ bản: người dùng vãng lai (visitor), thành viên (member) và người
quản trị website (admin).

- Đối với người dùng vãng lai (visitor):
o Người dùng vãng lai có thể xem nội dung website chẳng hạn như

uế

xem bài viết, tags, thông tin cơ bản của các thành viên.

o Người dùng vãng lai cũng có thể tìm kiếm bài viết, tags, thành

H

viên.

tế

- Đối với thành viên (member):

nh

o Thành viên là người dùng sau khi đã đăng ký tài khoản thành

Ki

công.


c

o Thành viên có thể đăng câu hỏi, đăng câu trả lời.

họ

o Thành viên có thể bình chọn câu hỏi, câu trả lời mà thành viên
cảm thấy hay nhất, nhưng không thể bình chọn câu hỏi hoặc câu

Đ

ại

trả lời mà chính thành viên đó đăng.

o Thành viên có thể nhận hoặc mất điểm uy tín tương ứng theo quy
ước tính điểm của hệ thống.

- Đối với người quản trị website (admin):
o Admin là người có quyền quản trị website cao nhất.
o Admin là người bảo mật an ninh của website.
o Admin có thể thêm, sửa, xoá dữ liệu bài viết, tags, tài khoản có
trong hệ thống.

SVTH: THIỀU ĐĂNG VŨ – K47 TIN HỌC KINH TẾ

14


XÂY DỰNG WEBSITE HỎI ĐÁP VỀ CÔNG NGHỆ THÔNG TIN


2. Phân tích bài toán:
2.1. Yêu cầu chất lượng

- Giao diện đơn giản, dễ sử dụng.
- Ngôn ngữ tiếng Việt.
- Có tính bảo mật, an toàn.
- Tốc độ xử lý nhanh chóng, dễ dàng.
2.2. Yêu cầu chức năng

uế

2.2.1. Tổng quát chức năng

H

Hiện tại hệ thống gồm có các tác nhân đó là: Admin, Member và

tế

Visitor. Mỗi tác nhân đều có chức năng riêng của mình.
Miêu tả

Admin

Là người quản trị hệ thống. Họ có thể thêm, sửa, xóa dữ

nh

Tác nhân


Ki

liệu bài viết, tags, tài khoản có trong hệ thống hoặc
thống kê tài khoản, bài viết, tags để xem xét xu hướng,

Member

họ

c

nhu cầu, mức độ mở rộng dữ liệu.

Là một thành viên của hệ thống, họ có thể đăng câu hỏi,

Đ

ại

trả lời một câu hỏi của thành viên khác. Thông qua câu
hỏi và câu trả lời thành viên có thể nhận/mất điểm uy tín
tương ứng theo những quy ước tính điểm của hệ thống.
Nếu thành viên có những đóng góp tích cực thì họ có
thể trở thành một công tác viên với những đặc quyền
của admin.

Visitor

Là người dùng truy cập vào website nhưng không phải

là thành viên. Họ có thể xem, tìm kiếm các bài viết,
tags, thông tin cơ bản của các thành viên.

SVTH: THIỀU ĐĂNG VŨ – K47 TIN HỌC KINH TẾ

15


XÂY DỰNG WEBSITE HỎI ĐÁP VỀ CÔNG NGHỆ THÔNG TIN

Đ

ại

họ

c

Ki

nh

tế

H

uế

2.2.2. Biểu đồ Use Case


Hình 1: Biểu đồ Use Case chức năng của hệ thống.

SVTH: THIỀU ĐĂNG VŨ – K47 TIN HỌC KINH TẾ

16


XÂY DỰNG WEBSITE HỎI ĐÁP VỀ CÔNG NGHỆ THÔNG TIN

tế

H

uế

2.2.2.1. Chức năng xem trang chủ

nh

Hình 2: Biểu đồ Use Case chức năng xem trang chủ của visitor.

Đ

ại

họ

c

Ki


2.2.2.2. Chức năng quản lý bài viết

Hình 3: Biểu đồ Use Case chức năng quản lý bài viết của member và admin.
SVTH: THIỀU ĐĂNG VŨ – K47 TIN HỌC KINH TẾ

17


XÂY DỰNG WEBSITE HỎI ĐÁP VỀ CÔNG NGHỆ THÔNG TIN

tế

H

uế

2.2.2.3. Chức năng quản lý tài khoản

nh

Hình 4: Biểu đồ Use Case chức năng quản lý tài khoản của admin.

Đ

ại

họ

c


Ki

2.2.2.4. Chức năng quản lý thông tin cá nhân

Hình 5: Biểu đồ Use Case chức năng quản lý thông tin cá nhân của member.

SVTH: THIỀU ĐĂNG VŨ – K47 TIN HỌC KINH TẾ

18


×