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

XÂY DỰNG WEBSITE GIỚI THIỆU VÀ BÁN HÀNG QUẦN ÁO TẠI LÀO - Full 10 điể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 (3.12 MB, 64 trang )

UBND TỈNH QUẢNG NAM
TRƯỜNG ĐẠI HỌC QUẢNG NAM

KHOA TOÁN - TIN
----------

THIPPHACHAN MAKVILAI

XÂY DỰNG WEBSITE GIỚI THIỆU VÀ BÁN HÀNG
QUẦN ÁO TẠI LÀO

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC

Quảng Nam, tháng 05 năm 2022

UBND TỈNH QUẢNG NAM
TRƯỜNG ĐẠI HỌC QUẢNG NAM

KHOA: TOÁN - TIN
----------

KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC

Tên đề tài:
XÂY DỰNG WEBSITE GIỚI THIỆU VÀ BÁN HÀNG

QUẦN ÁO TẠI LÀO

Sinh viên thực hiện
THIPPHACHAN MAKVILAI


MSSV: 2118100117
CHUYÊN NGHÀNH: CÔNG NGHỆ THÔNG TIN

KHÓA: 2018 - 2022
Cán bộ hướng dẫn
Th.S NGUYỄN THỊ MINH CHÂU

MSCB: …..

Quảng Nam, tháng 5 năm 2022

Phần 1. MỞ ĐẦU
1.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 ứng dụng cơng nghệ thơng
tin và tin học hóa được xem là một trong yếu tố mang tính quyết định trong hoạt động
của quốc gia, tổ chức và trong cả các cửa hàng. Nó đóng vai trị hết sức quan trọng và
có thể tạo nên bước đột phá mạnh mẽ. Mạng Internet là một trong những sản phẩm có
giá trị hết sức lớn lao và ngày càng trở nên một công cụ không thể thiếu, là nền tảng để
truyền tải, trao đổi thông tin trên toàn cầu. Bằng Internet, chúng ta đã thực hiện được
những cơng việc với tốc độ nhanh hơn, chi phí thấp hơn nhiều so với cách thức truyền
thống. Chính điều này, đã thúc đẩy sự khai sinh và phát triển của thương mại điện tử
trên khắp thế giới, làm biến đổi đáng kể bộ mặt văn hóa, nâng cao đời sống con người.
Trong hoạt động sản xuất, kinh doanh, thương mại điển tử đã khẳng định được 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, việc quảng bá
và giới thiệu sản phẩm đến khách hàng đáp ứng nhu cầu mua sắm ngày càng cao của

khách hàng sẽ là cần thiết.

Hiện nay để xây dựng một Website bán hàng online thì chúng ta có thể sử dụng
nhiều Framework khác nhau của nhiều ngôn ngữ. Tuy nhiên để xây dựng các website
và các ứng dụng web phức tạp, có thể sẽ mất quá nhiều thời gian và rắc rối nếu cứ xây
dựng ứng dụng từ đầu, vì thế cần đến một cách tự nhiên hơn để xây dựng sản phẩm.
Spring MVC framework ra đời và cung cấp cho các nhà phát triển với một giải pháp
thỏa đáng cho điều đó.

Vì vậy, em chọn đề tài “XÂY DỰNG WEBSITE GIỚI THIỆU VÀ BÁN HÀNG
QUẦN ÁO TẠI LÀO ” làm đề tài khóa luận .
1.2. Mục tiêu của đề tài

- Tìm hiểu spring web mvc
- Tìm hiểu về Netbeans, java, jsp…
- Tìm hiểu về MySQL trong java, Tomcat.
- Tìm hiểu hệ thống bán hàng điện tử

1

- Từ những tìm hiểu trên để từ đó xây dựng được website bán hàng điện tử dân
dụng
1.3. Đối tượng và phạm vi nghiên cứu

Xây dựng trang web ứng dụng bán hàng dân dụng như tủ lạnh, tivi, máy giặt và
một số linh kiện khác… Trong thởi đại Thương mai điện tử phát triển, việc ứng dụng
vào hoạt động “Website bán hàng ” đã mang lại nhiều ý nghĩa lớn như:

Đỡ tốn thời gian nhiều cho người tiêu dùng cũng như nhà quản lý trong việc tham
gia vào hoạt động mua bán hàng.


Giúp người tiêu dùng có được gía cả và hình ảnh mặt hàng một cách chính xác.
Giúp người quản lý dễ dàng hơn trong việc quản lý sản phẩm
1.4. Phương pháp nghiên cứu
- Phương pháp lý luận :

+ Tìm hiểu kỹ thuật lập trình, tìm hiểu cách thức hoạt đơng và các đối tượng
trong spring mvc thông qua sách, tài liệu Internet.

- Phương pháp thực tiễn :
+ Viết ứng dụng xây dựng website bán hàng điện tử dân dụng

- Ngồi ra cịn sử dụng các phương pháp khác như : logic, phân tích, tổng hợp,
thống kê,…
1.5 Cấu trúc đề tài

Nội dung khóa luận gồm có 4 chương:
Chương 1: CƠ SỞ LÝ THUYẾT VÀ NỀN TẢNG ĐỂ XÂY DỤNG WEBSITE
Chương 2: TÌM HIỂU VỀ SPRING MVC
Chương 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Chương 4: DEMO

2

