1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đồ án tốt nghiệp đề tài nghiên cứu xây dựng ứng dụng quản lý bán hàng trên nền tảng spring

71 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đề Tài Nghiên Cứu Xây Dựng Ứng Dụng Quản Lý Bán Hàng Trên Nền Tảng Spring
Trường học Trường Đại Học Phương Đông
Thể loại đồ án tốt nghiệp
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 71
Dung lượng 3,37 MB

Nội dung

Với mong muốn góp một phần nhỏ bé công sức của mình trong việc giúp đỡ ngườimua, người bán dễ dàng tiếp cận với hình thức mua bán online, trong phạm vi làm đồ án tốt nghiệp này em đã quy

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC PHƯƠNG ĐÔNG

Trang 2

MỤC LỤC

CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI 6

1.1 Đặt vấn đề 6

1.2 Lý do chọn đề tài và mục đích của đề tài 2

1.3 1.3 Nhiệm vụ của đồ án 2

1.4 Hình thức mua hàng 3

1.5 Đối tượng và phạm vi nghiên cứu 4

1.6 Cấu trúc của báo cáo 4

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT ĐỀ TÀI 6

2.1 Tổng quan về website 6

2.1.1 Khái niệm về website 6

2.1.2 Lịch sử ra đời của website 6

2.1.3 Cách thức hoạt động của website 7

2.2 Tìm hiểu về HTML, CSS, JS 9

2.2.1 HTML (HyperText Markup Language) 9

2.2.2 CSS (Cascading Style Sheet Language) 10

2.2.3 Bootstrap 11

2.2.4 JS (Javascript) 12

2.3 2.3 Ngôn ngữ lập trình Java 13

2.3.1 Lịch sử phát triển 13

2.3.2 Các đặc điểm cơ bản của ngôn ngữ lập trình Java 14

2.3.3 Các platform cơ bản của Java 15

2.3.4 Cài đặt và lập trình Java 16

2.4 Spring Framework 17

Trang 3

2.5 Spring MVC Framework 19

2.6 SpringBoot 21

2.7 Spring Security 22

2.8 Hệ quản trị cơ sở dữ liệu MySQL 23

2.9 Json web token 25

2.9.1 Json web token là gì? 25

2.9.2 Giải thích về ba thành phần của jwt token 26

CHƯƠNG 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 31

3.1 Khảo sát 31

3.1.1 Khảo sát người dùng 31

3.1.2 Khảo sát hệ thống Lazada.vn 31

3.1.3 Kết luận 33

3.2 Tổng quan hệ thống 34

3.2.1 Giới thiệu về phần mềm 34

3.2.2 Các tác nhân 34

3.2.3 Mục tiêu 34

3.2.4 Phạm vi 34

3.3 Quy trình nghiệp vụ của hệ thống 35

3.4 Tác nhân 35

3.5 Đặc tả USE-CASE 36

3.5.1 Đăng ký 36

3.5.2 Đăng nhập hệ thống 37

3.5.3 Tìm kiếm sản phẩm 38

3.5.4 Xem thông tin sản phẩm 39

3.5.5 Thêm giỏ hàng 39

Trang 4

3.6 Biểu đồ use-case 40

3.6.1 User-case tổng quan 40

3.6.2 User-case chi tiết hệ thống 41

3.7 Biểu đồ hoạt động 43

3.8 Biểu đồ tuần tự 48

3.9 Biểu đồ lớp 53

3.10 Biểu đồ thành phần 54

3.11 Biểu đồ triển khai 55

CHƯƠNG 4 XÂY DỰNG VÀ CÀI ĐẶT HỆ THỐNG 56

4.1 Mô tả chức năng giao diện 56

4.1.1 Chức năng quản lý sản phẩm 56

4.1.2 Chức năng quản lý khách hàng 57

4.1.3 Chức năng quản lý đơn hàng 58

4.1.4 Chức năng thống kê 59

4.1.5 Chức năng trang chủ 60

4.1.6 Chức năng xem sản phẩm 61

4.1.7 Chức năng giỏ hàng 62

4.1.8 Chức năng yêu thích 63

4.1.9 Chức năng giỏ hàng 64

4.1.10 Chức năng đặt hàng 65

CHƯƠNG 5 KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN 66

5.1 Kết quả 66

5.2 Tồn tại các hạn chế 67

5.3 Phát triển 67

TÀI LIỆU THAM KHẢO 68

Trang 5

DANH MỤC CÁC TỪ VIẾT TẮT VÀ GIẢI THÍCH CÁC THUẬT NGỮ

1 CSS Cascading Style Sheet

Language

Là thành phần dùng để định dạng lại phần tử cho website

6

HTTP Hypertext Transfer Protocol là giao thức truyền tải siêu văn

bản dùng để truyền tải dữ liệu giữa Webserver và client

7 MVC Model View Controller Mô hình thiết kế và phát triển

Trang 6

9 Language được kế thừa từ Standard

Generalized Markup Language

LỜI NÓI ĐẦU

Trang 7

Sự phát triển của công nghệ thông tin đã và đang làm thay đổi toàn bộ thế giới,công nghệ thông tin có tác động đến mọi ngành nghề, mọi lĩnh vực trong xã hội như: muasắm, y tế, khoa học, công nghiệp, giáo dục Công nghệ thông tin được áp dụng rất nhiềuvào công việc, làm cho công việc trở nên dễ dàng, nhanh chóng, chính xác và tiện lợi hơn.Đặc biệt trong lĩnh vực thương mại điện tử, việc áp dụng thương mại điện tử vào mua sắmlàm cho việc mua bán hàng hoá trở lên thuận tiện hơn

Việc mua sắm trực tuyến đã trở thành một lựa chọn an toàn và phổ biến trongnhững năm qua, vì đa số người tiêu dùng đã tìm thấy sự thuận tiện và dễ dàng để chọn lựacửa hàng, sự thoải mái trong việc mua bán và thanh toán Một trong những yếu tố hấp dẫnnhất về mua sắm trực tuyến, nó làm giảm bớt việc phải xếp hàng chờ đợi cũng như tìmkiếm sản phẩm mình ưa thích trong cửa hàng

