Tải bản đầy đủ (.docx) (48 trang)

Đồ án tốt nghiệp: Xây dựng Website giới thiệu mỹ phẩm

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 (895 KB, 48 trang )

TRƯỜNG ĐẠI HỌC VINH
VIỆN KỸ THUẬT VÀ CÔNG NGHỆ

NGUYỄN THỊ NGỌC

XÂY DỰNG WEBSITE GIỚI THIỆU
MỸ PHẨM

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN

Nghệ An – 05/2019


TRƯỜNG ĐẠI HỌC VINH
VIỆN KỸ THUẬT VÀ CÔNG NGHỆ

XÂY DỰNG WEBSITE GIỚI THIỆU
MỸ PHẨM

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN

Giảng viên hướng dẫn: ThS. HỒ THỊ HUYỀN THƯƠNG
Sinh viên thực hiện: NGUYỄN THỊ NGỌC
Mã sinh viên: 145D4802010026
Lớp: 55K2 CNTT

Nghệ An – 05/2019



LỜI CAM ĐOAN

Em xin cam đoan đây là bản báo cáo đồ án của riêng em với đề tài “Xây
dựng website giới thiệu mỹ phẩm” và được sự hướng dẫn chỉ dạy của giảng viên,
ThS. Hồ Thị Huyền Thương. Các nội dung, kết quả cũng như số liệu trong đề tài
này là trung thực và chưa được công bố dưới bất kỳ hình thức nào.
Nếu phát hiện có bất kỳ sự gian lận nào, em xin chịu hoàn toàn trách
nhiệm về nội dung đồ án của mình.

Nghê A
̣ n, ngày 15 tháng 05 năm 2019
Sinh viên thực hiện
Nguyễn Thị Ngọc

3


MỤC LỤC
DANH MỤC TỪ VIẾT TẮT................................................................................ 6
DANH MỤC BẢNG BIỂU................................................................................... 7
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ................................................................ 8
MỞ ĐẦU.............................................................................................................. 9
1.

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

2.

Mục đích thực hiện................................................................................ 10


3.

Phạm vi thực hiện.................................................................................. 10

4.

Nội dung thực hiện................................................................................ 10

5.

Cấu trúc đồ án........................................................................................ 10

LỜI CẢM ƠN..................................................................................................... 11
CHƯƠNG 1. GIỚI THIỆU VỀ NGÔN NGỮ JAVA, JAVA SERVLET VÀ MÔ
HÌNH MVC........................................................................................................ 12
1.1. Tính năng kỹ thuật................................................................................. 12
1.2. Công cụ phát triển.................................................................................. 12
1.3. Ngôn ngữ Java....................................................................................... 12
1.3.1.

Lịch sử ra đời ngôn ngữ Java....................................................... 12

1.3.2.

Java là gì?.................................................................................... 14

1.3.3.

Java được dùng để làm gì?........................................................... 15


1.4. Giới thiệu về Java Servlet...................................................................... 15
1.4.1.

Java Servlet là gì?........................................................................ 15

1.4.2.

Ưu điểm của Servlet.................................................................... 18

1.5. Mô hình MVC........................................................................................ 19
1.5.1.

Lịch sử hình thành....................................................................... 19

1.5.2.

MVC là gì?................................................................................... 19

CHƯƠNG 2. KHẢO SÁT VÀ PHÂN TÍCH HỆ THỐNG................................ 22
2.1. Khảo sát và xác định yêu cầu bài toán................................................... 22
2.1.1.

Mô tả bài toán.............................................................................. 22


2.1.2.

Khảo sát hiện trạng và xây dựng hệ thống mới............................ 24

2.1.3.


Phân tích chức năng..................................................................... 24

2.2. Phân tích hệ thống.................................................................................. 25
2.2.1.

Các tác nhân................................................................................. 25

2.2.2.

Sơ đồ Use Case............................................................................ 26

CHƯƠNG 3. THIẾT KẾ VÀ LẬP TRÌNH....................................................... 30
3.1. Thiết kế cơ sở dữ liệu............................................................................... 30
3.1.1.

Các bảng trong cơ sở dữ liệu....................................................... 30

3.1.2. Mối quan hệ giữa các bảng................................................................ 33
3.2. Kiến trúc Project...................................................................................... 33
3.3. Danh sách File Types............................................................................... 34
3.3.1. WebContent....................................................................................... 34
3.3.2. Java Resources.................................................................................. 35
CHƯƠNG 4: CÀI ĐẶT THỬ NGHIỆM............................................................ 37
4.1. Công cụ sử dụng....................................................................................... 37
4.2. Minh họa website..................................................................................... 37
4.2.1. Trang đăng ký.................................................................................... 37
4.2.2. Trang đăng nhập............................................................................... 38
4.2.3. Trang hiển thị sản phẩm.................................................................... 38
4.2.4. Trang tìm kiếm sản phẩm.................................................................. 39

