1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo phần mềm mã nguồn mở tìm hiểu idea eclipse

113 82 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

Định dạng
Số trang 113
Dung lượng 12,59 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Báo cáo phần mềm mã nguồn mở tìm hiểu idea eclipse jspservlet và ứng dụng để xây dựng website bán điện thoại đi động bằng ngôn ngữ java Chương 1: Tổng quan về Website bán điện thoại di động Chương 2: Sơ lược về phần mềm mã nguồn mở và công cụ thực hiện Chương 3: Phân tích thiết kế hệ thống Chương 4: Thử nghiệm và đánh giá

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN -

BÁO CÁO THỰC NGHIỆM THUỘC HỌC PHẦN:

PHẦN MỀM MÃ NGUỒN MỞ

TÌM HIỂU IDEA ECLIPSE, JSP/SERVLET VÀ ỨNG DỤNG ĐỂ XÂY DỰNG WEBSITE BÁN ĐIỆN THOẠI DI ĐỘNG BẰNG NGÔN NGỮ JAVA

GVHD:

Sinh viên :

Nhóm:

Trang 2

Mở đầu

Trong thời đại kỷ nguyên số ngày nay, Công nghệ thông tin không những

là một phương tiện hữu ích mà còn giữ vai trò ngày càng quan trọng trong côngviệc quyết định trình độ phát triển từng khu vực, từng quốc gia, thông qua việcngày càng làm tăng năng suất một cách tối đa Việc áp dụng công nghệ tân tiếntrong mọi mặt đời sống là một điều tất yếu

Khi xã hội ngày càng phát triển, mức sống của người dân được nâng caothu nhập kinh tế ngày càng được cải thiện thì việc mua sắm, shopping khôngcòn là xa xỉ với mọi người nữa mà ngược lại nó là nhu cầu cần thiết với ngườidân hiện nay Hầu hết mỗi người đều có nhu cầu mua sắm cho bản thân và giađình mình Tuy nhiên, với cuộc sống ngày càng bận rộn như hiện nay thì việcmuốn mua một món đồ mình ưa thích thì người tiêu dùng phải đến tận cửa hàng

để chọn lựa vì thế sẽ mất khá nhiều thời gian và công sức

Cùng với các lý do nêu trên, qua tìm hiểu nhóm đồ án được biết việc ứngdụng bán hàng trực tuyến sẽ giúp cho khách hàng giảm bớt được thời gian vàcông sức phải đến tận cửa hàng để mua Muốn lựa chọn cho mình một sản phẩmưng ý phù hợp với túi tiền thì khách hàng chỉ cần ngồi bên chiếc máy tính cónối mạng internet là có thế mua được mặt hàng mình cần

Do đó nhóm đề tài chọn thực hiện đề tài “Tìm hiểu IDE Eclipse,JSP/Servlet và ứng dụng xây dựng Website bán điện thoại di động bằng ngônngữ Java”

Phần mềm được xây dựng với định hướng giúp việc mua sắm của kháchhàng dễ dàng và nhanh gọn hơn, không mất thời gian và công sức

Trang 3

M c l c ục lục ục lục

Danh sách hình vẽ - Biểu đồ 4

Chương 1 Tổng quan về Website bán điện thoại di động 6

1.1 Tổng quan: 6

1.2 Tìm hiểu IDE Eclipse, JSP/Servlet và ứng dụng xây dựng Website bán điện thoại di động bằng ngôn ngữ Java 7

1.3 Công nghệ sử dụng: 7

Chương 2 Sơ lược về phần mềm mã nguồn mở và công cụ thực hiện 8

2.1 Tổng quan về phần mềm mã nguồn mở 8

2.1.1 Giới thiệu về phần mềm mã nguồn mở 8

2.1.2 Ưu- nhược điểm của phần mềm mã nguồn mở 8

2.1.2.1 Ưu điểm 8

2.1.2.2 Nhược điểm 9

2.2 Giới thiệu Eclipse IDE 10

2.3 Giới thiệu về ngôn ngữ lập trình Java 11

2.3.1 Tổng quan về Java 11

2.3.2 Các ứng dụng và lợi ích của Java 11

2.4 Giới thiệu về JSP/Servlet 12

2.4.1 Tổng quan 12

2.4.2 Chu trình sống 12

2.4.2.1 Biên dịch trang 13

2.4.2.2 Nạp trang 13

2.4.2.3 Khởi tạo 13

2.4.2.4 Thực thi 14

2.4.2.5 Dọn dẹp 14

Chương 3 Phân tích thiết kế hệ thống 15

3.1 Khảo sát hiện trạng: 15

3.2 Các chức năng của hệ thống 15

Trang 4

3.3 Phân tích use case 17

3.3.1 Biểu đồ use case tổng quát 17

3.3.2 Đặc tả use case 19

3.3.2.1 Mô tả use case “Xem thông tin sản phẩm” 19

3.3.2.2 Mô tả use case “Tìm kiếm sản phẩm” 22

3.3.2.3 Mô tả use case “Xem danh mục” 24

3.3.2.4 Mô tả Use case “Xem sản phẩm theo danh mục” 27

3.3.2.5 Mô tả use case “Bình Luận” 30

3.3.2.6 Mô tả Use case “Quản lí giỏ hàng” 34

3.3.2.7 Mô tả use case “Đặt Hàng” 37

3.3.2.8 Mô tả Use case: “Đăng kí” 41