Sau thời gian tìm hiểu, nghiên cứu và áp dụng những kiến thức đã được dạy từthầy cô giáo trong suốt quá trình học tập tại trường Đại học Phương Đông, em đã quyết

định lựa chọn đề tài “Nghiên cứu xây dựng ứng dụng quản lý bán hàng trên nền tảng Spring” để làm đồ án tốt nghiệp.

Trong quá trình làm đồ án em vẫn còn nhiều sai sót, mong nhận được lời nhận xét

từ thầy cô và các bạn sinh viên

Em xin chân thành cảm ơn thầy cô giáo khoa Công nghệ thông tin và truyền thông

đã tận tình giảng dạy và cho em những kiến thức quý báu, đặc biệt là cô Nguyễn Thu Vân

đã sát sao hướng dẫn cho em làm đồ án này

CHƯƠNG 1TỔNG QUAN ĐỀ TÀI1.1 Đặt vấn đề

Những ưu thế của việc mua sắm trực tuyến đã làm thay thế được những bất tiện

Trang 8

mua sản phẩm được lựa chọn nhanh chóng bằng cách thực hiện một số cú nhấp chuột, họ

có thể chọn và mua những mặt hàng yêu thích từ thị trường vô tận và không giới hạn dointernet cung cấp, họ không cần phải đi đến các cửa hàng, và không bị giới hạn bởi giờ

mở cửa, họ có thể đặt hàng mọi lúc, mọi nơi và hơn nữa việc giao hàng có thể được yêucầu không chỉ đến nơi cư trú mà còn ở nơi làm việc, do đó người tiêu dùng có thể muasản phẩm với điều kiện thuận lợi nhất (giá cả, chất lượng, giảm giá khác) phù hợp với nhucầu cá nhân

Theo một cuộc khảo sát toàn cầu gần đây do Công ty Nielsen thực hiện, hơn 85%dân số trên thế giới đã sử dụng Internet để mua hàng, tăng 40% so với hai năm trước vàhơn một nửa số người dùng Internet là những người mua sắm trực tuyến thường xuyên

1.2 Lý do chọn đề tài và mục đích của đề tài

Như đã nói trên, mua hàng online đang là xu thế của toàn cầu Việc phát triển ứngdụng quản lý bán hàng sẽ giúp cho người bán, người mua có thể buôn bán, mua hàngđược mọi lúc, mọi nơi, bất cứ khi nào, tiết kiệm được chi phí thuê mặt bằng kinh doanhchỉ cần có máy tính hoặc điện thoại smartphone kết nối Internet Người quản trị cũng dễdàng quản lý các thông tin bài đăng cũng như các thông tin đơn hàng một cách nhanhchóng

Với mong muốn góp một phần nhỏ bé công sức của mình trong việc giúp đỡ ngườimua, người bán dễ dàng tiếp cận với hình thức mua bán online, trong phạm vi làm đồ án

tốt nghiệp này em đã quyết định lựa chọn đề tài ‘Nghiên cứu xây dựng ứng dụng quản

lý bán hàng trên nền tảng Spring’ để trau dồi kiến thức cũng như áp dụng các kiến thức

đã được học vào xây dựng lên hệ thống

1.3 1.3 Nhiệm vụ của đồ án

Các nội dung chính được tìm hiểu và xây dựng trong quá trình làm đồ án

 Tìm hiểu về các mô hình thương mại điện tử

 Tìm hiểu về các mô hình quản lý bán hàng

 Tìm hiểu về cách thức hoạt đông của website,

 Tìm hiểu các công nghệ liên quan để xây dựng một website thương mại điện tử

Xây dựng website thương mại điện tử có các chức năng cơ bản sau:

Trang 9

 Xem thông tin sản phẩm

 Xem thông tin cụ thể, chi tiết từng sản phẩm

 Phân loại sản phẩm theo thể loại

 Tìm kiếm thông tin sản phẩm dễ dàng

 Cho phép khách hàng đăng ký, đăng nhập và đảm bảo bảo mật thông tin khách hàngvới Spring Security

 Thêm giỏ hàng đặt hàng nhanh chóng

 Thêm sản phẩm vào mục ưa thích

 Thanh toán ship cod

 Thanh toán online với paypal

 Gửi mail tương tác với khách hàng

 Xuất file excel đơn hàng

 Thống kê sản phẩm theo năm, theo tháng, theo sản phẩm, theo thể loại, …

1.4 Hình thức mua hàng

Mua hàng online đang dần trở thành một hình thức mua sắm phổ biến, nó được đánh giárất cao trong thời kì công nghệ bùng nổ hiện nay Có nhiều cách thức mua hàng onlinenhư: mua hàng qua các trang mạng xã hội, mua hàng qua cá trang thương mại điệntử, nó đều mang lại sự tiện lợi trong mua bán hàng hoá cho khách hàng Bên cạnh đóviệc mua hàng online còn giúp mọi người cảm thấy dễ dàng hơn, tiết kiệm thời gian, chi

Trang 10

phí cho việc mua sắm Người bán cũng dễ dàng giới thiệu, đưa sản phẩm của mình tới gầnhơn với người dùng.

 Các ưu điểm mà mua hàng online mang lại như:

- Tiết kiệm được chi phí, thới gian

- Đưa sản phẩm tiếp cận gần hơn với khách hàng

- Tiết kiệm diện tích kinh doanh…

 Các nhược điểm:

- Hàng hoá có thể không giống như quảng cáo

- Mất thời gian cho việc đưa sản phẩm tới tay người dùng,…

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

Đối tượng hướng tới trong project là những khách hàng có nhu cầu mua hàng hoá quamạng

Phạm vi nghiên cứu:

 Cách thức mua hàng online

 Cách thức hoạt động của website

 Các thành phần chính để xây dựng lên website

 Tìm hiểu về ngôn ngữ lập trình Java

 Tìm hiểu về framework Spring

 Tìm hiểu về hệ quản trị cơ sở dữ liệu MySQL

 Tìm hiểu về server vps, deploy trên môi trường thật

 Tìm hiểu bảo mật mã hoá mật khẩu

 Tìm hiểu về json web token

 Tìm hiểu mã hoá file sang base64

 Các công nghệ liên quan để xây dựng website: trong phạm vi đồ án này tìm hiểu vàxây dựng website trên nền tảng Spring Framework của ngôn ngữ lập trình Java, xây