4.2.5. Trang hiển thị sản phẩm theo danh mục sản phẩm............................40
4.2.6. Trang hiển thị sản phẩm theo thương hiệu......................................... 41
4.2.7. Trang chi tiết sản phẩm...................................................................... 42
4.2.8. Trang đặt hàng................................................................................... 42
4.2.9. Trang quản lý của cộng tác viên........................................................ 43
4.2.10. Trang quản lý của Admin................................................................ 43
KẾT LUẬN......................................................................................................... 44
TÀI LIỆU THAM KHẢO................................................................................... 45


DANH MỤC TỪ VIẾT TẮT

Từ viết tắt

Chú thích

CSDL

Cơ sở dữ liệu

GNU

General Public License, là giấy phép phần mềm
tự do được sử dụng rộng rãi.

CGI

Common Gateway Interface (Giao diện cổng
chung)


API

Application Programming Interface (giao diện lập
trình ứng dụng)

MVC

Model View Controller

CTV

Cộng tác viên


DANH MỤC BẢNG BIỂU

Bảng 2.2.1 Các tác nhân
Bảng 3.1.1.1 Bảng người dùng
Bảng 3.1.1.2 Bảng phân quyền
Bảng 3.1.1.3 Bảng danh mục sản phẩm
Bảng 3.1.1.4 Bảng thương hiệu
Bảng 3.1.1.5 Bảng sản phẩm
Bảng 3.1.1.6 Bảng đơn hàng
Bảng 3.1.1.7 Bảng chi tiết đơn hàng
Bảng 3.1.1.8 Bảng Trạng thái đơn hàng


DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ

Hình 1.4.1 Vai trò của Servlet

Hình 1.5.2 Mô hình MVC
Hình 2.2.2.1 Quản lý người dùng - Admin
Hình 2.2.2.2 Quản lý thương hiệu - Admin
Hình 2.2.2.3 Quản lý danh mục sản phẩm - Admin
Hình 2.2.2.4 Quản lý sản phẩm - Admin
Hình 2.2.2.5 Quản lý thông tin cá nhân - CTV
Hình 2.2.2.6 Quản lý sản phẩm - CTV
Hình 2.2.2.7 Quản lý thông tin cá nhân và đặt hàng - KH
Hình 3.1.2 Mối quan hệ giữa các bảng CSDL
Hình 4.2.1 Trang đăng ký
Hình 4.2.2. Trang đăng nhập
Hình 4.2.3 Trang hiển thị sản phẩm
Hình 4.2.4 Trang tìm kiếm sản phẩm
Hình 4.2.5 Trang hiển thị sản phẩm theo danh mục sản phẩm
Hình 4.2.6 Trang hiển thị sản phẩm theo thương hiệu
Hình 4.2.7 Trang chi tiết sản phẩm
Hình 4.2.8 Trang đặt hàng
Hình 4.2.9 Trang quản lý của cộng tác viên
Hình 4.2.10 Trang quản lý của Admin


MỞ ĐẦU

1. Lý do chọn đề tài
Ngày nay, công nghệ thông tin đã có những bước phát triển mạnh mẽ theo
cả chiều rộng và sâu. Máy tính điện tử không còn là một thứ phương tiện quý
hiếm mà đang ngày càng trở thành một công cụ làm việc và giải trí thông dụng
của con người, không chỉ ở nơi làm việc mà còn ngay cả trong gia đình. Đặc biệt
là công nghệ thông tin được áp dụng trên mọi lĩnh vực kinh tế, chính trị, xã hội.
Nó đóng vai trò hết sức quan trọng.

Trong hoạt động sản xuất, kinh doanh giờ đây thương mại điện tử và ứng
dụng công nghệ thông tin đã khẳng định được vai trò xúc tiến và thúc đẩy sự phát
triển của doanh nghiệp. Đối với một cửa hàng hay shop, việc quảng bá và giới
thiệu đến khách hàng các sản phẩm mới đáp ứng được nhu cầu của khách hàng
đồng thời cho khách hàng thấy được sự khác biệt giữa các sản phẩm của các nhà
sản xuất (thương hiệu) khác nhau sẽ là cần thiết. Vậy phải quảng bá thế nào đó là
xây dựng được một Website cho cửa hàng của mình giới thiệu tất cả các sản
phẩm của mình bán.
Vì vậy, em đã thực hiện đề tài “Xây dựng website giới thiệu mỹ phẩm”
cho một số thương hiệu mỹ phẩm. Người chủ cửa hàng hoặc cộng tác viên đưa
các sản phẩm đó lên website và quản lý bằng website đó, khách hàng có thể đặt
hàng trên website mà không cần đến cửa hàng. Chủ cửa hàng sẽ trực tiếp liên hệ
cho khách hàng khi nhận được đơn đặt hàng qua website. Với những tính năng
cơ bản, Website giúp gắn kết người mua và chủ cửa hàng dễ dàng, tiết kiệm thời
gian cho khách hàng hơn việc phải đến trực tiếp cửa hàng để mua sản phẩm. Nó
còn giúp người chủ cửa hàng dễ dàng nắm bắt, quản lí sản phẩm của mình và
truyền thông quảng cáo được rộng hơn, đồng thời cạnh tranh cao với các thương
hiệu khác ngay trên chính website giới thiệu mỹ phẩm chung.
Ngoài ra, bản thân cũng là một người thích xem và tìm hiểu các thương hiệu mỹ
phẩm khác nhau, bởi vậy việc lựa chọn đề tài “Xây dựng website giới thiệu mỹ
phẩm” làm đề tài bảo vệ đồ án tốt nghiệp đại học cũng là một sự lựa chọn em
nghĩ là khá phù hợp với bản thân mình.