3.3.2.9 Mô tả use case: “Sửa thông tin tài khoản” 43

3.3.2.10 Mô tả use case: Đăng nhập 48

3.3.2.11 Mô tả use case “Bảo trì danh mục” 51

3.3.2.12 Mô tả use case “Bảo trì sản phẩm” 57

3.3.2.13 Mô tả use case “Duyệt đơn hàng” 63

3.3.2.14 Mô tả Use case “Quản lý đợt giảm giá” 68

3.3.2.15 Mô tả Use case “Báo cáo tồn kho” 75

3.3.2.16 Mô tả Use case “Quản lý nhập hàng” 77

3.4 Mô hình dữ liệu quan hệ 83

3.5 Thiết kế dữ liệu 84

3.5.2 Từ điển dữ liệu 85

Chương 4 Thử nghiệm và đánh giá 94

4.1 Hướng dẫn cài đặt và demo sản phẩm: 94

4.1.1 Cài đặt chương trình 94

4.1.2 Demo sản phẩm 99

4.1.2.1 Giao diện người dùng 99

4.1.2.2 Giao diện người quản trị 105

4.2 Kết luận: 111

Tài liệu tham khảo 112

Trang 5

Danh sách hình vẽ - Biểu đồ

Bảng 3 1: Bảng dữ liệu Category 85

Bảng 3 2: Bảng dữ liệu Brand 85

Bảng 3 3: Bảng dữ liệu Product 86

Bảng 3 4: Bảng dữ liệu OrderDetail 86

Bảng 3 5: Bảng dữ liệu Order 87

Bảng 3 6: Bảng dữ liệu Employee 88

Bảng 3 7: Bảng dữ liệu GoodReceipt 88

Bảng 3 8: Bảng dữ liệu Seri 89

Bảng 3 9: Bảng dữ liệu Bill 89

Bảng 3 10: Bảng dữ liệu GoodReceiptDetail 90

Bảng 3 11: Bảng dữ liệu Promotion 90

Bảng 3 12: Bảng dữ liệu Promotion_Detail 91

Bảng 3 13: Bảng dữ liệu Comment 91

Bảng 3 14: Bảng dữ liệu Customers 92

Hình 3 1: Mô hình Diagram 84

Hình 3 2: Giao diện trang chủ website 98

Hình 3 3: Giao diện sau khi đăng nhập 99

Hình 3 4: Giao diện đăng kí khách hàng 100

Hình 3 5: Giao diện hồ sơ khách hàng 100

Hình 3 6: Giao diện đổi mật khẩu khách hàng 101

Trang 6

Hình 3 8: Giao diện thay đổi mật khẩu khách hàng 102

Hình 3 9: Giao diện chi tiết sản phẩm 103

Hình 3 10: Giao diện bình luận sản phẩm 103

Hình 3 11: Giao diện giỏ hàng 103

Hình 3 12: Giao diện đặt hàng 104

Hình 3 13: Giao diện đăng nhập Admin 105

Hình 3 14: Giao diện Admin 105

Hình 3 15: Giao diện nhập mới sản phẩm 106

Hình 3 16: Giao diện đợt giảm giá 106

Hình 3 17: Giao diện chi tiết đợt giảm giá 107

Hình 3 18: Giao diện đơn hàng đang chờ duyệt 107

Hình 3 19: Giao diện đơn hàng chọn shipper 108

Hình 3 20: Giao diện đơn hàng đang ship 108

Hình 3 21: Giao diện đơn hàng hoàn thành 109

Hình 3 22: Giao diện sản phẩm tồn kho 109

Trang 7

Chương 1 Tổng quan về Website bán điện thoại di

động

1.1 Tổng quan:

Ngày nay, ứng dụng công nghệ thông tin và việc tin học hóa được xem làmột trong những yếu tố mang tính quyết định trong hoạt động của chính phủ, tổchức, cũng như của các công ty, nó đóng vai trò hết sức quan trọng, có thể tạo

ra những bước đột phá mạnh mẽ

Cùng với sự phát triển không ngừng về kỹ thuật máy tính và mạng điện tử,công nghệ thông tin cũng được những công nghệ có đẳng cấp cao và lần lượtchinh phục hết đỉnh cao này đến đỉnh cao khác Mạng Internet là một trongnhữ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 chính cho sự truyền tải, trao đổi thông tin trên toàncầu

Giờ đây, mọi việc liên quan đến thông tin trở nên thật dễ dàng cho người sửdụng: chỉ cẩn có một máy tính kết nối internet và một dòng dữ liệu truy tìm thìgần như lập tức…cả thế giới về vấn đề mà bạn đang quan tâm sẽ hiện ra, có đầy

đủ thông tin, hình ảnh và thậm chí đôi lúc có cả những âm thanh nếu bạn cần…Bằng Internet, chúng ta đã thực hiện được nhiều công việc với tốc độ nhanhhơn và 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ử và chính phủ đ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 chất lượngcuộc sống con người

Trong hoạt động sản xuất, kinh doanh, giờ đây, thương mại điện tử đã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

Trang 8

quảng bá 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 “Tìmhiểu IDE Eclipse, JSP/Servlet và ứng dụng xây dựng Website bán điện thoại diđộng bằng ngôn ngữ Java” Người chủ cửa hàng đưa các sản phẩm đó là lênwebsite của mình và quản lí bằng website đó Khách hàng có thể đặt mua hàngtrên website mà không cần đến cửa hàng Chủ cửa hàng sẽ gửi sản phẩm đến tậntay cho khách hàng.