Phần 2. NỘI DUNG NGHIÊN CỨU
Chương 1: CƠ SỞ LÝ THUYẾT VÀ NỀN TẢNG ĐỂ XÂY DỤNG WEBSITE
1.1. Tổng quan về thương mại điện tử
1.1.1. Khái niệm thương mại điện tử

Khi nói về khái niệm thương mại điện tử nhiều người nhầm lẫn với khái niệm của

Kinh doanh điện tử , thương mại điện tử đôi khi được xem là tập con của kinh doanh
điện tử. Thương mại điện tử chú trọng đến việc mua bán trực tuyến (tập trung bên
ngoài), trong khi đó kinh doanh điện tử là việc sử dụng Internet và các cơng nghệ trực
tuyến tạo ra q trình hoạt động kinh doanh hiệu quả dù có hay khơng có lợi nhuận, vì
vậy tăng lợi ích với khách hàng (tập trung bên trong).

Thương mại điện tử bao gồm việc sản xuất, quảng cáo, bán hàng và phân phối
sản phẩm được mua bán và thanh toán trên mạng Internet, nhưng được giao nhận một
cách hữu hình, cả các sản phẩm giao nhận cũng như những thơng tin số hố thơng qua
mạng Internet".
1.1.2. Lợi ích của việc sử dụng thương mại điện tử

1. Mỗi người
- Có các sản phẩm và dịch vụ giá rẻ để bán.
- Mang đến cho khách hàng nhiều sự lựa chọn Giao dịch có thể được thực hiện
24 giờ một ngày.
- Nhận thông tin về sản phẩm và dịch vụ một cách kịp thời
- Cho phép khách hàng lựa chọn những sản phẩm đáp ứng tốt nhất nhu cầu của
họ
- Hỗ trợ đấu giá ảo
- Cho phép khách hàng tiếp xúc và trao đổi ý kiến với các khách hàng khác
- Cho phép liên kết các hoạt động trong chuỗi giá trị (Tích hợp chuỗi giá trị)
2. Đối với tổ chức kinh doanh
- Mở rộng thị trường trên toàn quốc và toàn cầu
- Có thể phục vụ một lượng lớn khách hàng trên thế giới với chi phí thấp.
- Giảm số lượng tài liệu liên quan đến việc tạo, xử lý, phân phối, lưu trữ và truy
xuất lên đến 90 phần trăm.
- Giảm chi phí viễn thơng vì internet rẻ hơn điện thoại.
- Cho phép các công ty nhỏ cạnh tranh với các công ty lớn


3

- Quản lý sản xuất hiệu quả hơn
3. Đối với xã hội
- Giúp mọi người có thể làm việc tại nhà ít đi lại hơn làm cho giao thông không
bị tắc nghẽn giảm các vấn đề ơ nhiễm khơng khí
- Làm cho việc mua hàng hóa rẻ hơn Những người khơng giàu có có thể nâng
cao tiêu chuẩn bán hàng hóa và dịch vụ.
4. Đối với nền kinh tế
- Các doanh nghiệp vừa và nhỏ ở các nước đang phát triển có thể được hưởng lợi
từ việc tiếp cận thị trường rộng rãi trên quy mơ tồn cầu
- Làm cho các doanh nghiệp ở các nước đang phát triển tiếp cận với công nghệ
mới
- Vai trò của người trung gian bị giảm sút. giảm chi phí giao dịch Các rào cản gia
nhập thị trường cũng được giảm bớt.
- Cho phép người dân nơng thơn tìm hàng hóa hoặc dịch vụ giống như ở thành
phố
- tăng cường độ cạnh tranh làm cho nó hữu ích cho người tiêu dùng
*Tóm tắt các lợi ích của thương mại điện tử

Đó là thương mại khơng biên giới. Khơng có sự phân chia lục địa hay quốc
gia. Khơng giới hạn khoảng cách và hành trình Bạn có thể mua sản phẩm từ một cửa
hàng duy nhất. và đi du lịch để mua sản phẩm từ các cửa hàng khác ở các châu lục
khác nhau chỉ trong vài phút

Tiếp cận nhóm khách hàng mục tiêu lớn trên khắp thế giới. Cơ sở người mua
đang mở rộng. Bạn có thể giao dịch 24 giờ một ngày và mở cửa hàng ngày.
1.2. Tổng quan về ngôn ngữ java
1.2.1. Nguồn gốc của ngôn ngữ java


Java là một ngôn ngữ lập trình hướng đối tượng, dựa trên lớp được thiết kế để có
càng ít phụ thuộc thực thi càng tốt. Nó là ngơn ngữ lập trình có mục đích chung cho
phép các nhà phát triển ứng dụng viết một lần, chạy ở mọi nơi, nghĩa là mã Java đã
biên dịch có thể chạy trên tất cả các nền tảng hỗ trợ Java mà không cần biên dịch lại.
Các ứng dụng Java thường được biên dịch thành bytecode có thể chạy trên bất kỳ máy
ảo Java (JVM) nào bất kể kiến trúc máy tính bên dưới. Cú pháp của Java tương tự như
C và C++, nhưng có ít cơ sở cấp thấp hơn các ngôn ngữ trên. Java runtime cung cấp

4

các khả năng động (chẳng hạn như phản ánh và sửa đổi mã thời gian chạy) thường
khơng có sẵn trong các ngơn ngữ biên dịch truyền thống. Tính đến năm 2019 Java là
một trong những ngơn ngữ lập trình phổ biến nhất được sử dụng theo GitHub, đặc biệt
cho các ứng dụng web máy khách