2. Mục đích thực hiện
Mục đích của tài liệu này mô tả một cách chi tiết về những chức năng của
“Website giới thiệu mỹ phẩm”. Nó minh họa chi tiết chức năng và xây dựng một
hệ thống hoàn chỉnh. Nó giải thích rõ ràng về ràng buộc của hệ thống, trình bày
tổng quan về giao diện và những tương tác với hệ thống. Tài liệu này dùng mô tả
trình bày lại nhằm chỉnh sửa và điều chỉnh được tốt hơn.

3. Phạm vi thực hiện
-

Đối tượng nghiên cứu: Hệ thống website giới thiệu mỹ phẩm và quy trình,
phương pháp, phát triển một website.

-

Phạm vi nghiên cứu: Xây dựng website giới thiệu mỹ phẩm.

4. Nội dung thực hiện
-

Phương pháp phân tích tổng hợp kinh nghiệm

-

Tham khảo các hệ thống website mỹ phẩm lớn ở Việt Nam.

-

Phân tích thiết kế hệ thống

-

Thiết kế cơ sở dữ liệu, giao diện.

-

Lập trình


-

Kiểm thử

5. Cấu trúc đồ án
-

Lời cảm ơn

-

Chương 1: Giới thiệu về ngôn ngữ Java, Java Servlet và Mô hình MVC

-

Chương 2: Khảo sát và phân tích hệ thống

-

Chương 3: Thiết kế và Lập trình

-

Chương 4: Cài đặt thử nghiệm


LỜI CẢM ƠN

Lời đầu tiên, em xin chân thành cảm ơn ThS. Hồ Thị Huyền Thương đã

dùng tri thức, tâm huyết để truyền vốn tri thức quý báu và nhiệt tình giúp đỡ em
cũng như các bạn khác trong suốt thời gian chúng em thực hiện theo tiến độ đồ
án.
Cảm ơn cô đã tạo mọi điều kiện tốt nhất, đã luôn quản lý, đốc thúc em
hoàn thành đề tài, giúp em có thêm động lực để luôn cố gắng hoàn thành tốt yêu
cầu đề ra. Trong thời gian tìm tòi, tự học vừa qua, đồng thời được sự hướng dẫn
giảng dạy của các cô thầy trong Viện Kỹ thuật & Công nghệ và sự giúp đỡ nhiệt
tình của một số anh chị có kinh nghiệm, em đã hiểu và củng cố, nắm vững hơn
các kiến thức đã được học từ các đợt thực tập trước và có cái nhìn thực tế hơn về
chuyên ngành mình học, giúp em hoàn thành bài báo cáo đồ án này.
Trong quá trình học tập cũng như làm báo cáo đề tài, mặc dù đã rất cố gắng
nhưng do kinh nghiệm thực tiễn và trình độ còn hạn chế nên khó tránh khỏi sai
sót. Em rất mong nhận được ý kiến đóng góp từ các thầy cô để em có thêm nhiều
kinh nghiệm và hướng phát triển đề tài trong tương lai.

Nghệ An , ngày 15 tháng 05 năm 2019
Sinh viên thực hiện
Nguyễn Thị Ngọc


CHƯƠNG 1. GIỚI THIỆU VỀ NGÔN NGỮ JAVA, JAVA SERVLET VÀ
MÔ HÌNH MVC

1.1.

Tính năng kỹ thuật

 Website được thiết kế theo hướng mở, có thể nâng cấp và cập nhật thêm
các tính năng mới khi có nhu cầu.
 Hỗ trợ sử dụng tiếng việt theo đúng chuẩn Unicode.

 Tương thích với các loại trình duyệt Internet như Google Chome, Mozilla
Firefox, và Internet Explorer…
 Hiện thị trên mọi giao diện như mobile, Ipad,…
 Ứng dụng các công nghệ phát triển web mới nhất , đồng thời sử dụng các
công cụ phổ biến như Photoshop,… và phát triển trên mô hình MVC của
Java để mang đến cho website một dáng vẻ sống động và hiện đại . Sử
dụng các hiệu ứng làm nổi bật , lôi cuốn cho giao diện website.
1.2.

Công cụ phát triển
Đề tài được xây dựng dựa trên các công cụ, ngôn ngữ:
 HTML
 Javascript
 CSS
 Boostrap framework.
 Java
 Mô hình MVC

1.3.

Ngôn ngữ Java