Trang 11

dựng hệ thống theo mô hình MVC, kết hợp với công nghệ bảo mật như jwt token, mãhoá mật khẩu với Bcrypt, mã hoá file lưu trữ dưới dạng base64.

1.6 Cấu trúc của báo cáo

 Chương 1: Tổng quan về đề tài

- Đưa ra các vấn đề, hiện trang và lý do chọn đề tài

- Phân tích được các hình thức mua hàng online mang lại những hiệu quả tốt chongười dùng

- Cấu trúc của báo cáo project

 Chương 2: Tìm hiểu công nghệ

- Đưa ra các công nghệ chính được sử dụng trong project cũng như phân tích các ưuđiểm, nhược điểm của công nghệ đó

 Chương 3: Phân tích và thiết kế hệ thống

- Nội dung của chương này tập chung vào việc phân tích, đánh giá để đưa ra luồnghoạt động của hệ thống thông qua chức năng của các biểu đồ use case, activitydiagram, sequence diagram

- Thiết kế database sử dụng cho phát triển hệ thống

 Chương 4: Xây dựng và cài đặt hệ thống

- Chương này nói về công cụ phát triển sản phẩm, các chức năng chính mà hệ thống

đã xây dựng được và chạy thử nghiệm trên môi trường thực tế

 Chương 5: Kết luận

- Phân tích các kết quả đạt được và chưa đạt được sau khi nghiên cứu và phát triển

hệ thống, định hướng phát triển

Trang 12

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT ĐỀ TÀI2.1 Tổng quan về website

2.1.1 Khái niệm về website

“Website” là một tập hợp các trang thông tin có chứa nội dung dạng văn bản, chữ số, âm thanh, hình ảnh, video…được lưu trữ trên máy chủ web server và có thể truy cập được từ xa

Trang web (web page) là khái niệm dùng để chỉ một trang cụ thể nào đó của website, đây

là một tài liệu được hiển thị trực tiếp trên trình duyệt như Firefox, Google Chrome một website sẽ có nhiều trang web con

2.1.2 Lịch sử ra đời của website

Website được chuyên gia phần mềm người Anh Tim Berners-Lee khởi chạy thành công vào ngày 21/12/1990 tại cơ sở của CERN nằm ở dãy núi Alps Thụy Sĩ

Hình 2.1 Hình ảnh cha đẻ của websiteWebsite đầu tiên được Tim Berners-Lee chạy với tên miền là: info.cern.ch chạy trên mộtmáy chủ NeXT của CERN, hiện nay website này vẫn đang còn tồn tại và hoạt động.Nội dung của trang web cung cấp các thông tin về world wide web, nền tảng cơ bản củaInternet, nơi các văn bản và các trang tên Internet có thể truy cập được thông qua cácURL (Uniform Resource Locator) và kết nối với nhau thông qua các siêu liên kết

Trang 13

Đến năm 1993 khi trình duyệt Mosaic dành cho nền tảng Unix và Windows ra đời thìwebsite mới trở nên phát triển mạnh mẽ và phổ biến hơn Năm 1994 Berners-Lee thànhlập tổ chức World Wide Web (W3C) tại học viện công nghệ MIT của Mỹ, W3C sẽ chịutrách nhiệm để tạo ra những tiêu chuẩn cho các trang web, đảm bảo rằng các trang webhoạt động theo cùng tiêu chuẩn đó [1]

2.1.3 Cách thức hoạt động của website

Một website gồm nhiều web page như chúng ta đã đề cập ở trên, đó là các tập tin htmlhoặc xhtml được lưu trữ tại máy chủ web server, thông tin trên đó có nhiều dạng như vănbản, âm thanh, hình ảnh, video…

Các máy tính ở những nơi khác nhau sử dụng trình duyệt để gửi thông tin request lên chomáy chủ thông qua đường truyền Internet, máy chủ web server sẽ trả về thông tin chomáy khách phía người dùngvà hiển thị lên trình duyệt Các thông tin máy chủ webservertrả về được hiển thị lại đúng với các yêu cầu request của người dùng gửi lên

Giao thức hoạt động chính của website là HTTP dùng để gửi và nhận gói tin giữa máychủ webserver và máy khách client

Để website hoạt động được trên môi trường Internet thì cần phải có các thành phần chính:

 Source code (Mã nguồn): phần này thường do các lập trình viên thiết kế và triển khai,source code sẽ là nơi quy định cách thức hoạt động cũng như vận hành của website

 Web hosting (Lưu trữ web): nơi dùng để lưu trữ Source code, để website có thể chạy

được trên môi trường thực tế

 Domain (Tên miền): địa chỉ của website để các máy tính ở các nơi khác truy cập vào.

Là tên mà mọi người gõ trên trình duyệt, do tên miền đã được trỏ về địa chỉ webservernên trình duyệt sẽ gửi yêu cầu lên webserver Nếu không có tên miền thì chúng ta phảinhớ chính xác địa chỉ của webserver thì mới truy cập được Nói cách khác tên miềngiống như địa chỉ ngôi nhà, dựa vào địa chỉ có thể tìm thấy được ngôi nhà của bạn

Để có thể truy cập vào một website thì chắc chắn phải cần đến đường truyền Internet,Internet giúp ta gửi và nhận thông tin giữa máy tính và webserver, là cầu nối để tìm kiếmthông tin và hoạt động trên môi trường Internet

Phân loại website: được chia thành 2 loại

Trang 14

 Website động (Dynamic web)

Website tĩnh là website sử dụng ngôn ngữ đánh dấu siêu văn bản HTML cùng với CSS

và JavaScript để hiển thị thông tin Sau khi tải các thông tin cần thiết từ webserver về,trình duyệt sẽ biên dịch mã và hiển thị nội dung trang web, người dung hầu như không thểtương tác được với trang web chỉ có thể hiển thị các thông tin cố định