Tính đến tháng 9 năm 2020, phiên bản mới nhất là Java 15, với Java 11, một
phiên bản hỗ trợ dài hạn (LTS), được phát hành vào 25 tháng 9 năm 2018. Oracle phát
hành bản cập nhật miễn phí cho công chúng với phiên bản kế thừa Java 8 LTS vào
tháng 1 năm 2019 cho mục đích sử dụng thương mại, mặc dù nếu khơng nó sẽ vẫn hỗ
trợ Java 8 với các bản cập nhật công khai cho mục đích sử dụng cá nhân vơ thời hạn.
Các nhà cung cấp khác đã bắt đầu cung cấp các bản miễn phí của OpenJDK 8 và 11
mà vẫn đang nhận được bảo mật và các nâng cấp khác.

Oracle (và những công ty khác) khuyên người dùng nên gỡ cài đặt các phiên bản
Java đã lỗi thời vì những rủi ro nghiêm trọng do các vấn đề bảo mật chưa được giải
quyết. Vì Java 9, 10, 12, 13 và 14 khơng cịn được hỗ trợ, Oracle khuyên người dùng
nên chuyển ngay sang phiên bản mới nhất (hiện tại là Java 15) hoặc bản phát hành
LTS.
1.2.2. Đặc điểm của ngôn ngữ java


Hướng đối tượng: Trong Java, mọi thứ đều được coi là Object và có thể mở rộng
Java vì nó hồn tồn dựa trên mơ hình Object.

5

Đơn giản: Java được thiết kế với mục đích giúp người học dễ dàng hơn trong việc
tiếp thu kiến thức. Vì vậy, nếu bạn đã hiểu cơ bản Java là gì thì khi học, các bạn có thể
nắm bắt ngơn ngữ lập trình này rất nhanh.

Kiến trúc trung lập: Trình biên dịch của Java có khả năng tạo ra một định dạng
file object có kiến trúc trung lập. Đồng thời, Java còn làm cho code sau khi biên dịch
có thể hoạt động được trên nhiều bộ vi xử lý cùng với sự có mặt của Java runtime
system.

Kiến trúc Trung lập: Các trình biên dịch Java có thể tạo một định dạng tệp đối
tượng trung lập về mặt kiến trúc. Đồng thời, Java cũng cho phép mã đã biên dịch chạy
trên nhiều bộ xử lý với hệ thống thời gian chạy Java.

Bảo mật: Khi tìm hiểu Java là gì, chắc chắn các bạn sẽ biết đến tính bảo mật tuyệt
vời của Java. Nhờ tính năng an tồn của mình, Java có khả năng cho phép phát triển
những hệ thống hồn tồn khơng có virus hay giả mạo.

Portable: Đây là đặc điểm khá nổi bật của Java bởi nó là kiến thức trung lập và
không phụ thuộc vào việc thực hiện bất kỳ những đặc điểm chính nhất khi nói về
Portable của Java. Vì thế, bạn có thể đưa bytecode của Java lên bất cứ nền tảng nào
của mình.

Đa luồng: Bạn có thể viết các chương trình với mục đích thực hiện nhiều tác vụ
cùng một lúc nhờ tính năng đa luồng của Java. Tính năng này còn cho phép các nhà
phát triển tự xây dựng những ứng dụng tương tác hoạt động một cách trơn tru.


Thông dịch: Bytecode của Java được biên dịch trực tiếp đến các nền tảng gốc và
nó hồn tồn khơng được lưu trữ ở bất cứ nơi đâu.

Mạnh mẽ: Java là gì và tại sao Java lại có đặc điểm mạnh mẽ? Câu trả lời là vì
Java ln nỗ lực loại trừ tất cả những tình huống bị lỗi bằng cách nhấn mạnh và chủ
yếu là chỉ ra lỗi thời gian biên dịch cũng như kiểm tra runtime.

Hiệu suất cao: Java có đặc điểm này là vì nó sử dụng trình biên dịch Just – In-
Time nên cho hiệu suất cao và phát hiện lỗi nhanh chóng.

Linh động: Java được đánh giá là năng động hơn các loại ngơn ngữ lập trình khác
hiện nay như C hay C++ và được thiết kế với khả năng thích nghi dễ dàng trong mơi
trường đang phát triển. Vì thế, các chương trình của Java có thể mang theo một lượng
rất lớn các thông tin run-time.

6

1.2.3. Ưu điểm ngôn ngữ java
Các chương trình Java được viết có thể chạy trên nhiều nền tảng mà không cần

phải sửa đổi hoặc biên dịch lại, giảm chi phí và thời gian cần thiết để chuyển hoặc làm
cho chương trình trở nên đa nền tảng.

Java là một ngôn ngữ hướng đối tượng. phù hợp để phát triển các hệ thống
phức tạp Phát triển chương trình dựa trên đối tượng cho phép chúng ta sử dụng các từ
hoặc tên tồn tại trong hệ thống để thiết kế chương trình. làm cho nó dễ hiểu hơn
1.3. Tổng quan về MySQL, Tomcat
1.3.1. Tổng quan về MySQL


MySQL là chương trình dùng để quản lý hệ thống cơ sở dữ liệu (CSDL), trong đó
CSDL là một hệ thống lưu trữ thông tin. được sắp xếp rõ ràng, phân lớp ngăn nắp
những thơng tin mà mình lưu trữ.