1.3.1. Lịch sử ra đời ngôn ngữ Java
Java ban đầu được phát triển bởi James Gosling tại Sun microsystems ( đã
được Oracle mua lại ) và phát hành vào năm 1995 như là một thành phần cốt lõi
của nền tảng Java của Sun microsystems . Các trình biên dịch Java , máy ảo


và thư viện lớp ban đầu và tham chiếu ban đầu được Sun phát hành theo giấy
phép độc quyền . Kể từ tháng 5 năm 2007, tuân thủ các thông số kỹ thuật

của Quy trình cộng đồng Java , Sun đã cấp phép lại hầu hết các công nghệ Java
của mình theo Giấy phép công cộng GNU. Trong khi đó, những người khác đã
phát triển các triển khai thay thế cho các công nghệ Mặt trời này, chẳng hạn
như Trình biên dịch GNU cho Java (trình biên dịch mã byte), GNU
Classpath (thư viện chuẩn) và IcedTea -Web (plugin trình duyệt cho các applet).
Kể từ ngày 20 tháng 3 năm 2018 , cả Java 8 và 11 đều được hỗ trợ chính
thức. Các phiên bản phát hành chính của Java, cùng với ngày phát hành của
chúng:
-

JDK 1.0 (ngày 23 tháng 1 năm 1996)

-

JDK 1.1 (ngày 19 tháng 2 năm 1997)

-

J2SE 1.2 (ngày 8 tháng 12 năm 1998)

-

J2SE 1.3 (ngày 8 tháng 5 năm 2000)

-

J2SE 1.4 (ngày 6 tháng 2 năm 2002)

-


J2SE 5.0 (ngày 30 tháng 9 năm 2004)

-

Java SE 6 (ngày 11 tháng 12 năm 2006)

-

Java SE 7 (ngày 28 tháng 7 năm 2011)

-

Java SE 8 (ngày 18 tháng 3 năm 2014)

-

Java SE 9 (ngày 21 tháng 9 năm 2017)

-

Java SE 10 (ngày 20 tháng 3 năm 2018)

-

Java SE 11 (ngày 25 tháng 9 năm 2018)

-

Java SE 12 (ngày 19 tháng 3 năm 2019)


Phiên bản mới nhất là Java SE 12 , phát hành tháng ba năm 2019. Kể từ Java
9 không còn được hỗ trợ, Oracle khuyên người sử dụng sử dụng Java 12. Oracle
phát hành bản cập nhật nào cuối cùng cho di sản Java 8 LTS, đó là miễn phí cho
mục đích thương mại, vào tháng giêng năm 2019. Java 8 sẽ được hỗ trợ với bản
cập nhật nào cho mục đích cá nhân lên đến ít nhất là tháng mười hai năm 2020.
Oracle và những người khác "khuyên bạn nên gỡ bỏ phiên bản cũ của Java" vì


rủi ro nghiêm trọng do chưa được giải quyết vấn đề an ninh. Oracle hỗ trợ mở
rộng cho Java 6 đã kết thúc vào tháng 12 năm 2018.
1.3.2. Java là gì?
Java là một ngôn ngữ lập trình hướng đối tượng (OOP) và dựa trên các
lớp. Khác với ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành
mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã
nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi chạy.
Điều quan trọng về Java giúp phân biệt nó với nhiều công nghệ khác là nó
được thiết kế sao cho mã được viết bằng Java có thể chạy trên bất kỳ hệ thống
nào mà máy ảo Java (JVM) có thể chạy. Khái niệm viết một lần, chạy mọi
nơi được sử dụng như một khẩu hiệu để thúc đẩy các khả năng đa nền tảng của
Java.
Bản thân ngôn ngữ lập trình Java là ngôn ngữ hướng đối tượng, về mặt cú
pháp tương tự như C ++. Không giống như một số ngôn ngữ khác đi trước nó, đã
triển khai các lớp nhưng không yêu cầu sử dụng chúng, các chương trình Java
luôn được thiết kế với thiết kế hướng đối tượng.
Trong khi ngôn ngữ Java và máy ảo Java chạy mã Java được ghép nối
chặt chẽ, hai ngôn ngữ này tách biệt nhau. Mã từ các ngôn ngữ khác được thiết
kế riêng cho JVM, như Groovy và Scala, cũng có thể chạy trên máy ảo Java.
Hãy cẩn thận đừng nhầm lẫn Java với JavaScript. Mặc dù cả hai ngôn ngữ
hiện được tìm thấy trong nhiều môi trường, JavaScript, được sử dụng phổ biến
nhất để tăng sức mạnh tương tác bên trong trình duyệt web, là một công cụ hoàn

toàn khác. Khác với một phần của cái tên, cả hai không có nhiều điểm chung.
Có 5 mục tiêu chính trong việc xây dựng ngôn ngữ Java:
1. Đơn giản, hướng đối tượng và quen thuộc.
2. Mạnh mẽ và an toàn.
3. Kiến trúc trung lập và di động.
4. Thực thi với hiệu suất cao.
5. Dịch ra bytecode, phân luồng và năng động.