Website tĩnh thường không có sự tương tác với người dung nên thường được sử dụng đểlàm website giới thiệu công ty, giới thiệu sản phẩm…

Ưu điểm của website tĩnh

 Tốc độ truy cập nhanh

 Giá thành sản phẩm rẻ hơn, chi phí đầu tư thấp,

 Không cần người có kinh nghiệm quản trị, nội dung ít bị thay đổi

Nhược điểm: Khó quản lí, nâng cấp, bảo trì

Website động là website ngoài sử dụng HTML, CSS, JavaScript thì còn sử dụng thêm

một ngôn ngữ lập trình phía back-end như Java, PHP, ASP.NET và hệ quản trị cơ sở dữliệu như MySQL, SQL Server, MongoDB Nội dung website có thể thay đổi dễ dàng, cótính tương tác với người dùng

Ưu điểm của website động:

 Có tính tương tác với người dùng

 Có trang quản lí, dễ dàng thay đổi thông tin, quản trị nội dung

 Có thể xây dựng được hệ thống website lớn

 Dễ dàng nâng cấp, bảo trì

Nhược điểm: Chi phí xây dựng website cao, cần những người có chuyên môn cao

Website động thích hợp làm cho các hệ thống quản lí bán hàng, quản lí dịch vụ, websitehọc tập, tin tức

Trang 15

2.2 Tìm hiểu về HTML, CSS, JS

2.2.1 HTML (HyperText Markup Language)

Là ngôn ngữ đánh dấu siêu văn bản được phát hành vào năm 1999, dùng để định dạng bốcục của trang web, các thuộc tính liên quan đến cách hiển thị của một đoạn text và đượchiển thị trên browser, browser sẽ biên dịch HTML và hiển thị lên cho người dùng

HTML là một định dạng đặc biệt của XML nên có cú pháp:<tagname> </tagname> Bốcục của một website gồm rất nhiểu thẻ khác nhau, mỗi thẻ có một nhiệm vụ nhất định của

nó Các thẻ chính như: <p>, <h1>, <img> HTML đóng vai trò rất quan trọng trong việcxây dựng website, xây dựng cấu trúc siêu văn bản trên một website, hoặc khai báo các tậptin kĩ thuật số, hình ảnh, video, âm thanh

HTML là một tập tin siêu văn bản nên ta có thể dùng các chương trình soạn thảo văn bảnnhư NotePad, trình editor Visual Studio Code, SublimeText để lập trình và phát triển.Các phiên bản HTML: HTML5 được phát hành mới nhất vào năm 2014, so với HTML thìHTML5 hỗ trợ thêm các tính năng quan trọng như: khả năng hỗ trợ video và audio, lậptrình viên có thể nhúng trực tiếp file video/audio vào trang web thông qua các cặp thẻ

<audio> và <video>

HTML5 hỗ trợ thêm nhiều thẻ định dạng khác nhau như <section>, <article> các địnhdạng như: email, url, ngày/giờ

Ưu điểm của HTML:

 Có nhiều tài nguyên hỗ trợ và cộng đồng lập trình lớn

 Có thể hoạt động trên tất cả các trình duyệt hiện nay

 Các markup sử dụng trong HTML thường ngắn gọn, có độ đồng nhất cao

 Đây là mã nguồn mở, hoàn toàn miễn phí, là chuẩn web được quy định bởi W3C

 Dễ dàng tích hợp được với các loại ngôn ngữ back-end như Java, PHP, Node.js

Nhược điểm của HTML:

 Khó kiểm soát cách đọc và hiển thị file của các trình duyệt cũ, không render được cáctagname mới

 Một vài trình duyệt chậm cập nhật hỗ trợ các tính năng mới của HTML5

Trang 16

2.2.2 CSS (Cascading Style Sheet Language)

CSS dùng để định dạng lại phần tử của trang web được tạo ra bởi HTML Phương thứchoạt động của CSS là nó sẽ tìm dựa vào các vùng chọn có thể là tên một thẻ HTML, tênmột ID, class, sau đó sẽ áp dụng các thuộc tính cần thay đổi lên vùng chọn đó

Cấu trúc cơ bản của một thành phần CSS

Hình 2.2 Cấu trúc của một thành phần CSS

Selector: là thành phần nhận biết thẻ HTML để định dạng

Property: là các thuộc tính của thẻ HTML

Value: là giá trị của thuộc tính, quyết định thay đổi định dạng thẻ như thế nào

Cách nhúng CSS vào website:

 Inline Styles: Nhúng trực tiếp vào tài liệu HTML thông qua cặp thẻ <style></style>

 External Styles: Tạo một tập tin css riêng biệt và nhúng vào tài liệu HTML thông qua

thẻ <link>

Với việc áp dụng CSS trong thiết kế giao diện website giúp chúng ta có thể định dạng cácphần tử giống theo ý muốn của mình từ đó tạo ra các trang web sinh động, phong phúhơn

CSS là một thành phần không thể thiếu được đối với mỗi website, làm cho trang web đẹphơn, phù hợp với yêu cầu khách hàng

2.2.3 Bootstrap

Là sản phẩm của Mark Otto và Jacob Thornton tại Twitter, được xuất bản như một mã

Trang 17

Bootstrap là một framework bao gồm các thẻ HTML, CSS và Javascript template dùng đểphát triển website chuẩn responsive (phù hợp với nhiều kích thước màn hình) Ngườidùng có thể dễ dàng thiết kế website theo một chuẩn nhất định đã được đề ra, tạo ra cácwebsite phù hợp với kích thước màn hình như máy tính, ipad, mobile

Bootstrap giúp cho quá trình thiết kế websiste nhanh chóng hơn dựa trên những thànhphần sẵn có như button, table, navigation nó chứa tập tin html, css, js đã được biên dịch

và nén lại, tái sử dụng một cách dễ dàng

Những ưu điểm mà Bootstrap mang lại:

 Rất dễ sử dụng: nó được xây dựng trên HTML, CSS và JS chỉ cần có kiến thức cơ bản