MySQL là một hệ quản trị cơ sở dữ liệu mã nguồn mở, chính vì vậy mà nó chỉ hỗ
trợ những ngơn ngữ theo hướng “mở”, các mã nguồn như C++ sẽ không thể sử dụng
MySQL cho những dự án của mình, ngồi ra thì theo cơng ty từ dự
án bugnetproject của chính Microsoft thì họ cũng đã xác nhận rằng ngôn ngữ C++
hay .Net Development sẽ không hỗ trợ trên nền tảng mySQL.

Ưu điểm của MySQL
Khả năng mở rộng và tính linh hoạt.
Máy chủ cơ sở dữ liệu MySQL đáp ứng nhiều tính năng linh hoạt, nó có sức
chứa để xử lý các ứng dụng được nhúng sâu với 1MB dung lượng để chạy kho dữ liệu
khổng lồ lên đến hàng terabytes thơng tin. Đặc tính đáng chú ý của MySQL là sự linh
hoạt về flatform với tất cả các phiên bản của Windows, Unix và Linux đang được hỗ
trợ. Và đương nhiên, tính chất mã nguồn mở của MySQL cho phép tùy biến theo ý
muốn để thêm các yêu cầu phù hợp cho database server.
Hiệu năng cao
Với kiến trúc storage-engine cho phép các chuyên gia cơ sở dữ liệu cấu hình máy
chủ cơ sở dữ liệu MySQL đặc trưng cho các ứng dụng chuyên biệt. Dù ứng dụng là
website dung lượng lớn phục vụ hàng triệu người/ngày hay hệ thống xử lý giao dịch
tốc độ cao thì MySQL đều đáp ứng được khả năng xử lý khắt khe của mọi hệ thống.
Với những tiện ích tải tốc độ cao, cơ chế xử lý nâng cao khác và đặc biệt bộ nhớ

7

caches, MySQL đưa ra tất cả nhưng tính năng cần có cho hệ thống doanh nghiệp khó
tính hiện nay.


Tính sẵn sàng cao.
MySQL đảm bảo sự tin cậy và có thể sử dụng ngay. MySQL đưa ra nhiều tùy
chọn có thể “mì ăn liền” ngay từ cấu hình tái tạo chủ/tớ tốc độ cao, để các nhà phân
phối thứ 3 có thể đưa ra những điều hướng có thể dùng ngay duy nhất cho server cơ sở
dữ liệu MySQL.
Hỗ trợ giao dịch mạnh mẽ.
MySQL đưa ra một trong số những engine giao dịch cơ sở dữ liệu tốt nhất trên
thị trường. Các đặc trưng bao gơm, khóa mức dịng khơng hạn chế, hỗ trợ giao dịch
ACID hồn thiện, khả năng giao dịch được phân loại và hỗ trợ giao dịch đa dạng
(multi-version) mà người đọc không bao giờ cản trở cho người viết và ngược lại. Dữ
liệu được đảm bảo trong suốt q trình server có hiệu lực, các mức giao dịch độc lập
được chun mơn hóa, khi phát hiện có lỗi khóa chết ngay tức thì.
Bảo vệ dữ liệu mạnh mẽ.
Việc quan trong của các doanh nghiệp là bảo mật dữ liệu, MySQL tích hợp các
tính năng bảo mật an tồn tuyệt đối. Với việc xác nhận truy cập cơ sở dữ liệu, MySQL
trang bị các kỹ thuật mạnh, chỉ có người sử dụng đã được xác nhận mới truy cập được
vào cơ sở dữ liệu. Chứng chỉ SSH và chứng chỉ SSL cũng được hỗ trợ để đảm bảo kết
nối an toàn và bảo mật. Tiện ích backup và recovery cung cấp bởi MySQL và các hãng
phần mềm thứ 3 cho phép backup logic và vật lý cũng như recovery toàn bộ hoặc tại
một thời điểm.
Phát triển ứng dụng toàn diện.
MySQL trở thành cơ sở dữ liệu mã nguồn mở phổ biến nhất hiện nay một phần là
do cung cấp hỗ trợ hỗn hợp cho bất cứ sự phát triển ứng dụng nào cần. Trong cơ sở dữ
liệu, hỗ trợ có thể được tìm thấy trong các trigger, stored procedure, cursor, view,
ANSI-standard SQL,… MySQL cũng cung cấp các bộ kết nối như: JDBC, ODBC,…
để tất cả các form của ứng dụng sử dụng MySQL như một erver quản lí dữ liệu được
đề xuất hàng đầu.
Quản lý dễ dàng.
Cài đặt MySQL khá nhanh và trung bình từ khi download phần mềm tới khi cài
đặt thành công chỉ mất chưa đầy 15 phút. Cho dù flatform là Linux, Microsoft


8

Windows, Macintosh hoặc Unix thì quá trình cũng diễn ra nhanh chóng. Khi đã cài
đặt, tính năng quản lý như tự khởi động lại, tự động mở rộng không gian và cấu hình
động sẵn sàng cho người quản trị cơ sở dữ liệu bắt đầu làm việc. MySQL cung cấp
toàn bộ công cụ quản lý đồ họa cho phép một DBA quản lý, sửa chữa và điều khiển
hoạt động của nhiều server MySQL từ một máy trạm đơn.