1.3.3. Java được dùng để làm gì?
- Tất cả các loại ứng dụng, từ các trò chơi cực kỳ phổ biến như Minecraft
đến môi trường phát triển tích hợp Eclipse được các nhà phát triển sử dụng cho
nhiều ngôn ngữ và nền tảng khác nhau, chạy trên Java. Java cũng cấp một số ứng
dụng được xây dựng riêng cho web. Mặc dù với những cải tiến về JavaScript và
HTML, các applet Java không còn là tiêu chuẩn thực tế cho các ứng dụng web
tương tác, nhiều người vẫn dựa vào Java để cung cấp trải nghiệm tương tác trên
trình duyệt.
- Ứng dụng JavaFX: JavaFX là một nền tảng phần mềm để tạo và phân
phối các ứng dụng máy tính để bàn , cũng như các ứng dụng Internet phong phú
(RIA) có thể chạy trên nhiều loại thiết bị. JavaFX dự định thay
thế Swing làm thư viện GUI tiêu chuẩn cho Java SE , nhưng cả hai sẽ được đưa
vào trong tương lai gần. JavaFX có hỗ trợ cho máy tính để bàn và trình duyệt
web trên Microsoft Windows , Linux và macOS . JavaFX không hỗ trợ giao diện
hệ điều hành gốc.
- Một số nền tảng cung cấp hỗ trợ phần cứng trực tiếp cho Java; có các bộ
điều khiển vi mô có thể chạy mã byte Java trong phần cứng thay vì máy ảo Java
phần mềm, và một số bộ xử lý dựa trên ARM có thể hỗ trợ phần cứng để thực
thi mã byte Java thông qua tùy chọn Jazelle của chúng , mặc dù hỗ trợ hầu hết đã
bị loại bỏ trong các triển khai hiện tại của ARM.
1.4.


Giới thiệu về Java Servlet

1.4.1. Java Servlet là gì?
Ngày nay, tất cả chúng ta đều nhận thức được sự cần thiết của việc tạo các
trang web động, tức là những trang có khả năng thay đổi nội dung trang theo thời
gian hoặc có thể tạo nội dung theo yêu cầu mà khách hàng nhận được. Nếu bạn
thích mã hóa bằng Java, thì bạn sẽ rất vui khi biết rằng sử dụng Java cũng tồn tại
một cách để tạo các trang web động và cách đó là Java Servlet.
Servlets là các chương trình Java chạy trên máy chủ ứng dụng web hoặc
máy chủ ứng dụng Java. Chúng được sử dụng để xử lý yêu cầu thu được từ máy
chủ web, xử lý yêu cầu, tạo phản hồi, sau đó gửi phản hồi lại cho máy chủ web.
Thuộc tính của Servlets:
Servlets hoạt động ở phía máy chủ.
15




Servlets có khả năng xử lý yêu cầu phức tạp thu được từ máy chủ web.

Thực thi Servlets bao gồm sáu bước cơ bản:
1. Các khách hàng gửi yêu cầu đến máy chủ web.
2. Máy chủ web nhận được yêu cầu.
3. Máy chủ web chuyển yêu cầu đến servlet tương ứng.
4. Servlet xử lý yêu cầu và tạo phản hồi dưới dạng đầu ra.
5. Servlet gửi phản hồi trở lại máy chủ web.
6. Máy chủ web sẽ gửi phản hồi lại cho máy khách và trình duyệt máy khách
sẽ hiển thị nó trên màn hình.
Công nghệ Java servlet cung cấp cho các nhà phát triển Web một cơ chế

nhất quán, đơn giản để mở rộng chức năng của máy chủ Web và để truy cập các
hệ thống kinh doanh hiện có. Các máy chủ là các thành phần Java EE phía máy
chủ tạo ra các phản hồi (thường là các trang HTML ) cho các yêu cầu (thường
là các yêu cầu HTTP ) từ các máy khách .
API servlet Java ở một mức độ nào đó đã được thay thế bởi hai công nghệ
Java tiêu chuẩn cho các dịch vụ web:
- Các Java API cho các dịch vụ Web RESTful (JAX-RS 2.0) hữu ích cho
AJAX, JSON và REST dịch vụ.
- Các Java API cho các dịch vụ Web XML (JAX-WS) hữu ích
cho SOAP Web Services .
Các trang JavaServer (JSP) là các thành phần Java EE phía máy chủ tạo ra
các phản hồi, điển hình là các trang HTML , cho các yêu cầu HTTP từ các máy
khách . Các tệp nhúng nhúng mã Java vào một trang HTML bằng cách sử dụng
các dấu phân cách đặc biệt <% và %> . Một tệp JSP được biên dịch thành
một servlet Java , một ứng dụng Java theo đúng nghĩa của nó, lần đầu tiên nó
được truy cập. Sau đó, servlet được tạo sẽ tạo ra phản hồi.
Một trình duyệt chấp nhận đầu vào ở dạng HTML, khi người sử dụng nhấn
một nút để yêu cầu một số thông tin nào đó, một Servlet đơn giản được gọi để xử
lý các yêu cầu đó. Các công việc chính của Servlet được mô tả khái quát trong
hình 1, bao gồm:
16


 Đọc các dữ liệu tường minh được Client gửi đến từ các yêu cầu (dữ liệu
theo các khuôn dạng – form data).
 Đọc các dữ liệu không tường minh được Client gửi đến từ các yêu cầu (dữ
liệu trong phần đầu của yêu cầu – request headers).
 Xử lý và lưu trữ các dữ liệu được cung cấp dưới dạng HTML.
 Gửi trả lời dữ liệu tường minh cho Client (dạng HTML), cung cấp các nội