về 3 thành phần này có thể sử dụng được framework này

 Bootstrap xây dựng sẵn responsive css trên các thiết bị mobile, desktop Tính năngnày khiến cho người dùng tiết kiệm được rất nhiều thời gian trong việc tạo ra cácwebsite phù hợp với kích thước màn hình

 Tương thích với các trình duyệt: nó tương thích với tất các các trình duyệt hiện naynhư: Chrome, Firefox, Internet Explorer, Safari

JS là một ngôn ngữ lập trình đa nền tảng(cross-platform), ngôn ngữ lập trình kịch bản,

hướng đối tượng, ngôn ngữ lập trình nhỏ và nhẹ (small and lightweight) JS chứa các thư

viện tiêu chuẩn cho Object như: Array, Date, Math toán tử(operators), cấu trúc điềukhiển (control structure), câu lệnh

Trang 18

JS là một trong nhưng ngôn ngữ lập trình phổ biến nhất thế giới, nó cũng là một trongnhững thành phần không thể thiếu được trong các trang web, nó được nhúng vào websitequa file js hoặc nhúng trực tiếp thông qua thẻ <script></script> và được hỗ trợ trên hầuhết trình duyệt hiện nay.

Ưu điểm của JS:

 Cú pháp đơn giản hơn so với các ngôn ngữ lập trình khác

 Có thể sử dụng được cả ở server-side và client-side Ở client-side js được mở rộng chophép một ứng dụng tác động lên các yếu tố của một trang HTML, phản hồi lại thao táccủa người dùng như click chuột nhập form, chuyển trang Ở phía server-side thì js kếtnối tới cơ sở dữ liệu, cung cấp thông tin một cách liên tục từ một yêu cầu tới phần kháccủa ứng dụng hoặc thực hiện thao tác trên máy chủ

 JS tương đối nhanh với người dùng cuối, quá trình xử lý hoàn thành hầu như ngay lậptức tùy thuộc vào nhiệm vụ

 Hỗ trợ nhiều trình duyệt: hầu hết mọi trình duyệt máy tính và điện thoại đều được hỗtrợ

Nhược điểm:

 JS không có khả năng xử lý đa luồng

 Client-side không cho phép người đọc và ghi file bởi lý do bảo mật

 Dễ bị khai thác dùng để thực thi mã độc

Cách sử dụng:

 Internal: viết trực tiếp trong file HTML được đặt trong thẻ <script>

 External: viết ra một file js khác, sau đó import vào thông qua thẻ

<script src="demo.js" language="javascript"></script>

 Inline: viết trực tiếp trong thẻ HTML

<input type="button" onclick="alert(1)" value="Click Me"/>

Trang 19

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

2.3.1 Lịch sử phát triển

Java được phát triển bởi James Glosing và các đồng nghiệp ở Sun MicroSystem năm

1991, ban đầu ngôn ngữ có tên là Oak, sau đó mới đổi tên thành Java vào năm 1995 Java

được phát hành vào năm 1994 và trở nên nổi tiếng khi Netscape tuyên bố tại hội thảo

SunWorld năm 1995 Năm 2009 Oracle mua lại công ty Sun MicroSystems và ngôn ngữ

lập trình Java được phát triển hơn [3]

Java được tạo ra với tiêu chí “Write One, Run Anywhere” (Viết một lần, thực thi mọinơi), chương trình được viết bằng java có thể chạy trên mọi nền tảng khác nhau thông quamáy ảo biên dịch

Các ứng dụng của Java

 Phát triển ứng dụng cho hầu hết các thiết bị điện tử thông minh

 Phát triển các ứng dụng doanh nghiệp với quy mô lớn (Java Enterprise Edition)

 Phát triển các trang web với nội dung động, phát triển ứng dụng di động Android

 Phát triển các hệ thống của server

 Phát triển nhiều loại ứng dụng khác nhau như: cơ sở dữ liệu, mạng Interner, viễnthống, giải trí

2.3.2 Các đặc điểm cơ bản của ngôn ngữ lập trình Java

Có 12 tính năng chính của Java [4]

Trang 20

Hình 2.3 Các đặc điểm cơ bản của ngôn ngữ lập trình Java

Đơn giản (Simple): ngôn ngữ java có đặc điểm đơn giản vì

 Cú pháp dựa trên C, C++ nên dễ dàng tiếp cận

 Loại bỏ nhiều điểm gây rối và hiếm khi được sử dụng như con trỏ, nạp chồng toán tử

 Không cần xóa các đối tượng mà không được tham chiếu vì Java có bộ thu gọn rác(Garbage Collection) tự động thực thi

Hướng đối tượng (Object Oriented): tổ chức phần mềm dưới dạng kết hợp của nhiêu

loại đối tượng khác nhau trong đó có sự kết hợp chặt chẽ

Các tính chất của lập trình hướng đối tượng:

 Tính kế thừa (inheritance)

 Tính đa hình (polymorphism)

 Tính trừu tượng (abstract)

 Tính đóng gói (encapsulation)

Độc lập nền tảng (Platform Independent): Java có thể chạy trên nhiều nền tảng như

Windows, Linux, MacOS Java code được biên dịch bởi trình biên dịch và được chuyểnthành mã bytecode, mã bytecode này là code độc lập nền tảng nên nó có thể chạy trênnhiều nền tảng khác nhau

Bảo mật (Secured): do không có con trỏ tường minh, chương trình chạy bên trong máy

ảo, có các phân tầng như: Classloader, Bytecode verify, Security Manager càng tăng thêmphần bảo mật cho Java

Mạnh mẽ (Robust): Java sử dụng trình quản lí bộ nhớ mạnh mẽ, trình dọn rác tự động

(Garbage Collection), xử lý ngoại lệ (Exception Handing)

Kiến trúc tập chung (Architecture-neutral): một ứng dụng được biên dịch trên kiến

trúc phần cứng này và ứng dụng đó chạy được trên cả các kiến trúc phần cứng khác

Khả chuyển (Portable): Java có thể thực thi ứng dụng của nó trên tất cả các hệ điều hành

và phần cứng khác nhau

Trang 21

Hiệu suất cao (High performance): Java nhanh hơn kể từ khi được biên dịch thành mã

bytecode