Mã nguồn mở tự do và hỗ trợ 24/7.
Nhiều doanh nghiệp cịn băn khoăn trong việc giao tồn bộ cho phần mềm mã
nguồn mở bởi khó có thể tìm được hỗ trợ hay bảo mật an toàn phục vụ chuyên nghiệp.
Với MySQL mọi sự cam kết đều rõ ràng, MySQL cam kết bồi thường khi gặp sự cố.
Chi phí sở hữu thấp nhất.
Sử dụng MySQL cho các dự án, doanh nghiệp đều nhận thấy sự tiết kiệm chi phí
đáng kể. Người dùng MySQL cũng không mất nhiều thời gian để sữa chữa hoặc vấn
đề thời gian chết.
1.3.2. Tổng quan về PHP

PHP là viết tắt của PHP Hypertext Preprocessor, ban đầu cho Công cụ Trang
chủ Cá nhân. PHP là ngôn ngữ máy tính ngơn ngữ lập trình script, loại ngơn ngữ lập
trình này được lưu trữ trong một tập tin có tên là script, khi chạy nó yêu cầu một tập
hợp các biến. Ví dụ về ngơn ngữ script là JavaScript, Perl,… Bản chất của PHP khác
với các ngôn ngữ script khác là PHP được phát triển và thiết kế. Để sử dụng trong việc
tạo các tài liệu HTML có thể tự động chèn hoặc chỉnh sửa nội dung. Do đó, PHP được
cho là ngơn ngữ kịch bản phía máy chủ hoặc được nhúng HTML, nghĩa là trong mọi
Trước khi một máy tính đóng vai trị là một máy chủ Web gửi cho chúng ta một trang
web được viết bằng PHP, nó sẽ hồn tất việc xử lý các lệnh có sẵn. và sau đó gửi kết
quả cho chúng tơi Kết quả cuối cùng là trang web mà chúng tôi thấy. PHP là một trong
những công cụ quan trọng nhất cho phép chúng tôi tạo các trang web động (trang web

tương tác với người dùng) hiệu quả hơn và có nhiều tính năng hơn.
1.4. Mô tả hệ thống bán hàng áo quần tại Lào.

Đây là một website nhằm bán và giới thiệu rộng rãi các mặt hàng đến người tiêu
dùng với các chi tiết mặt hàng cũng như giá cả một cách chính xác nhất. Website nhằm:

- Về hoạt động khách hàng:
+ Tìm kiếm và lựa chọn từ xa sản phẩm mình cần: Khách hàng khi truy cập vào
trang web thương mại thường tìm kiếm các mặt hàng hay các sản phẩm mà họ cần và

9

muốn mua. Nhưng đơi khi cũng có nhiều khách hàng vào website này mà khơng có ý
định mua hay khơng biết mua gì thì yêu cầu đặt ra cho hệ thống là làm thế nào để
khách hàng dễ bị bắt mắt và hấp dẫn với sản phẩm đó, đồng thời có thể tìm kiếm
nhanh và hiệu quả các sản phẩm mà họ cần tìm.

+ Đặt mua hàng: Sau khi khách hàng lựa chọn xong những mặt hàng cần đặt mua
thì đơn đặt hàng sẽ được hiển thị để khách hàng nhập vào những thông tin cần thiết,
tránh những địi hỏi hay những thơng tin yêu cầu quá nhiều từ phía khách hàng, tạo
cảm giác thoải mái, riêng tư cho khách hàng.

+ Theo dõi đơn hàng của mình.
+ Gửi ý kiến đóng góp.
- Về hoạt động của nhà quản trị:
+ Là người có quyền đăng nhập, quản lý và làm chủ mọi hoạt động của hệ thống
trang web. Nhà quản lý có một username và một password để truy cập vào hệ thống
nhằm thực hiện các chức năng sau:
+ Quản lý các sản phẩm một cách dễ dàng.
+ Thêm, xố, sửa thơng tin sản phẩm vào cơ sở dữ liệu.

+ Kiểm tra và xử lý đơn đặt hàng.

10

Chương 2: TÌM HIỂU VỀ SPRING MVC
2.1. Spring Framework
2.1.1. Giới thiệu

Spring là một Framework phát triển các ứng dụng Java được sử dụng bởi hàng
triệu lập trình viên. Nó giúp tạo các ứng dụng có hiệu năng cao, dễ kiểm thử, sử dụng
lại code…

Spring nhẹ và trong suốt (nhẹ: kích thước nhỏ, version cơ bản chỉ khoảng 2MB;
trong suốt: hoạt động một cách trong suốt với lập trình viên)
Spring là một mã nguồn mở, được phát triển, chia sẻ và có cộng đồng người dùng rất
lớn.

Spring Framework được xây dựng dựa trên 2 nguyên tắc design chính là:
Dependency Injection và Aspect Oriented Programming.

Những tính năng core (cốt lõi) của Spring có thể được sử dụng để phát triển Java
Desktop, ứng dụng mobile, Java Web. Mục tiêu chính của Spring là giúp phát triển các
ứng dụng J2EE một cách dễ dàng hơn dựa trên mơ hình sử dụng POJO (Plain Old Java
Object)

Spring được chia làm nhiều module khác nhau, tùy theo mục đích phát triển ứng
dụng mà ta dùng 1 trong các module đó
2.1.2. Các module chính
2.1.2.1. Core Container


Spring Core Container
Bao gồm các module spring core, beans, context và expression languate (EL)
 Spring core, bean cung cấp tính năng IOC và Dependency Injection.
 Spring Context hỗ trợ đa ngơn ngữ (internationalization), các tính năng Java EE

như EJB, JMX.
 Expression Language được mở rộng từ Expresion Language trong JSP. Nó

cung cấp hỗ trợ việc setting/getting giá trị, các method cải tiến cho phép truy
cập collections, index, các toán tử logic…
2.1.2.2. Spring Context/Application Context
Một trong những tính năng chính của Spring framework là vùng chứa IoC
(Inversion of Control). Spring IoC container chịu trách nhiệm quản lý các đối tượng

11

của một ứng dụng. Nó sử dụng tiêm phụ thuộc để đạt được sự đảo ngược của kiểm
soát.

Các giao diện BeanFactory và ApplicationContext đại diện cho vùng chứa Spring
IoC. Ở đây, BeanFactory là giao diện gốc để truy cập vùng chứa Spring. Nó cung cấp
các chức năng cơ bản để quản lý bean.

Mặt khác, ApplicationContext là một giao diện con của BeanFactory. Do đó, nó
cung cấp tất cả các chức năng của BeanFactory.

Hơn nữa, nó cung cấp nhiều chức năng dành riêng cho doanh nghiệp. Các tính
năng quan trọng của ApplicationContext là giải quyết các thơng báo, hỗ trợ quốc tế
hóa, xuất bản các sự kiện và các ngữ cảnh cụ thể của lớp ứng dụng. Đây là lý do tại
sao chúng tơi sử dụng nó làm vùng chứa Spring mặc định.

2.1.2.3. Spring AOP (Aspect Oriented programming)

Aspect Oriented Programming (AOP) – lập trình hướng khía cạnh: là một kỹ
thuật lập trình (kiểu như lập trình hướng đối tượng) nhằm phân tách chương trình thành
cách moudule riêng rẽ, phân biệt, không phụ thuộc nhau.

Khi hoạt động, chương trình sẽ kết hợp các module lại để thực hiện các chức năng
nhưng khi sửa đổi 1 chức năng thì chỉ cần sửa 1 module.

AOP không phải dùng để thay thế OOP mà để bổ sung cho OOP.

Hình 2.1. Cơ chế hoạt động Spring AOP
Ưu điểm:
 Thiết kế đơn giản: “You aren’t gonna need it (YAGNI)” – chúng ta chỉ cài đặt

những thứ chúng ta thực sự cần mà không bao giờ cài đặt trước.
12

 Cài đặt chương trình một cách trong sáng: mỗi một module chỉ làm cái mà nó
cần phải làm, giải quyết được hai vấn đề code tangling và code scattering.

 Tái sử dụng dễ dàng.
Nhược điểm:

 Khái nhiệm khá trừu tượng, độ trừu tượng của chương trình cao
 Luồng chương trình phức tạp.
2.1.2.4. Spring DAO

Mẫu Đối tượng Truy cập Dữ liệu (DAO) là một mẫu cấu trúc cho phép chúng ta
tách lớp ứng dụng / nghiệp vụ khỏi lớp bền vững (thường là cơ sở dữ liệu quan hệ

nhưng có thể là bất kỳ cơ chế bền vững nào khác) bằng cách sử dụng một API trừu
tượng.

API ẩn khỏi ứng dụng tất cả sự phức tạp của việc thực hiện các hoạt động CRUD
trong cơ chế lưu trữ bên dưới. Điều này cho phép cả hai lớp phát triển riêng biệt mà
khơng cần biết gì về nhau.

Trong hướng dẫn này, chúng ta sẽ đi sâu vào cách triển khai của mẫu và chúng ta
sẽ tìm hiểu cách sử dụng nó để trừu tượng hóa các cuộc gọi tới trình quản lý thực thể
JPA.
2.1.2.5. Spring ORM

Spring cung cấp API giúp lập trình viên dễ dàng tích hợp Spring với ORM
Framework như JPA(Java Persistence API), JDO(Java Data Objects), Oracle Toplink
and iBATIS.

Home » Spring » Spring Hibernate – Giới thiệu Spring ORM, Code ví dụ Spring
Hibernate
Spring Hibernate – Giới thiệu Spring ORM, Code ví dụ Spring Hibernate
Spring Hibernate – Giới thiệu Spring ORM, Code ví dụ Spring Hibernate
Giới thiệu Spring ORM
Spring cung cấp API giúp lập trình viên dễ dàng tích hợp Spring với ORM
Framework như JPA(Java Persistence API), JDO(Java Data Objects), Oracle Toplink
and iBATIS.
Lợi ích của ORM Framework với Spring
Có khá nhiều lợi ích khi kết hợp Spring Framework với ORM framework:

13

 Viết code ít hơn: Không cần phải viết code trước và sau khi truy vấn với

database qua connection (ví dụ start connection, start transaction, commit transaction,
close connection…)

 Dễ test hơn:
 Xử lý exception tốt hơn: Spring framewrok cung cấp các API để xử lý
exception với ORM framework
 Tích hợp quản lý transaction: Spring hỗ trợ khả năng quản lý transaction qua
AOP (Xem lại ví dụ xử lý transaction với JDBC)
2.1.2.6. Spring Web Module

Spring framework bao gồm nhiều mô-đun như lõi, bean, ngữ cảnh, ngôn ngữ
biểu thức, AOP, Aspects, Instrumentation, JDBC, ORM, OXM, JMS, Transaction,
Web, Servlet, Struts, v.v. Các mơ-đun này được nhóm thành Test, Core Container ,
AOP, Các khía cạnh, Thiết bị đo, Truy cập / Tích hợp dữ liệu, Web (MVC / Điều
khiển từ xa) như được hiển thị trong sơ đồ sau.
2.1.2.7. Spring MVC Framework

Spring MVC cung cấp kiến trúc model-view-controller và các thành phần để có
thể được sử dụng phát triển các ứng dụng web. Mô hình MVC phân tách các khía cạnh
khác nhau của ứng dụng (logic đầu vào, logic business, và giao diện người dùng logic),
và cung cấp một kết nối giữa các yếu tố này.

Model đóng gói dữ liệu ứng dụng và nói chung họ sẽ bao gồm các POJO.
Tầng View chịu trách nhiệm hiển thị các dữ liệu Model và nói chung nó tạo ra HTML
mà trình duyệt hiển thị ra.

Controller chịu trách nhiệm xử lý yêu cầu người sử dụng và xây dựng Model phù
hợp và chuyển nó qua tầng View để hiển thị.

The DispatcherServlet

MVC framework được thiết kế xoay quanh DispatcherServlet - cho phép xử lý tất
cả các HTTP request và response. Sơ đồ dưới đây giải thích flow xử lý request của
Spring Web MVC DispatcherServlet.

14

Hình 2.2. Cơ chế hoạt động mơ hình MVC
Đây là chuỗi các sự kiện tương ứng với một yêu cầu HTTP đến
DispatcherServlet:
Sau khi nhận được một yêu cầu HTTP, DispatcherServlet chỉ định cho
HandlerMapping gọi Controller thích hợp.
Controller sẽ nhận yêu cầu và gọi các Service tương ứng thích hợp dựa trên GET
được sử dụng hoặc phương thức POST. Các phương thức service này sẽ thiết lập một
nhóm các dữ liệu Model được định nghĩa theo logic business và trả về tên View cho
DispatcherServlet.
Các DispatcherServlet sẽ được các ViewResolver hỗ trợ để chọn được View đã
định nghĩa tương ứng với Request.
Khi View được hoàn thiện, Các DispatcherServlet sẽ chuyển dữ liệu Model tới
View và render trên trình duyệt.
Tất cả các thành phần nêu trên, ví dụ như. HandlerMapping, Controller và
ViewResolver là bộ phận của WebApplicationContext - một mở rộng của
ApplicationContext với một số tính năng bổ sung cần thiết cho các ứng dụng web.
2.1.3. Lý do sử dụng
Cấu hình Spring Framework dễ dàng, nhanh chóng
Một trong những khía cạnh quan trọng trong sự phổ biến của bất kỳ framework
nào là việc nhà phát triển sử dụng nó dễ dàng hay không. Spring Framework thông qua
nhiều quy ước về cấu hình giúp lập trình viên dễ dàng bắt đầu và sau đó thay đổi cấu
hình theo chính xác những gì họ cần.

15


Những dự án như Spring Boot đã làm cho việc khởi động một dự án Spring phức
tạp gần như trở nên dễ dàng. Chưa kể, nó có tài liệu và hướng dẫn tuyệt vời để giúp
mọi người tham gia.

Java Spring Framework phù hợp với mọi lập trình viên - lập trình tăng năng suất.
Spring Framework được biết đến là khung phần mềm của ngôn ngữ Java.
Nói đến Java, hầu hết lập trình viên đều đã từng một lần sử dụng nó. Java là một
ngơn ngữ phổ biến và lâu đời, được thiết kế theo phong cách hướng đối tượng - OOP.
Java cũng là một môn học tại nhiều trường đại học về công nghệ. Vậy nên có thể cho
rằng, Java là một ngơn ngữ có số lượng lập trình viên nhiều nhất. Đó là lý do vì sao
doanh nghiệp sản xuất khơng gặp trở ngại về việc thiếu nhân lực phát triển trong dự án
sử dụng Java.
Spring Framework sở hữu tính chất Module linh hoạt
Một khía cạnh quan trọng khác trong sự phổ biến của Spring là tính chất mơ-đun
cao của nó. Spring Framework cho phép lựa chọn sử dụng toàn bộ hệ sinh thái của
Spring, hoặc chỉ sử dụng mô-đun cần thiết. Hơn nữa, lập trình viên có thể tùy chọn đưa
vào một hoặc nhiều dự án Spring tùy theo nhu cầu.
Khả năng Kiểm thử mà bất kỳ framework nào cũng cần
Việc lựa chọn framework phần lớn phụ thuộc vào thực tế là việc kiểm thử phần
mềm có diễn ra dễ dàng hay không.
Với Spring, nó đáp ứng nhu cầu này bằng việc hỗ trợ Phát triển ứng dụng theo
hướng thử nghiệm - Test Driven Development (TDD).
Ứng dụng Spring chủ yếu bao gồm các POJO, điều này đương nhiên làm cho việc
kiểm thử đơn vị (Unit Testing) trở nên đơn giản hơn nhiều. Tuy nhiên, Spring cung cấp
Mock Objects cho các tình huống như MVC, nơi mà việc kiểm thử đơn vị trở nên phức
tạp hơn.
Sự trưởng thành của Spring
Spring Framework có một lịch sử lâu dài về đổi mới, áp dụng và tiêu chuẩn hóa.
Qua nhiều năm, nó đã đủ trưởng thành để trở thành giải pháp mặc định cho hầu hết các