dung động, ví dụ trả lời yêu cầu Client về các câu truy vấn vào các CSDL.

 Quản lý các thông tin trạng thái và trả lời dữ liệu không tường minh cho
Client (các mã trạng thái và các phần đầu của trả lời).

JDBC
Client

Servlet
HTTP
Servlet

CSDL

JNI Chương trình ứng dụng
RMI
Chương trình Java
XML
Chương trình B2B
...

Hình 1.4.1 Vai trò của Servlet
Các Servlet cũng được sử dụng thay cho kịch bản giao diện cổng chung CGI Script.
Khi tạo ra một trang Web, ta cũng sẽ tạo ra một ứng dụng Web.
Trước khi sử dụng Servlet để tạo ra các ứng dụng Web, chúng ta đi tìm hiểu xem
có những khả năng lựa chọn nào khác để phát triển những ứng dụng Web.
 CGI: Theo cách thông thường, để bổ sung các chức năng vào cho một
Web Server người ta hay sử dụng Common Gateway Interface (CGI), một
giao diện độc lập với ngôn ngữ cho phép một Server khởi động một tiến
trình ngoại để nhận thông tin được yêu cầu thông qua các biến môi
trường. Mỗi yêu cầu được trả lời bởi một tiến trình riêng thông qua một
đại diện riêng của một chương trình CGI hoặc bởi một kịch bản CGI

(thường được viết bằng ngôn ngữ thông dịch như Perl).


 Fast CGI: Open Marked đã phát triển một chuẩn khác thay cho CGI được
gọi là Fast CGI. Fast CGI hành động giống như CGI. Nó khác ở chỗ, Fast CGI
tạo ra một tiến trình bền vững cho từng chương trình.
 Một số chương trình ứng dụng khác như ASP và Java Script cũng hỗ trợ để
tạo ra các ứng dụng Web. ASP được Microsoft phát triển để tạo ra các nội
dung cho các trang Web động. Trong ASP, trang HTML có thể nhúng những
phần nhỏ được viết bằng VBScript hoặc JScript. Netscape đưa ra kỹ thuật
được gọi là JavaScript, cho phép đưa các phần mã lệnh nhỏ nhúng vào trang
HMTL, nhằm tạo ra những nội dung Web động một cách linh họat hơn.
Ngoài ra, Netscape còn cung cấp NSAPI, Microsoft đưa ra ISAPI cho các Web
Server của họ.
1.4.2. Ưu điểm của Servlet
Servlet được sử dụng để thay thế cho những công nghệ Web động. Việc sử
dụng Servlet mang lại những lợi thế:
 Dễ di chuyển. Servlet được viết bằng Java nên nó có tính di động cao, thực
hiện được trên nhiều hệ điều hành, trên các Web Server khác nhau. Khái
niệm “Viết một lần, chạy ở mọi nơi” cũng rất đúng với Servlet.
 Mạnh mẽ. Servlet hỗ trợ rất hiệu quả cho việc sử dụng các giao diện lõi API
như lập trình mạng, xử lý đa luồng, xử lý ảnh, nén dữ liệu, kết nối các
CSDL, bảo mật, xử lý phân tán và triệu gọi từ xa RMI, CORBA, v.v. Nó
cũng thích hợp để trao đổi tin, truyền thông giữa Client và Server một cách
bình thường.
 Hiệu quả. Servlet có tính hiệu quả cao. Một khi được tải về, nó sẽ được lưu
lại trong bộ nhớ của máy chủ. Servlet duy trì các trạng thái của nó, do vậy
những tài nguyên ngoại như việc kết nối với CSDL cũng sẽ được lưu giữ
lại.
 An toàn. Bởi vì Servlet được viết bằng Java nên nó kế thừa được tính an toàn

của Java. Cơ chế tự động dọn rác và việc không sử dụng con trỏ của Java
giúp cho Servlet thoát khỏi nhiều công việc quản lý bộ nhớ. Đồng thời nó
xử lý các lỗi rất an toàn theo cơ chế xử lý ngoại lệ của Java.


 Tính tích hợp. Các Servlet được tích hợp với các Server. Chúng cộng tác với
các Server tốt hơn các chương trình CGI.


 Tính linh hoạt. Các Servlet hoàn toàn mềm dẻo. Một HTTP Servlet được sử