Đa luồng (Multi-thread): Java hỗ trợ lập trinh đa tiến trình có thể xử lý nhiều tác vụ

trong một thời điểm bằng việc định nghĩa nhiều Thread

Phân tán (Distribute): java được sử dụng để tạo ra các ứng dụng phân tán.

Thông dịch (Interpreter): máy ảo java (Java Virtual Machine) sẽ thông dịch mã

bytecode này thành mã máy để máy có thể hiểu và đọc được

2.3.3 Các platform cơ bản của Java

Hình 2.4 Các platform cơ bản của Java

 Máy ảo Java (JVM-Java Virtual Machine): cho phép chạy các chương trình java cũngnhư các chương trình khác được viết bằng ngôn ngữ khác mà được biên dịch sang mãbytecode

 Java API (Java Application Programming Interface): là bộ thư viện các lớp, gói và giaodiện java có sẵn Lập trình viên có thể sử dụng các gói thư viện đã có sẵn này để triểnkhai ứng dụng

Trang 22

 JRE (Java Runtime Environment): được sử dụng để cung câp môi trường run time chojava JRE gồm tập hợp các thư viện và file khác mà JVM sử dụng tại thời điểmruntime.

 JDK (Java Development Kit): là bộ phần mềm cung cấp môi trường để phát triển ứngdụng, JDK bao gồm JRE và các Development tools

2.3.4 Cài đặt và lập trình Java

Cài đặt JDK tại: https://www.oracle.com/java/technologies/javase-downloads.html

Thiết lập môi trường cho Java: cài đặt JAVA_HOME trong Environment

Kiểm tra java đã được cài đặt bằng lệnh: java -version trong màn hình Command prompt

Hình 2.5 Kiểm tra cài đặt cho JavaCài đặt IDE hỗ trợ lập trình Java: có thể sử dụng các IDE như Eclipse, Intellij,NetBeans Chạy chương trình đầu tiên hiển thị ra thông tin Hello, World!

Hình 2.6 Chạy chương trình Java đầu tiên Kết quả:

Trang 23

Hình 2.7 Kết quả chạy chương trình

Các module chính của Spring Framework

 Spring Core: là thành phần cốt lõi của Spring Framework, là nền tảng để xây dựng lêncác thành phần khác trong hệ sinh thái Spring

 Spring Context: là file cấu hình cung cấp các thông tin cho Spring Spring context cungcấp các service như: EJB,Validation

 Spring AOP: cung cấp các dịch vụ quản lí giao dịch cho các đối tượng trong bất kì ứngdụng nào sử dụng Spring Ta có thể tích hợp declative transaction management vàotrong ứng dụng mà không cần dựa vào EJB component

 Spring DAO: tầng JDBC và DAO đưa ra một cây phân cấp exception để quản lí và kếtnối database, điều khiển exception, thông báo lỗi, module này cũng cung cấp các dịch

vụ quản lí giao dịch cho các đối tượng trong ứng dụng spring

 Spring ORM: cung cấp Object Relation tool bao gồm: Hibernate, OJB và iBatis SQLMaps

 Spring web module: nằm trên application Context module, cung cấp context cho ứngdụng web Spring web module cũng hỗ trợ tích hợp với Struts, JSF

 Spring MVC Framework: có đầy đủ các đặc tính của MVC pattern để xây dựng cácứng dụng Web, Spring MVC Framework được cấu hình thông qua giao diện và chứađược một số kĩ thuật view bao gồm: JSP, Tiles

Trang 24

Hình 2.8 Các module chính trong Spring Framework

2.5 Spring MVC Framework

MVC là viết tắt của Model -View- Controller

Spring MVC cung cấp kiến trúc Model-View-Controller và các thành phần khác(cácchuẩn API) để có thể dễ dàng phát triển các ứng dụng web Mô hình MVC phân tách racác lớp riêng biệt (logic đầu vào,logic business, giao diên người dùng) để dễ dàng pháttriển và cung cấp sự kết nối giữa các yếu tố này

 Model: là thành phần chứa các nghiệp vụ logic, quản lý thông tin, xử lý, truy xuất

database ngoài ra còn có khả năng lưu trữ và vận chuyển thông tin Quá trình gửi dữliệu vào Model sẽ được thực hiện bởi Controller

 View: là thành phần chứa giao diện, tương tác với người dùng.

- View có nhiệm vụ trình bày các dữ liệu từ Model đến người dùng cuối.

- Thu nhận các hoạt động, yêu cầu từ người dùng và chuyển đến cho tầng Controller

xử lý

- View có thể là các trang html hay jsp

 Controller: nhiệm vụ của Controller là điều hướng request từ người dùng và gọi

phương thức để xử lý request đó, tương tác với Model để gọi View và hiển thị thông

Trang 25

Ưu điểm và nhược điểm của mô hình MVC

 Ưu điểm:

- Tạo mô hình chuẩn cho phát triển dự án

- Mô hình triển khai rõ ràng mạch lạc, dễ dàng xử lý các nghiệp vụ Trình tự xử lý rõràng, riêng biệt, độc lập với các thành phần khác, các thành phần có thể tương tácđược với nhau

- Dễ dàng nâng cấp, maintain, bảo trì code do chia ra thành các thành phần độc lâp

và thực hiện code theo một tiêu chuẩn cố định

 Nhược điểm:

- Đối với các dự án nhỏ thì việc áp dụng mô hình MVC làm cho công việc cồng

kềnh hơn, xử lý chi tiết qua nhiều tầng gây ra nhiều phức tạp

- Phân chia công việc không đồng đều do phần Model phải xử lý rất nhiều các tác vụ

của hệ thống

Luồng xử lý trong Spring MVC: được thiết kế xoay quanh cách hoạt động củaDispathcher Servlet cho phép xử lý tất cả các HTTP request và response

Hình 2.9 Luồng xử lý request và respone

 Khi nhận được một yêu cầu HTTP request, Dispatcher Servlet sẽ chỉ định cho mộtHandler Mapping tiếp nhận request đó