1.2 Tìm hiểu IDE Eclipse, JSP/Servlet và ứng dụng xây dựng Website bán điện thoại di động bằng ngôn ngữ Java.

a.Lý thuyết:

+ Phần mềm mã nguồn mở

+ Phân tích thiết kế Database: Diagram

+ Tìm hiểu về HTML, CSS, AJAX, JAVA, JSP-Servlet

b.Thực hành: Xây dựng, thiết kế Website thực hiện các chức năng:

+ Đăng ký, đăng nhập

+ Quản lý giỏ hàng, mua hàng, thanh toán, bình luận, đánh giá

+ Thêm, xóa, sửa hàng hóa cho Admin

+ Báo cáo tồn kho

1.3 Công nghệ sử dụng:

SQL Server 2016

Eclipse IDE

Tomcat 9.0

Trang 9

Chương 2 Sơ lược về phần mềm mã nguồn mở và

công cụ thực hiện

2.1Tổng quan về phần mềm mã nguồn mở

2.1.1 Giới thiệu về phần mềm mã nguồn mở

Phần mềm mã nguồn mở là những phần mềm được cung cấp dưới cả

phí v b n quy n: người dùng có quyền sửa đổi, cải tiến, phát triển, nângi dùng có quy n s a đ i, c i ti n, phát tri n, nângửa đổi, cải tiến, phát triển, nâng ổi, cải tiến, phát triển, nâng ếu là miễn ển, nâng