dụng để tạo ra một trang Web, sau đó ta có thể sử dụng thẻ để đưa
nó vào trang Web tĩnh, hoặc sử dụng với các Servlet khác để lọc ra các nội
dung cần thiết.
1.5.

Mô hình MVC

1.5.1. Lịch sử hình thành.
MVC được phát minh bởi một giáo sư người Na Uy tên là Trygve
Reenskaug và được ông công bố, trình bày ngày 10/12/1979 tại phòng thí
nghiệm Xerox PARC ở Palo Alto.
1.5.2. MVC là gì?
MVC là viết tắt của Model-View-Controller. Phương pháp thiết kế MVC
(MVC Design Pattern) là phương pháp chia nhỏ một ứng dụng nhiều lớp hoặc
chia nhỏ phần giao diện người dùng (user interface) của một ứng dụng thành ba
thành phần chính là Model, View và Controller (hình 1).

Hình 1.5.2 Mô hình MVC.



Trong đó:
-

Model là một đối tượng hoặc tập hợp các đối tượng biểu diễn cho phần dữ
liệu của chương trình, chứa các thực thể, gồm các dữ liệu ( private ) , kèm
theo các phương thức set/get; thực hiện các công việc liên quan đến CSDL
như kết nối, lấy dữ liệu , truy vấn, chỉnh sửa, thêm xóa dữ liệu trực tiếp
với database; Truyền yêu cầu từ Servlet và lấy dữ về cho Servlet.

-

Chịu trách nhiệm chính trong mô hình hóa đối tượng. Có nhiệm vụ:
+ Nhận các yêu cầu từ View.
+ Thực thi các yêu cầu đó (tính toán, kết nối CSDL...).
+ Trả về các giá trị tính toán choView.

-

-

View(Khung nhìn): là giao diện của hệ thống tương tác trực tiếp với người
dùng, là các trang JSP, nhiệm vụ trả về hiển thị cho người như hiển thị
form nhập liệu, hiện dữ liệu ra màn hình, cung cấp các menu, nút bấm,
hộp đối thoại, chọn lựa..., để người dùng có thể thêm, xóa, sửa, tìm
kiếm, các kết quả trả về từ Model…
Controller(Bộ điều khiển): Là các Servlet, có nhiệm vụ nhận các yêu cầu
từ người dùng, đưa yêu cầu và nhận dữ liệu từ tầng Model, từ đó chuyển
hướng và trả về cho tầng View.

1.5.3. Đặc điểm mô hình MVC

Java là một ngôn ngữ lập trình hướng đối tượng thuần túy nên việc áp
dụng MVC vào các phần mềm viết bằng Java rất dễ dàng và hiển nhiên. Có hai
hình mẫu chính của phương pháp thiết kế MVC trong Java là MVC model 1 và
MVC model 2 .
Trong MVC model 1, các trang JSP đóng vai trò “Hiển thị” (View) và
“Điều khiển” (Controller). Có thể có nhiều trang JSP khác nhau đóng các vai trò
khác nhau.
Thao tác của người dùng trên trình duyệt web được gửi tới một trang JSP.
Trang JSP này sẽ khởi tạo một hoặc nhiều Java Bean (nếu cần thiết), truyền các
lệnh cần thi hành tới Java Bean (không phải Enterprise Java Bean).
Sau khi Java Bean thực hiện xong việc truy xuất hoặc cập nhật dữ liệu, trang JSP
ban đầu có thể hiển thị dữ liệu lấy từ Bean (JSP ban đầu đóng luôn vai trò View),


hoặc chọn một trang JSP khác để hiện dữ liệu từ Bean (JSP ban đầu đóng luôn
vai trò Controller). Trong một thiết kế tốt, để bảo đảm việc tách rời phần trình
bày và logic của chương trình, trang JSP nhận yêu cầu chỉ đóng vai trò “Điều
khiển”(Controller).
MVC model 1 có một nhược điểm là phần logic điều khiển được viết
trong trang JSP, như vậy phần chương trình Java phức tạp dùng để điều khiển sẽ
bị lẫn vào trong mã HTML dùng để trình bày. Độ phức tạp của chương trình
càng cao, thì trang JSP càng khó phát triển và bảo trì. Hơn nữa, trong các dự án
phức tạp, phần hiển thị do người thiết kế web giỏi về HTML và đồ họa thực hiện,
còn phần điều khiển được người chuyên về lập trình thực hiện. Dùng JSP làm
phần điều khiển sẽ khó phân ranh giới trách nhiệm giữa nhóm thiết kế đồ họa và
nhóm lập trình. Để khắc phục nhược điểm này, MVC model 2 ra đời.
Trong MVC model 2, một hoặc nhiều servlet (thường là một) đóng vai trò
điều khiển, các Java Bean đóng vai trò mô hình và các trang JSP đóng vai trò
hiển thị.
Trong model 2, các logic phức tạp của chương trình được viết hoàn toàn

trong các servlet (chương trình Java). Phần hiển thị chỉ gồm các trang JSP với
một vài mã đơn giản để lấy dữ liệu có sẵn, không có logic phức tạp, vì thế hoàn
toàn có thể giao cho người thiết kế web.
Các yêu cầu của người dùng được gửi từ trình duyệt web tới servlet.
Servlet sẽ khởi tạo Java Bean (nếu cần thiết), ra lệnh thu thập, cập nhật thông tin.
Khi Java Bean hoàn thành công việc, servlet sẽ chọn trang JSP thích hợp để hiện
thông tin trong Java Bean cho người dùng.
Đây là một cách sử dụng MVC rất hiệu quả trong Java. Tất nhiên, sử dụng
MVC model 2 một cách hoàn toàn cứng nhắc, phần “Điều khiển” chỉ dùng
servlet, phần “Hiển thị” chỉ dùng JSP sẽ dẫn đến một vài trường hợp kém hiệu
quả, nhất là khi các yêu cầu từ trình duyệt web chỉ đòi hỏi việc hiển thị thông tin.
Trong trường hợp này, gửi thẳng yêu cầu hiển thị từ trình duyệt web tới trang
JSP sẽ hiệu quả hơn .
Dựa trên những phân tích đó, đề tài em chọn được làm trên mô hình
MVC 2.


CHƯƠNG 2. KHẢO SÁT VÀ PHÂN TÍCH HỆ THỐNG
2.1.

Khảo sát và xác định yêu cầu bài toán

2.1.1. Mô tả bài toán
-

Trang chủ
Là sự thể hiện tổng quan của các trang thành phần trong website như:
Bộ lọc tìm kiếm sản phẩm theo thương hiệu, theo danh mục sản phẩm, theo
giá cả, …
Các sản phẩm được giới thiệu.

Các sản phẩm nổi bật.
Các tiêu chí, chính sách đảm bảo chất lượng và uy tín về sản phẩm và giao
hàng.
Các hình ảnh logo đại diện cho các thương hiệu.
Các thông tin cơ bản để khách hàng hoặc cộng tác viên liên hệ khi cần thiết.
 Modul sản phẩm
Hiển thị danh sách các sản phẩm có phân trang, bao gồm các thông tin về
ảnh sản phẩm, tên sản phẩm và giá sản phẩm.
Thứ tự hiển thị mặc định từ sản phẩm mới nhất tới sản phẩm cũ hơn.
Trong danh sách sản phẩm, khách hàng có thể lọc theo một số tiêu chí
như: sản phẩm dưỡng da, sản phẩm làm sạch, sản phẩm trang điểm, giá tang
dần, giá giảm dần, …
Danh sách hiển thị có 3 cấp:
a. Hiển thị danh sách theo danh mục sản phẩm như dưỡng da, làm
sạch, trang điểm,…
b. Hiển thị danh sách theo thương hiệu như: Roza, Riori, Linh Hương,

c. Hiển thị chi tiết sản phẩm gồm: tên sản phẩm, ảnh sản phẩm, mô tả
sản phẩm, giá sản phẩm, …
 Modul thành viên


-

Đăng ký

-

Đăng nhập


-

Khách hàng: xem và đặt hàng, thay đổi thông tin cá nhân.

-

Cộng tác viên: yêu cầu phê duyệt bài đăng, quản lý các sản phẩm
mình đăng và quản lý các đơn hàng mà khách hàng đăt hàng chính
sản phẩm mà mình đã đăng, thay đổi thông tin cá nhân.

-

Admin: quản lý thành viên, quản lý thương hiệu, quản lý sản phẩm,
quản lý các loại sản phẩm, quản lý đơn hàng, phê duyệt thành viên
và bài đăng, thay đổi thông tin cá nhân.

-

Quản lý tài khoản.

-

Hướng dẫn đăng tin.

-

Thành viên có thể quản lý toàn bộ thông tin của mình.

-


Cộng tác viên có thể quản lý được toàn bộ thông tin của mình.

-

Admin có thể quản lý được mọi thông tin của thành viên.

 Modul tìm kiếm
Tìm kiếm cơ bản: tìm kiếm theo các chức năng như sau:
- Theo danh mục sản phẩm
- Theo thương hiệu
- Theo giá cả
- Theo trạng thái xuất hiện
 Modul đăng giới thiệu sản phẩm
Module này cho phép thành viên là cộng tác viên được phép đăng bán,
giới thiệu sản phẩm, trong đó các sản phẩm này phải thuộc một trong các
thương hiệu mà trang web đang làm việc. Nếu muốn, cộng tác viên có thể
trực tiếp liên hệ với admin để thêm một thương hiệu khác và sau khi được
chấp nhận, admin thêm thương hiệu mới cho phép công tác viên quản lý sản
phẩm của thương hiệu đó nhưng là các sản phẩm do chính cộng tác viên đó
đăng. Trong module này chỉ cho phép cộng tác viên đăng sản phẩm.


 Modul sản phẩm gần đây.


×