Trang 26

 Handler Mapping sẽ ánh xạ yêu cầu của request đến một Controller thích hợp.Controller tiếp nhận yêu cầu và gọi đến các Service để xử lý logic business và trả vềtên View cho Dispatcher Servlet

 Dispatcher Servlet dựa vào View Resolver để xác định chính xác View cần trả về choyêu cầu request trên

 Khi chọn được View hoàn thành, Dispatcher Servlet sẽ chuyển model dữ liệu tới View

đó và render lên trình duyệt

2.6 SpringBoot

Là một dự án được phát triển trong hệ sinh thái của Spring Framework, nó giúp cho lậptrình viên đơn giản hóa trong việc phát triển ứng dụng, đơn giản hóa cấu hình mà chỉ cầntập chung vào vào việc phát triển business cho người dùng

SpringBoot là một module của Spring, cung cấp tính năng RAD (Rapid Application

Development) - phát triển ứng dụng nhanh Với việc phát triển các ứng dụng bằng Spring

Boot thì quá trình diễn ra nhanh chóng và thuận tiện hơn

SpringBoot có giúp chúng ta tạo dự án nhanh chóng và cấu hình dễ dàng với các tínhnăng nổi bật như:

 Được các Dependency cung cấp và hỗ trợ giúp cho việc cấu hình Maven đơn giản hơn

 Cấu hình ít, tự động cấu hình Spring khi cần thiết, giảm thời gian viết code cấu hình

 Không sinh code cấu hình và không yêu cầu phải cấu hình bằng XML

 Cung cấp nhiều plugin hỗ trợ

Cấu trúc 1 dự án SpringBoot: được build bằng maven

Trang 27

Hình 2.10 Cấu trúc một dự án Spring Boot

 Folder java để lưu các file code của hệ thống, code Java được lưu trong file java

 Folder resource để lưu thông tin các file hình ảnh, file html

 File pom, application.properties để lưu thông tin cấu hình của hệ thống

2.7 Spring Security

Là một dự án nổi bật trong Spring Framework, cung cấp các dịch vụ bảo mật toàn diệncho các ứng dụng doanh nghiệp có nền tảng Java EE (Java Enterprise Edition)

Spring Security cung cấp 2 cơ chế xác thực cơ bản

 Authentication (xác thực): là tiến trình thiết lập một principal Principal có thể hiểu làmột người, hoặc một thiết bị, hoặc một hệ thống nào đó có thể thực hiện một hànhđộng trong ứng dụng của bạn

 Authorization (phân quyền): là tiến trình quyết định xem một principal có được phépthực hiện một hành động trong ứng dụng của bạn hay không Trước khi tiến tới quátrình xác thực Authorization, principal cần phải được xác thực bởi Authentication.Các thành phần chính trong Spring Security:

 SecurityContext là interface cốt lõi của Spring Security, lưu trữ tất cả các chi tiết liênquan đến bảo mật trong ứng dụng Khi chúng ta kích hoạt Spring Security trong ứng

Trang 28

 UserDetails và UserDetailsService: là một interface cốt lõi của Spring Security Nó đạidiện cho một principal nhưng theo một cách mở rộng và cụ thể hơn gồm có các method

hỗ trợ kèm theo cho việc xác thực và bảo mật

 SecurityContextHolder Lớp này lưu trữ security context hiện tại của ứng dụng, baogồm chi tiết của principal đang tương tác với ứng dụng Spring Security sẽ dùng mộtđối tượng Authentication để biểu diễn thông tin này

 GrantedAuthority: phương thức getAuthorities() sẽ trả về một tập hợp các đối tượngGrantedAuthority Một GrantedAuthority là một quyền được gán cho principal Cácquyền đều có tiền tố là ROLE_, ví dụ như ROLE_ADMIN, ROLE_MEMBER

2.8 Hệ quản trị cơ sở dữ liệu MySQL

Hình 2.11 Hệ quản trị cơ sở dữ liệu MySQL

Là hệ thống quản trị cơ sở dữ liệu mã nguồn mở (Relational Database ManagermentSystem – RDBMS) hoạt động theo mô hình Client – Server, được phát triển vào năm

1994 bởi công ty Thụy Điển MYSQL AB Sau đó vào năm 2008, công ty công nghệ MỹSun Microsystem mua lại và nắm quyền sở hữu Năm 2010 Oracle mua lại SunMicrosystem và từ đó MySQL thuộc sở hữu của Oracle [5]

Các phiên bản của MySQL:

 Phiên bản 5.5 phát hành năm 2010

 Phiên bản 5.6 phát hành năm 2013

 Phiên bản 5.7 phát hành năm 2015

Trang 29

 Phiên bản 8.0 phát hành năm 2019

MySQL là một trong số các phần mềm RDBMS do độ phổ biến của nó cũng như các lợiích mà nó mang lại Các ứng dụng web lớn đều đang sử dụng bởi ưu điểm là tương thíchvới nhiều hệ thống như Linux, macOS, Windows

MySQL được tích hợp apache, PHP quản lí dữ liệu thông qua các cơ sở dữ liệu Mỗi cơ

sở dữ liệu có thể có nhiều bảng quan hệ chứa dữ liệu Có 2 phiên bản được hình thành là:MySQL Community Server miễn phí và MySQL Enterprise Server có phí

Cách thức MySQL hoạt động: hoạt động với mô hình Client-Server

Hình 2.12 Mô hình Client – Server

 MySQL tạo ra bảng để lưu trữ dữ liệu, định nghĩa mối liên kết giữa các bảng dữ liệuđó

 Từ client gửi yêu cầu truy vấn SQL lên server

 Server sẽ truy vấn dữ liệu trong Database và trả về các thông tin kết quả cho máyclient

SQL và MySQL là 2 thành phần khác nhau MySQL là môt trong các phần mềm RDBMShoạt động theo mô hình Client-Server, nhưng để có thể liên lạc và hiểu được giữa client-server thì cần phải có ngôn ngữ truy vấn có cấu trúc SQL (Structured Query Language)

Vì vậy SQL và MySQL là 2 thành phần khác nhau

Ưu điểm của MySQL:

 Sư linh hoạt: MySQL sử dụng được hầu hết trên các platform như Linux, MacOS,Windows