vấn đề phổ biến gặp phải trong quá trình phát triển các ứng dụng doanh nghiệp quy mô
từ nhỏ đến lớn.

16

Điều thú vị hơn nữa là Spring đang được phát triển và duy trì tích cực. Hỗ trợ cho
các tính năng ngơn ngữ mới và các giải pháp tích hợp doanh nghiệp đang được phát
triển mỗi ngày.

Sự đóng góp của cộng đồng Spring
Cuối cùng nhưng không kém phần quan trọng, bất kỳ framework nào hoặc ngơn
ngữ lập trình nào cũng tồn tại trong ngành thơng qua sự đổi mới và khơng có nơi nào
tốt hơn cho sự đổi mới ngoài cộng đồng.
Spring là một mã nguồn mở do Pivotal Software dẫn đầu và được hỗ trợ bởi một
nhóm lớn những tổ chức và nhà phát triển cá nhân. Điều này có nghĩa là nó vẫn tồn tại
theo ngữ cảnh và thường mang tính tương lai, thể hiện rõ qua số lượng dự án dưới sự
hỗ trợ của nó ngày một tăng.
2.2. Spring MVC
2.2.1. Mơ hình MVC
2.2.1.1. Model (Mơ hình)
MVC là viết tắt của 3 từ Model – View – Controller, đây là một mơ hình thiết kế
sử dụng trong kĩ thuật phần mềm (lập trình). Mỗi một từ là mỗi một mơ hình riêng
nhưng cả ba tạo thành 1 mơ hình lớn.
 M là Model: một cấu trúc dữ liệu chắc chắn, Model có chức năng chuẩn bị dữ
liệu để cung cấp cho Controller.
 Model là thành phần chính đảm nhận nhiệm vụ lưu trữ dữ liệu và các bộ phận
logic liên quan của toàn bộ ứng dụng đó, là cầu nối giữa View và Controller. Model
chịu trách nhiệm cho các thao tác giữa Controller hoặc bất kì logic nghiệp vụ nào khác
liên quan đến dữ liệu như: Xem dữ liệu, truy xuất dữ liệu,..
 Ví dụ: Controller lấy dữ liệu thơng tin về sản phẩm từ cơ sở dữ liệu, thì Model

sẽ thực hiện cấc thao tác với dữ liệu (CSDL) và gửi lại cho CSDL hoặc cấp quyền cho
View sử dụng.
2.2.1.2. View (Khung nhìn)

View là giao diện dành cho phía người sử dụng, và người dùng có thể thấy
được thơng tin dữ liệu của MVC qua các thao tác tìm kiếm. View được tạo thành bởi
dữ liệu thu thập từ dữ liệu mơ hình, và giúp người dùng có cái nhìn trực quan nhất về
ứng dụng, trang web.

17

2.2.1.3. Controller (Bộ điều khiển)
Đây là bộ phận đảm trách xử lý các thao tác của người dùng với ứng dụng, trang

web. Controller xử lí dữ liệu từ bàn phím và chuột của người dùng, sau đó thơng báo
tới View và Model.

Controller có thể gửi lệnh tới Model và View để thực hiện thay đổi trạng thái
(Model) hoặc giao diện (View).
2.3. Ưu điểm của spring mvc

Hiện nay, Spring MVC được sử dụng vô cùng phổ biến và được đánh giá cao
nhờ sở hữu những điểm mạnh như:

 Các tầng có trong Spring MVC thường độc lập nên việc unit test sẽ trở nên dễ
dàng hơn rất nhiều.

 Phần view của chúng sẽ được tích hợp với nhiều Framework về UI như là: JSF,
Freemarker hoặc Themeleaf,...


 Spring MVC base có trên các POJO class nên hành động của chúng thường sẽ
đơn giản hơn.

 Có thể hỗ trợ được cả Annotation và XML config giúp cho quá trình phát triển
trở nên sạch hơn và nhanh hơn rất nhiều.

 Có thể cung cấp giúp việc phân chia trở nên rõ ràng, linh hoạt hơn giữa các
controller, service, data access layer.
2.4. Giới thiệu một khái niệm đề liên quan
2.4.1. Inversion of Control Container (IoC container)

Trong cộng đồng Java, có một làn sóng đổ xơ về các thùng chứa nhẹ giúp tập
hợp các thành phần từ các dự án khác nhau thành một ứng dụng gắn kết. Bên dưới các
thùng chứa này là một mơ hình chung về cách chúng thực hiện hệ thống dây điện, một
khái niệm mà chúng đề cập đến dưới cái tên chung chung là "Inversion of Control".

IoC container cịn có tên gọi đầy đủ là Inversion of Control, được hiểu là một
nguyên lý thiết kế ứng dụng trong công nghệ phần mềm. Kiến trúc phần mềm khi áp
dụng nguyên lý thiết kế này sẽ đảo ngược quyền điều khiển so với kiểu lập trình
hướng thủ tục. Nếu như trong lập trình hướng thủ tục, các đoạn mã được thêm vào sẽ
gọi các thư viện thì ở IoC lại hồn tồn khác. Những IoC container sẽ chích những
dependencies khi khởi tạo bean.

18


×