c p theo m t s nguyên t c chung quy đ nh trong gi y phép PMNM (ví dột số nguyên tắc chung quy định trong giấy phép PMNM (ví dụ ố nguyên tắc chung quy định trong giấy phép PMNM (ví dụ ắc chung quy định trong giấy phép PMNM (ví dụ ịnh trong giấy phép PMNM (ví dụ ụGeneral Public Licence – GPL) mà không c n xin phép ai, đi u mà h khôngần xin phép ai, điều mà họ không ọ không

được phép làm đối với các phần mềm nguồn đóng (tức là phần mềmc phép làm đ i v i các ph n m m ngu n đóng (t c là ph n m mố nguyên tắc chung quy định trong giấy phép PMNM (ví dụ ới các phần mềm nguồn đóng (tức là phần mềm ần xin phép ai, điều mà họ không ồn đóng (tức là phần mềm ức là phần mềm ần xin phép ai, điều mà họ không

thư ng m i) Nhìn chung, thu t ng “Open source” đại) Nhìn chung, thuật ngữ “Open source” được dùng để lôi cuốn ật ngữ “Open source” được dùng để lôi cuốn ữ “Open source” được dùng để lôi cuốn ược phép làm đối với các phần mềm nguồn đóng (tức là phần mềmc dùng đ lôi cu nển, nâng ố nguyên tắc chung quy định trong giấy phép PMNM (ví dụcác nhà kinh doanh, m t đi u thu n l i chính là s mi n phí và cho phépột số nguyên tắc chung quy định trong giấy phép PMNM (ví dụ ật ngữ “Open source” được dùng để lôi cuốn ợc phép làm đối với các phần mềm nguồn đóng (tức là phần mềm ự miễn phí và cho phép ễn

người dùng có quyền sửa đổi, cải tiến, phát triển, nângi dùng có quy n “s h u h th ng”.ở hữu hệ thống” ữ “Open source” được dùng để lôi cuốn ệ thống” ố nguyên tắc chung quy định trong giấy phép PMNM (ví dụ

Nhà cung cấp phần mềm nguồn mở có quyền yêu cầu người dùng trả một

số chi phí về các dịch vụ bảo hành, huấn luyện, nâng cấp, tư vấn, vv… tức lànhững dịch vụ thực sự đã thực hiện để phục vụ người dùng, nhưng không đượcbán các sản phẩm nguồn mở vì nó là tài sản của trí tuệ chung, không phải là tàisản riêng của một nhà cung cấp nào

Tiện ích mà mã nguồn mở mang lại chính là quyền tự do sử dụng chươngtrình cho mọi mục đích, quyền tự do để nghiên cứu cấu trúc của chương trình,chỉnh sữa phù hợp với nhu cầu, truy cập vào mã nguồn, quyền tự do phân phốilại các phiên bản cho nhiều người, quyền tự do cải tiến chương trình và pháthành những bản cải tiến vì mục đích công cộng

2.1.2 Ưu- nhược điểm của phần mềm mã nguồn mở

Trang 10

 Sử dụng miễn phí : Đây chính là một trong những ưu điểm lớn nhấtcủa mã Lập trình viên không cần phải tốn quá nhiều thời gian, chi phíhay công sức cũng có thể tạo ra được một website như mong muốn chỉtrong khoảng thời gian ngắn.

lực góp phần thúc đẩy sự phát triển mạnh mẽ của mã Tất cả các thông tin

và kiến thức về mã nguồn mở đều được chia sẻ rộng rãi trên mạnginternet Nếu bạn gặp bất kỳ khó khăn hay vướng mắc nào, bạn có thể dễdàng tìm được hướng giải quyết nhanh chóng với sự trợ giúp của cộngđồng người sử dụng

nguồn mở đều có tốc độ cập nhật phiên bản mới và vá lỗi khá nhanh

chóng Sử dụng miễn phí là ưu điểm vượt trội của mã nguồn mở

phục vụ nhu cầu chung cho cả cộng đồng Chính vì thế, việc tùy biến haychỉnh sửa theo hướng cá nhân hóa thường gặp phải nhiều khó khăn Vìbạn sẽ phải chỉnh sửa lại mã nguồn lập trình của website đó Đồng thời,bạn còn phải đảm bảo website đó vẫn hoạt động ổn định

nhật phiên bản mới và vá lỗi nhanh chóng Tuy nhiên, nếu trong quá trìnhvận hành ai đó phát hiện ra lỗ hổng bảo mật trước khi bản vá lỗi được cậpnhật thì họ sẽ nhanh chóng lợi dụng lỗ hổng đó để tấn công website nhằmgây ra các thiệt hại về dữ liệu và thông tin

được thiết kế bằng mã nguồn mở thì các giao diện hay chức năng khágiống nhau Chính vì thế, điều này khiến cho website của bạn sẽ khó cóthể tạo được dấu ấn riêng

Trang 11

 Tính tương hỗ với các hệ thống phần mềm đóng : Các phần mềm nguồn

mở, nhất là khi cài trên máy để bàn, thường không hoàn toàn tương thíchvới phần mềm đóng Với những tổ chức đã đầu tư nhiều cho việc thiết lậpcác định dạng lưu trữ dữ liệu và ứng dụng phần mềm đóng, việc cố gắngtích hợp những giải pháp phần mềm nguồn mở có thể sẽ rất tốn kém

ý đến thiết kế giao diện và phát triển tiện ích

2.2Giới thiệu Eclipse IDE

Eclipse là phần mềm mã nguồn mở, được các nhà phát triển sử dụng đểxây dựng những ứng dụng J2EE, sử dụng Eclipse nhà phát triển có thể tích hợpvới nhiều công cụ hỗ trợ khá để có được một bộ công cụ hòan chỉnh mà khôngcần dùng đến phần mềm riêng nào khác.Eclipse SDK bao gồm 3 phầnchính: Platform, Java Development Toolkit (JDT), Plug-in DevelopmentEnvironment (PDE) Với JDT, Eclipse được xem như là một môi trường hỗ trợphát triển Java mạnh mẽ PDE hỗ trợ việc mở rộng Eclipse, tích hợp các Plug-invào Eclipse Platform Eclipse Platform là nền tảng của toàn bộ phần mềmEclipse, mục đích của nó là cung cấp những dịch vụ cần thiết cho việc tích hợpnhững bộ công cụ phát triển phần mếm khách dưới dạng Plug-in, bản thân JDTcũng có thể được coi như là một Plug-in làm cho Eclipse như là một Java IDE(Integrated Development Enviroment)

Ưu điểm

xuyên qua nhiều kiểu nội dung và các nhà cung cấp công cụ khác nhau

các nhà cung cấp phần mềm độc lập (ISV)

Trang 12

 Hỗ trợ các công cụ thao tác các kiểu nội dung bất kỳ (bao gồm cả HTML,Java, C, JSP, EJB, XML, và GIF).

Nhược điểm

nay eclipse đã khắc phục bằng phiên bản Eclipse Luna, không cần cài đặt

dụng nó máy của bạn cũng cần có cấu hình tương đối cao

2.3Giới thiệu về ngôn ngữ lập trình Java

2.3.1 Tổng quan về Java

Ngôn ngữ lập trình Java ban đầu được phát triển bởi Sun Microsystems

do James Gosling khởi xướng và phát hành vào năm 1995 (Java 1.0 [J2SE]).Tính đến thời điểm này (tháng 2/2015) phiên bản mới nhất của Java StandardEdition (JSE) là 8 Với ưu thế về đa nền tảng (multi platform) Java càng lúccàng được ứng dụng rộng rãi trên nhiều thiết bị từ máy tính đến mobile và nhiềuthiết bị phần cứng khác

2.3.2 Các ứng dụng và lợi ích của Java

Viết ứng dụng web (J2EE): Java thường được sử dụng để xây dựng các

hệ thống web lớn đòi hỏi độ bảo mật cao, số lượng người dùng lớn như ngânhàng, phần mềm quản lý bệnh viện, CRM, HRM Đối với các website nhỏthông thường rất ít viết bằng Java

Trang 13

Viết ứng dụng mobile (J2ME): Trước đây nền tảng J2ME thường được sửdụng để viết game và app cho di động feature phone (file jar) và giờ đây khismartphone Android lên ngôi Java lại tiếp tục được sử dụng để viết app và gamecho nền tảng Android (file apk).

Viết ứng dụng desktop (J2SE): Các ứng dụng desktop viết bằng Java thật

sự không nhiều có thể kể đến một số phần mềm như JMeter hoặc DesignerVista Lợi thế lớn nhất của ứng dụng Java là bạn chỉ viết một lần và sau đó cóthể đem chương trình lên Windows, Linux hay Mac để chạy mà không cần phảiviết lại Tuy nhiên do chạy trên JVM nên performance của ứng dụng thấp hơnmột chút so với các ngôn ngữ như C/C++, C#

2.4Giới thiệu về JSP/Servlet

2.4.1 Tổng quan

JSP (viết tắt của tiếng Anh JavaServer Pages) còn được biết đến với mộtcái tên khác là Java Scripting Preprocessor – tạm dịch là “Bộ tiền xử lý văn lệnhJava” – là một công nghệ Java cho phép các nhà phát triển tạo nội dung HTML,XML hay một số định dạng khác của trang web một cách năng động, trong khihồi âm yêu cầu của trình khách Công nghệ này cho phép người ta nhúng mãJava và một số hành động xử lý đã được định trước (pre-defined actions) vàotrong nội dung tĩnh của trang

JSP là cách đơn giản hóa hơn cho Servlet Nếu như đối với Servlet phảiviết mã Java và biên dịch bằng tay trước khi sử dụng với trình chủ Web serverthì JSP không cần điều này JSP viết mã Java tương tự Servlet nhưng cho phéptrộn lẫn Java với các thẻ HTML để tạo ra Servlet xử lý các yêu cầu mà trìnhkhác gửi đến trang

JSP đơn giản và dễ sử dụng hơn Servlet mặc dù sau khi biên dịch và thựcthi chúng chỉ là một

Trang 14

2.4.2.1Biên dịch trang

Khi trình duyệt yêu cầu trang JSP, Web server sẽ kiểm tra xem trang JSP

đã được biên dịch hay chưa Nếu chưa biên dịch hoặc đã biên dịch nhưng trangJSP mới vừa thay đổi mã nguồn thì Web Server sẽ thực hiện biên dịch trangJSP Quá trình biên dịch JSP thực tế là chuyển trang JSP thành servlet File biêndịch class của trang chỉ diễn ra một lần Nếu trang đã biên dịch và sau đókhông bị thay đổi trong mã nguồn thì quá trình biên dịch sẽ không xảy ra nữa,

do đó mà tốc độ thực thi sẽ nhanh hơn Sau khi biên dịch, mã trang sẽ được nạpvào bộ nhớ để thực thi

Quá trình biên dich trang JSP sẽ được diễn ra như sau:Bước 1: Kiểm tra xem trang đã được dịch thành mã nguồn tương đương servlethay chưa

Bước 2: Nếu chưa được biên dịch thì trang JSP sẽ được biên dịch thành filenguồn java theo cấu trúc của servlet Gọi trình biên dịch javac biên dịch filenguồn java thành file thực thi của servlet class

Bước 3: Nạp servlet đã biên dịch ở bước 2, thực thi trả kết quả về cho trìnhkhách

Bước 4: Nếu file JSP đã được biên dịch trước đó : thực hiện kiểm tra xem nộidung file jsp có thay đổi không, Nếu có thì quay lại bước 2 biên dịch lại trang,nếu không thì quay lại bước 3

2.4.2.2Nạp trang

Kể từ giai đoạn này, quá trình nạp trang tương tự như servlet (trang JSPsau khi biên dịch có thể coi như một servlet) Chỉ có một điểm khác là servletchỉ được nạp một lần trong khi mã trang JSP mặc dù đã biên dịch nhưng phảinạp lại nhiều lần mỗi khi web server nhận được yêu cầu trang từ trình duyệt

2.4.2.3Khởi tạo

Trang 15

Khi nạp mã trang thành công, Web server sẽ gọi đến phương thức khỏitạo trang Và mặc dù JSP được biên dịch ra servlet nhưng phương thức khởi tạocho trang JSP lại mang tên là jspInit() chứ không phải là init() như servlet.

2.4.2.4Thực thi

Sau quá trình khởi tạo, Web server sẽ gọi đến phương thức _jspService(khác với servlet gọi đến doPost(), doGet() hoặc service()) Phương thức_jspService sẽ chuyển đến hai lớp đối tượng HttpServletRequest vàHttpServletResponse để đọc và ghi kết xuất trả về trình khách

Trang 16

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

3.1 Khảo sát hiện trạng:

Công ty bán nhiều loại sản phẩm (Product), thông tin về loại sản phẩm baogồm mã sản phẩm được dùng để phân biệt các loại sản phẩm, tên, giá, số lượng,ảnh,hãng sản xuất, mô tả

Hãng sản xuất sản xuất nhiều loại sản phẩm, một loại sản phẩm chỉ thuộc 1hãng sản xuất, mỗi hãng (Suppiler) có thuộc tính: tên hãng

Một hãng sản xuất sản xuất nhiều thể loại, mỗi thể loại (Category) do nhiềuhãng sản xuất

Công ty có nhiều nhân viên, mỗi nhân viên (Employee) có một tài khoảnđăng nhập bằng email và password, email do công ty cung và các thuộc tính:tên, số điện thoại, địa chỉ, và các quyền ( Shipper hoặc là Admin )

Phiếu nhập (GoodReceipt) gồm các thuộc tính: tổng tiền, ngày tạo Mộtphiếu nhập có nhiều loại sản phẩm, một loại sản phẩm có thể thuộc nhiều phiếunhập

Phiếu xuất (Bill) gồm các thuộc tính: số Hóa đơn, mã số thuế Một hóa đơnchỉ có 1 bill và một bill chỉ dành cho 1 hóa đơn

Khách hàng (Customer) có tài khoản để đăng nhập bằng email, password và

có các thuộc tính: tên, số điện thoại, email, địa chỉ được ghi nhớ nếu đã đăngnhập Khách hàng chưa có tài khoản có thể đăng ký tài khoản Khách hàng đã

có tài khoản nếu quên mật khẩu có thể lấy lại mật khẩu và thay đổi mật khẩu.Khách hàng có thể bình luận nhiều sản phẩm, mỗi bình luận có các thuộctính: điểm, mô tả

Khách hàng đặt nhiều đơn đặt hàng, mỗi đơn có thể có nhiều sản phẩm, đơnđặt có các thuộc tính: ngày tạo,tổng trị giá đơn đặt

Trang 17

-Hiển thị danh sách các mặt hàng của cửa hàng để khách hàng xem, lựachọn, tìm kiếm và mua.

-Khách hàng xem các thông tin tin tức về sản phẩm mới, sản phẩm đangtrong đợt khuyến mãi trên trang web

-Khách hàng đăng kí, đăng nhập tài khoản, lấy lại mật khẩu khi đã quên.-Sau khi khách hàng chọn và đặt hàng trực tiếp thì phải hiện lên đơn hàng

để khách hàng có thể nhập thông tin mua hàng và xem hóa đơn mua hàng

Phần 2: Dành cho người quản trị:

Người làm chủ ứng dụng có quyền kiểm soát mọi hoạt động của hệ thống.Người này được cung cấp username và password để đăng nhập hệ thống thựchiện chức năng của mình:

-Chức năng cập nhật,thêm, xóa các mặt hàng, loại hàng, nhà sản xuất.-Chức năng thêm, xóa, sửa các đợt giảm giá cũng như các sản phẩm trongcác đợt

- Chức năng thêm phiếu nhập sản phẩm( bao gồm nhập sản phẩm mớihoặc nhập thêm sản phẩm đã có )

Trang 18

-Tiếp nhận kiểm tra đơn đặt hàng của khách hàng, hiển thị đơn đặt hàng,duyệt đơn hàng, chọn Shipper giao hàng, cập nhật trạng thái đơn hàng sau khihoàn thành.

3.2.2 Yêu cầu phi chức năng:

dàng dẹp mắt và làm sao cho khách hàng thấy được thông tin cần tìm, cung cấpcác thông tin quảng cáo hấp dẫn, các tin tức khuyến mãi để thu hút khách hàng

trong quá trình đặt mua qua mạng

3.3Phân tích use case

3.3.1 Biểu đồ use case tổng quát

Trang 19

Khach hang

Xem thong tin san pham

Tim kiem san pham

Xem danh muc

Xem san pham theo danh muc

Bao tri danh muc

Bao tri san pham

Quan ly dot giam gia

Bao cao ton kho Nguoi quan tri

CSDL

Duyet don hang

Trang 20

3.3.2 Đặc tả use case

1 Mô tả :Use case này cho phép Khách hàng xem những thông tin chỉ tiết

của sản phẩm được chọn

2 Luồng sự kiện:

2.1.Luồng cơ bản:

2.1.1 Use case này bắt đầu khi Khách hàng nhấn vào một sản phẩm.

Hệ thống lấy thông tin về sản phẩm, bao gồm tên sản phẩm, mã sảnphẩm,số lượng, giá niêm yết,ảnh, giá và cách thức khuyến mãi (nếucó),mô tả bao gồm thông số kĩ thuật và cấu hình chi tiết từ bảngPRODUCT trong CSDL và hiển thị lên màn hình Use case kết thúc 2.2 Luồng rẽ nhánh:

2.2.1 Tại bất kì thời điểm nào trong quá trình thực hiện use case nếukhông kết nối được với CSDL thì hệ thống sẽ hiển thị một thông báo

Trang 21

7: hien thi thong tin chi tiet san pham( )

XemThonTinSanPhamController XemThonTinSanPhamController 1: kich chon mot san pham( )

2: lay thong tin chi tiet san pham( )

3: lay bang PRODUCT( )

4: Lay bang Product 5: getProduct( )

6: Return ket qua

7: hien thi thong tin chi tiet san pham( )

name price promotion quantity description

getid() getname() setName() getPrice() setPrice() getPromotion() setPromotion() getQuantity() setQuantity() getDescription() setDescription() getProduct()

<<entity>>

*

* Hình dung màn hình

Trang 23

3.3.2.2 Mô tả use case “Tìm kiếm sản phẩm”

1 Tên use case: Tìm kiếm sản phẩm.

2 Mô tả vắn tắt: Use case cho phép người sử dụng, người quản trị, khách

hàng có thể tìm kiếm sản phẩm được lưu trong CSDL

3 Luồng sự kiện:

3.1 Luồng cơ bản:

1 Use case sẽ bắt đầu khi người dùng nhập tên hoặc mã sản phẩmvào ô tìm kiếm và ấn phím “Enter” Hệ thống sẽ lấy danh sách cácsản phẩm từ bảng PRODUCT trong cơ sở dữ liệu và hiển thi ramàn hình

2 Người dùng chọn sản phẩm trong danh sách Hệ thống lấy thôngtin chi tiết của sản phẩm( Id , Name, prince, image, description) từbảng PRODUCT và hiển thị ra màn hình Use case kết thúc

Trang 24

1 Nếu không có bất cứ sản phẩm nào thoả mãn điều kiện tìm kiếmđưa ra thì hệ thống sẽ đưa ra thông báo và use case kết thúc.

2 Tại bất cứ thời điểm nào của quá trình thực hiên, nếu không thể kếtnối với CSDL thì sẽ hiển thị thông báo lỗi và use case kết thúc

4 Các yêu cầu đặc biệt:

1: Nhap ten, ma san pham roi bam "enter"()

2: lay danh sach ten san pham()

3: lay bang PRODUCT()

4: lay bang PRODUCT() 5: getName()

6: return danh sach san pham

7: hien thi danh sach san pham()

Trang 25

* Biểu đồ lớp phân tích

TimKiemUI

nhap ten, ma san pham roi kich nut "enter"()

hien thi danh sach san pham()

<<boundary>>

Icsdl

lay bang PRODUCT()

<<boundary>> TimKiemController

lay danh sach ten san pham()

<<control>>

1

Product iD name price image description getID() setID() getName() setName() getPrince() setPrince() getImage() setImage() getDescription()

* Hình dung màn hình

Trang 26

1 Tên use case: Xem danh mục.

2 Mô tả vắn tắt: Use case cho phép khách hàng xem được các danh mục.

3 Luồng sự kiện:

3.1 Luồng cơ bản:

1 Use case bắt đầu khi khách hàng truy cập vào website Hệ

thống sẽ lấy tên các danh mục từ bảng Brand trong cơ sở dữliệu và hiển thị lên màn hình Use case kết thúc

3.2 Luồng rẽ nhánh:

Tại thời điểm bất kỳ của quá trình thực hiện nếu không kết nốiđược với cơ sở dữ liệu thì hệ thống sẽ hiển thị thông báo lỗi và usecase kết thúc

4 Các yêu cầu đặc biệt:

Không có

5 Tiền điều kiện:

Không có

6 Hậu điều kiện:

Nếu use case thành công khách hàng xem thông tin Nếu không trạng

thái use case không đổi

7 Điểm mở rộng:

Không có

* Biểu đồ tuần tự

Trang 27

: XemDanhMucUI

XemDanhMucController XemDanhMucController : Category : Icsdl : CSDL 1: truy cap vao website()

2: lay ten danh muc()

3: lay bang Category()

4: lay bang Category() 5: getName()

6: return ket qua 7: hien thi danh sach ten cac danh muc()

* Biêu đồ lớp phân tích

XemDanhMucUI

truy cap vao website()

hien thi danh sach ten cac danh muc()

<<boundary>>

Icsdl lay bang CATEGORY() cap nhat bang CATEGORY()

<<boundary>>

XemDanhMucController lay ten danh muc()

<<entity>>

* 1

0

1

* 1

* Hình dung màn hình

Trang 28

3.3.2.4 Mô tả Use case “Xem sản phẩm theo danh mục”

1 Tên Use case: Xem hàng theo danh mục

+ Use case bắt đầu khi khách hàng chọn chức năng xem danh mục,

hệ thống hiện thị danh sách các danh mục và các sản phẩm thuộcdanh mục đó

+ Khách hàng chọn chủ đề cần xem, hệ thống sẽ hiện thị các sảnphẩm thuộc chủ đề đó

3.2 Luồng rẽ nhánh:

Trong suốt quá trình thực hiện nếu hệ thống không kết nối đượcvới CSDL, hệ thống sẽ hiện ra thông báo lỗi đến người dùng, UseCase kết thúc

Trang 29

4.Các yêu cầu đặc biệt:

2: lay ten danh muc( )

3: lay bang Category( )

4: Lay bang Category( ) 5: getName( )

6: return ket qua 7: Hien thi cac danh muc( ) 8: Chon mot danh muc( )

9: lay thong tin san pham( )

10: Lay bang Product( )

11: Lay bang Product( ) 12: getProduct( )

13: return ket qua 14: Hien thi thong tin san pham( )

* Biểu đồ lớp phân tích

Trang 30

Category ID Name getId() getName() setName()

<<entity>>

ICSDL lay bang Category() Lay bang Product()

XemSanPhamTheoDanhMucUI

chon tat ca the loai()

opname()

Hien thi cac danh muc()

Chon mot danh muc()

Hien thi thong tin san pham()

<<boundary>>

XemSanPhamTheoDanhMucController lay ten danh muc()

lay thong tin san pham()

<<control>>

* 1

* 1

*

1

*

1 1

1 1 1

Product iD name price promotion quantity image description new getId() getName() setName() getPrice() setPrice() getPromotion() setPromotion() getQuantity() setQuantity() getImage() getDescription() setDescription() getNew() setNew() getProduct() setProduct()

<<entity>>

* 1

*

* Hình dung màn hình

Trang 31

3.3.2.5 Mô tả use case “Bình Luận”

1 Tên Use Case: Bình luận

2 Mô tả vắn tắt:

Use case cho phép khách hàng có thể nhận xét về sản phẩm

3 Luồng sự kiện:

3.1 Luồng cơ bản:

1 Use case bắt đầu khi khách hàng kích vào nút “Viết nhận xét của bạn”

ở màn hình sản phẩm Hệ thống sẽ hiển thị yêu cầu đánh giá sản phẩmcùng với ô Textbox cho phép khách hàng viết nhận xét của mình

2 Khách hàng đánh giá sản phẩm và viết nhận xét của mình rồi kích nút

“Bình Luận” Hệ thống sẽ lưu bình luận vào CSDL và hiển thị bình luận

ra màn hình Use case kết thúc

3.2 Luồng rẽ nhánh:

Tại bất kỳ thời điểm nào của quá trình thực hiện nếu không kết nối đượcCSDL Hệ thống sẽ thông báo lỗi và use case kết thúc

Trang 32

4 Các yêu cầu đặc biệt:

Không có

5 Tiền điều kiện :

Khách hàng phải đăng nhập vào hệ thống

6 Hậu điều kiện:

Không có

7 Điểm mở rộng:

Không có

* Biểu đồ trình tự

Trang 33

: Khach Hang : BinhLuanUI : BinhLuanController : Comment : ICsdl : CSDL 1: kich nut "Viet nhan xet cua ban"( )

2: Hien thi form nhap nhan xet( )

3: nhap vao nhan xet

4: kich nut "Binh luan"( )

7: cap nhat bang Comment( )

8: cap nhat bang Comment( )

6: creatBinhLuan( ) 5: tao binh luan moi( )

9: return ket qua

10: hien thi danh sach cac binh luan( )

* Biểu đồ lớp phân tích

Trang 34

kich nut "Viet nhan xet cua ban"()

Hien thi form danh gia va nhap nhan xet()

kich nut "Binh luan"()

hien thi danh sach cac binh luan()

<<boundary>>

ICsdl cap nhat bang Commet()

<<boundary>> BinhLuanController

setBinhluanById() tao binh luan moi()

<<control>>

1

Comment iD customerID productID content rating getID() setID() getCustomerID() setCustomerID() getProductID() setProductID() getContent() setContent() getRating() setRating() creatBinhLuan()

<<entity>>*1

1

*

* Hình dung màn hình

Trang 35

3.3.2.6 Mô tả Use case “Quản lí giỏ hàng”

1 Tên Use case: Quản lí giỏ hàng

Trang 36

sản phẩm mua, màu sắc, giá tiền, giảm, tổng tiền, cần thanh toán từbảng PRODUCT và hiển thị lên màn hình Use case kết thúc.

3.2 Luồng rẽ nhánh:

Tại mỗi thời điểm bất kỳ của quá trình thực hiện, nếu không kết nốiđược với cơ sở dữ liệu thì hệ thống đưa ra thông báo lỗi Use case kếtthúc

4 Các yêu cầu đặc biệt: Không có

5 Tiền điều kiện: Khách hàng phải đăng nhập vào hệ thống.

6 Hậu điều kiện: Không có

7 Điểm mở rộng: Không có.

* Biểu đồ trình tự

Trang 37

QuanLiGioHangController QuanLiGioHangController 1: Click vào gio hang()

2: Lay thong tin gio hang()

3: Lay Bang gio hang()

4: Lay bang gio hang() 5: getMaGiohang()

6: getMaSP() 7: getTongTien() 8: return ket qua

9: Hien thi ket qua ra man hinh() 10: Click nut sua()

11: Sua thong tin gio hang()

12: setMaSP() 13: setTongTien() 14: setSoluong() 15: Cap Nhat thong tinh vao bang GIOHANG()

16: Sua bang GIOHANG() 17: Thong bao chinh sua thanh cong

18: Click nut them()

19: Chinh sua thong tin gio hang()

20: getMaSP() 21: setTongTien() 22: Cap nhat thonh tin bang GIOHNANG()

23: Sua bang GIOHANG() 25: Clicknut xoa hang()

26: chinh sua thong tin gio hang()

27: getSoluong=o() 24: Thong bao them thanh cong

28: Cap thong tin bang GIOHANG()

29: Sua bang GIOHANG() 30: thong bao xoa thanh cong()

31: Click nut xuat file bao gia()

32: Lay du lieu tu bang GIOHANG()

33: getTongTien() 34: return ket qua

35: hien thi file ket qua()

* Biểu đồ lớp phân tích

Trang 38

them, sua, xoa hang() lay thong tin gio hang() thong bao thao tac hoan thanh()

<<control>>

1

Order ID

total status create_date address name time phone getID(), setID() getTotal(), settotal() getStatus(), setStatus() setCreate_date(), getCreate_date() getAddress(), setAddress() getName(), setName() getTime(), setTime() getPhone(), setPhone() opname()

<<entity>>*1

+1 1

1

*

* Hình dung màn hình

1.Tên Use Case: Đặt Hàng.

Trang 39

2 Mô tả vắn tắt: Use case này cho phép khách hàng đặt mua một sản

2) Khách hàng nhập đủ các thông tin này và bấm nút xác nhận vàthanh toán Các thông tin này sẽ được lưu vào bảng CSDL có tên làOrders và thông tin về sản phẩm đặt mua sẽ được lưu vào bảngCSDL có tên là OrdersDetail Use case kết thúc

3.2 Luồng rẽ nhánh:

a Tại bươc thứ 2 của luồng cơ bản nếu khách hàng không điền đầy

đủ thông tin mà hệ thống yêu cầu thì hệ thống sẽ báo lỗi yêu cầukhách hàng nhập lại cho đúng thì mới được thanh toán

nối được với cơ sở dữ liệu thì hệ thống đưa ra thông báo lỗi Usecase kết thúc

4 Các yêu cầu đặc biệt:

Không có

5 Tiền điều kiện:

Khách hàng phải đăng nhập vào hệ thống

6 Hậu điều kiện: Không có.

7 Điểm mở rộng: Không có.

Trang 40

1: kich nut thanh toan va dat hang( )

2: lay ma san pham va gia( )

3: lay bang Order( )

4: lay bang Order( ) 5: getID( )

7: return ket qua

6: getPrice( )

8: nhap thong tin nhan hang

9: kich nut xac nhan va thanh toan( )

10: luu thong tin nhan hang, ma san pham, gia, so luong, tong tien( )

11: luu vao bang OrderDetail( )

12: luu vao bang OrderDetail( ) 13: setOrder( )

14: return ket qua

* Biểu đồ lớp phân tích

Ngày đăng: 15/03/2021, 11:04

TỪ KHÓA LIÊN QUAN

w