Trang 30

 Dễ sử dụng: MySQL là hệ quản trị cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng,hoạt động trên nhiều hệ điều hành, cung cấp một hệ thống lớn các hàm tiện ich rấtmạnh mẽ.

 Độ bảo mật cao, hiệu năng cao: thích hợp cho việc xây dựng các ứng dụng có lượngtruy cập dữ liệu lớn và chi phí thấp nhưng độ bảo mật cao Hệ thống phân quyền truycập và quản lí tài khoản của MySQL đạt tiêu chuẩn bảo mật cao, mã hóa các thông tin

 Không đươc toàn quyền kiểm soát: một số quy tắc nghiệp vụ ẩn trong cơ sở dữ liệu hanchế cho các lập trình viên quản lý

2.9 Json web token

2.9.1 Json web token là gì?

JSON Web Mã (JWT) là một chuẩn mở (RFC 7519) định nghĩa một cách nhỏ gọn vàkhép kín để truyền một cách an toàn thông tin giữa các bên dưới dạng đối tượng JSON.Thông tin này có thể được xác minh và đáng tin cậy vì nó có chứa chữ ký số JWTs có thểđược ký bằng một thuật toán bí mật (với thuật toán HMAC) hoặc một public / private key

sử dụng mã hoá RSA

Một ví dụ về JWT Token:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEzODY4OTkxMzEsImlzcyI6ImppcmE6MTU0ODk1OTUiLCJxc2giOiI4MDYzZmY0Y2ExZTQxZGY3YmM5MGM4Y

Trang 31

Thoạt trông phức tạp là thế nhưng nếu hiểu, cấu trúc của một JWT chỉ đơn giản như sau:

<base64-encoded header > <base64-encoded payload > <base64-encoded

signature >

Nói một cách khác, JWT là sự kết hợp (bởi dấu ) một Object Header dưới định dạngJSON được encode base64, một payload object dưới định dạng JSOn được encode base64

và một Signature cho URI cũng được mã hóa base64 nốt

2.9.2 Giải thích về ba thành phần của jwt token

Header bao gồm hai phần chính: loại token (mặc định là JWT - Thông tin này cho biếtđây là một Token JWT) và thuật toán đã dùng để mã hóa (HMAC SHA256 - HS256 hoặcRSA)

Reserved claims: Đây là một số metadata được định nghĩa trước, trong đó một sốmetadata là bắt buộc, số còn lại nên tuân theo để JWT hợp lệ và đầy đủ thông tin: iss(issuer), iat (issued-at time) exp (expiration time), sub (subject), aud (audience), jti(Unique Identifier cho JWT, Can be used to prevent the JWT from being replayed This ishelpful for a one time use token.) Ví dụ:

{

Trang 32

Public Claims - Claims được cộng đồng công nhận và sử dụng rộng rãi.

Private Claims - Claims tự định nghĩa (không được trùng với Reserved Claims và Public

Claims), được tạo ra để chia sẻ thông tin giữa 2 parties đã thỏa thuận và thống nhất trướcđó

Signature

Trang 33

Chữ ký Signature trong JWT là một chuỗi được mã hóa bởi header, payload cùng với mộtchuỗi bí mật theo nguyên tắc sau:

When should you use JSON Web Tokens?

Một trong những tình huống ứng dụng JWT thường gặp, đó là:

Authentication: Tình huống thường gặp nhất, khi user logged in, mỗi request tiếp đó đềukèm theo chuỗi token JWT, cho phép người dùng có thể truy cập đường dẫn, dịch vụ vàtài nguyên được phép ứng với token đó Single Sign On cũng là một chức năng có sửdụng JWT một cách rộng rãi, bởi vì chuỗi JWT có kích thước đủ nhỏ để đính kèm trongrequest và sử dụng ở nhiều hệ thống thuộc các domain khác nhau

Information Exchange: JSON Web Token cũng là một cách hữu hiệu và bảo mật để traođổi thông tin giữa nhiều ứng dụng, bởi vì JWT phải được ký (bằng cặp public / privatekey), bạn có thể chắc rằng người gửi chính là người mà họ nói rằng họ là (nói tóm tắt hơn

là không hoặc khó để mạo danh bằng JWT), ngoài ra, chữ ký cũng được tính toán dựatrên nội dung của header và nội dung payload, nhờ đó, bạn có thể xác thực được nội dung

là nguyên bản, chưa được chỉnh sửa hoặc can thiệp Tuy nhiên, một lưu ý hết sức quantrọng là do cấu trúc của JWT đơn giản nên JWT có thể dễ dàng bị decode, do vậy, bạnkhông nên dùng JWT để transfer các thông tin nhạy cảm

How do JSON Web Tokens work?

Ở đây, mình ví dụ cụ thể ứng dụng của JWT trong bài toán Authenticate (xác thực) Trong việc xác thực, khi user đăng nhập thành công (Browser sẽ post username và mậtkhẩu về Server), Server sẽ trả về một chuỗi JWT về Browser, và Token JWT này cầnđược lưu lại trong Browser của người dùng (thường là LocalStorage hoặc Cookies), thay

Trang 34

-Bất cứ khi nào mà User muốn truy cập vào Route được bảo vệ (mà chỉ có User đã đăngnhập mới được phép), Browser sẽ gửi token JWT này trong Header Authorization, Bearerschema của request gửi đi.

Authorization: Bearer <token>

Đây là cách mà stateless (phi trạng thái) authentication làm việc, trạng thái của userkhông được lưu trong bộ nhớ của Server mà được đóng gói hẳn vào trong JWT Server sẽkiểm tra Token JWT này có hợp lệ hay không (Bởi vì JWT có tính chất self-contained,mọi thông tin cần thiết để kiểm tra JWT đều đã được chứa trong Token JWT)

Do tính chất stateless nên chúng ta không còn phải lo lắng về domains nào được sử dụngcho API của bạn, như không còn gặp rắc rối với CORS (Cross-Origin Resource Sharing)

vì nó không sử dụng cookies

Sơ đồ dưới đây cho thấy quá trình này

Ngày đăng: 03/03/2024, 09:40

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN