Khách hàng đăng nhập để xem những sản phẩm trên website, các sản phẩm được bố trí theo từng loại đa dạng như sản phẩm mới, theo tên từng nhà sản xuất,… Nếu khách hàng cảm thấy yêu thích
PHÂN TÍCH HỆ THỐNG WEBSITE
Khảo sát hiện trạng
Trong thời đại số hóa, kinh doanh truyền thống qua cửa hàng đã trở nên lạc hậu, khiến các doanh nghiệp phải nhanh chóng chuyển sang lập trình web bán hàng Để bắt kịp xu hướng này, nhóm chúng tôi đã quyết định xây dựng một trang web chuyên cung cấp nông sản, giúp khách hàng doanh nghiệp dễ dàng giao dịch mua bán nông lâm sản với chi phí hợp lý và thu hút được nhiều khách hàng hơn.
Các tác nhân chính của hệ thống
Khách hàng là những người có nhu cầu mua sắm, họ thường đăng nhập để xem và chọn sản phẩm, cũng như thực hiện giao dịch mua hàng Ngoài ra, khách hàng còn có thể sử dụng các thẻ khuyến mãi để tiết kiệm chi phí.
Quản trị viên (Admin): Người toàn quyền quản lý hệ thống website, thực hiện quản lý các đơn hàng, sản phẩm, các thông tin mua bán trong hệ thống.
Mô tả nghiệp vụ
Website được thiết kế nhằm mục đích giới thiệu và trưng bày sản phẩm, đồng thời tạo điều kiện cho khách hàng dễ dàng đặt hàng các mặt hàng cần thiết Ngoài ra, chúng tôi cũng cung cấp dịch vụ hỗ trợ khách hàng, bao gồm liên hệ và tìm kiếm nhanh chóng các sản phẩm.
Khách hàng có thể đăng nhập để khám phá các sản phẩm trên website, được phân loại theo nhiều tiêu chí như sản phẩm mới hoặc theo nhà sản xuất Nếu yêu thích sản phẩm, khách hàng có thể bấm vào biểu tượng trái tim để lưu vào mục yêu thích Để xem thông tin chi tiết, chỉ cần nhấn vào hình ảnh hoặc tên sản phẩm Sau khi chọn sản phẩm, khách hàng có thể thêm vào giỏ hàng, nơi chứa danh sách sản phẩm kèm thông tin như mã sản phẩm, tên, đơn giá, số lượng và thành tiền.
Giỏ hàng trực tuyến thường cho phép người dùng xóa sản phẩm, tiếp tục mua sắm và điều chỉnh số lượng sản phẩm Sau khi thực hiện các thay đổi, thông tin tổng giá tiền sẽ được cập nhật tự động.
Khi khách hàng đã lựa chọn đầy đủ sản phẩm cần mua, họ có thể nhấn nút thanh toán Trang đơn hàng sẽ hiển thị thông tin về địa chỉ giao hàng, phương thức thanh toán (ship COD) và chi tiết giỏ hàng, bao gồm tên sản phẩm, đơn giá, số lượng và thành tiền.
Nếu khách hàng có thắc mắc hoặc cần hỗ trợ có thể gửi mail cho cửa hàng bằng trang contact do cửa hàng cung cấp.
Khách hàng có thể đánh giá sản phẩm của cửa hàng thông qua các thông số như số sao, thời gian viết đánh giá, nội dung và tiêu đề đánh giá.
Website này cung cấp cho nhân viên một hệ thống giao diện để quản lý thông tin liên quan đến sản phẩm, đơn hàng, tài khoản, trả lời thư, khuyến mãi và thông tin nhà sản xuất.
Quản trị viên có quyền truy cập vào trang web để xem danh sách tất cả các nhà sản xuất, hàng hóa có sẵn trong cửa hàng, các đơn hàng đã bán hoặc đang xử lý Họ cũng có thể kiểm tra các tài khoản hiện có trong hệ thống, trả lời hộp thư của khách hàng và xem danh sách thẻ khuyến mãi có sẵn.
Admin có khả năng thêm sản phẩm mới, xóa những sản phẩm không còn bán, điều chỉnh số lượng sản phẩm và thêm hình ảnh cần thiết cho cửa hàng Cuối cùng, admin cũng có thể xóa toàn bộ hình ảnh liên quan đến sản phẩm đang được xem xét.
Admin còn có thể tạo thêm tài khoản để cung cấp cho người quản lí khác và chỉ có admin đó mới xóa được tài khoản của chính họ.
Admin có thể sửa lại hộp thư đã gửi cho khách hoặc thêm hộp thư mới trả lời cho khách hàng.
Admin có thể thêm xóa sửa các nhà sản xuất dẫn tới xóa các sản phẩm liên quan tới nhau nhà sản xuất đó.
Admin chịu trách nhiệm quản lý đơn hàng, bao gồm việc đánh dấu tình trạng đơn hàng như đã xác nhận, đang vận chuyển, đã nhận hoặc bị hủy Đối với các đơn hàng bị hủy, chỉ khi đó mới có thể xóa chúng khỏi danh sách xử lý.
Danh sách model
Model xem chi tiết sản phẩm
Xem các thông tin chi tiết của sản phẩm: Tên, giá, cấu hình…
Model tìm kiếm sản phẩm
Tìm kiếm sản phẩm theo từ khóa nhập ở thanh tìm kiếm.
Model đánh giá, bình luận về sản phẩm
Model thêm sản phẩm vào giỏ hàng
Khách hàng thêm sản phẩm vào giỏ hàng.
Model xóa sản phẩm vào giỏ hàng
Khách hàng xóa sản phẩm trong giỏ hàng.
Model đặt hàng, thanh toán
Khách hàng xem các thông tin của đơn hàng, và tiến hành đặt hàng.
Model gửi ý kiến về cửa hàng ( chưa xử lý )
Khách hàng gửi đánh giá, ý kiến của mình đến cửa hàng qua form cửa hàng cung cấp.
Model quản lí sản phẩm
Admin xem danh sách các sản phẩm, có thể thêm, sửa hoặc xóa sản phẩm.
Model quản lí đơn hàng
Quản trị viên sẽ xem xét tất cả các đơn hàng, phê duyệt đơn hàng và thông báo cho khách hàng nếu đồng ý giao dịch, hoặc hủy đơn hàng nếu không đồng ý giao dịch.
Model quản lí tài khoản
Admin xem danh sách tất cả các tài khoản có trong hệ thống
Admin có khả năng tạo thêm tài khoản admin để chia sẻ quyền sử dụng với người khác Tuy nhiên, admin chỉ có quyền chỉnh sửa và xóa tài khoản của chính mình, không thể can thiệp vào tài khoản của những admin khác.
Model quản lí tin tức
Admin xem danh sách tin tức hiện có, thêm, sửa hoặc xóa tin tức
Model quản lí chuyên mục sản phẩm
Admin xem danh sách các chuyên mục và thêm sửa xóa các chuyên mục của sản phẩm
Model quản lí bình luận phản hồi
Admin xem danh sách các bình luận và xóa các bình luận nếu bình luận không thích hợp và tiêu cực
GIỚI THIỆU VỀ CÔNG NGHỆ SỬ DỤNG
SERVLET
Servlet có thể được mô tả bằng nhiều cách, tùy thuộc vào ngữ cảnh:
Servlet là một công nghệ được sử dụng để tạo ra ứng dụng web.
Servlet là một API cung cấp các interface và lớp bao gồm các tài liệu.
Servlet là một thành phần web được triển khai trên máy chủ để tạo ra trang web động.
Có nhiều interface và các lớp trong API servlet như Servlet, GenericServlet, HttpServlet, ServletRequest, ServletResponse,
Servlet thực hiện các nhiệm vụ chính sau đây:
Đọc dữ liệu rõ ràng từ khách hàng (trình duyệt) là rất quan trọng, bao gồm việc xử lý mẫu HTML trên trang Web hoặc thông tin được gửi từ applet hay chương trình khách hàng HTTP tùy chỉnh.
Đọc dữ liệu yêu cầu HTTP ẩn được gửi bởi khách hàng (trình duyệt) Điều này bao gồm các
Xử lý dữ liệu để tạo ra kết quả có thể bao gồm việc tương tác với cơ sở dữ liệu, thực hiện cuộc gọi RMI hoặc CORBA, gọi dịch vụ Web, hoặc tính toán trực tiếp để lấy phản hồi.
Gửi dữ liệu rõ ràng, bao gồm tài liệu dưới nhiều định dạng như văn bản (HTML hoặc XML), nhị phân (hình ảnh GIF), Excel, và nhiều loại khác, tới khách hàng thông qua trình duyệt.
Gửi phản hồi HTTP ẩn cho khách hàng bao gồm việc thông báo cho trình duyệt hoặc các trình khách khác về loại tài liệu đang được trả về, chẳng hạn như HTML Ngoài ra, quá trình này còn thiết lập cookie, các tham số bộ nhớ đệm và thực hiện các tác vụ khác.
JSP
JSP, viết tắt của Java Server Pages, là công nghệ phía máy chủ cho phép lập trình viên tạo trang web bằng Java Được phát triển bởi Sun Microsystems, JSP cải tiến tính năng của Servlets và khắc phục những hạn chế của chúng.
Trong JSP, chúng ta định nghĩa thẻ bằng "".
Sử dụng JSP, chúng ta có thể triển khai API Java theo mặc định vào chương trình web.
Và không chỉ API Java, JSP còn hoạt động với các thẻ HTML và XML, điều mà trước đây không thể thực hiện được.
Sau đây là một thứ tự các trang JSP được thực thi:
Một yêu cầu bình thường được gửi đến máy chủ bởi trình duyệt.
Máy chủ xác định rằng tài liệu là một trang JSP khi nó phát hiện phần mở rộng jsp và sau đó gửi nó đến máy chủ JSP để thực thi.
JSP được chuyển đổi thành một servlet.
Công cụ JSP chuyển đổi servlet thành class thực thi
Khi đầu ra sẵn sàng, nó được chuyển đổi thành định dạng HTML và được gửi đến trình duyệt web.
JDBC
JDBC, which stands for Java Database Connectivity, is an API designed for connecting to databases and executing SQL commands It utilizes JDBC drivers to facilitate interactions with the database.
Kiến trúc của JDBC gồm 2 tầng:
JDBC API – cho phép ứng dụng kết nối đến JDBC Manager connection.
JDBC Driver API: Hỗ trợ JDBC Manager đến Driver connection.
JDBC API cung cấp cơ chế kết nối đến đến các loại database khác nhau theo một chuẩn đồng nhất.
JDBC driver là cầu nối giữa JDBC API và cơ sở dữ liệu, đảm bảo kết nối hiệu quả Mỗi loại cơ sở dữ liệu đều yêu cầu một JDBC driver riêng biệt mà JDBC API có thể sử dụng để tương tác.
Các thành phần chính trong JDBC
JDBC API cung cấp một số class và interface:
DriverManager – class này chịu trách nhiệm quản lý danh sách các database driver, và chịu trách nhiệm tạo kết nối tương ứng đến database cụ thể được chỉ định.
Driver – Interface chịu trách nhiệm xử lý các hoạt động giao tiếp giữa ứng dụng với database.
Connection – Interface cung cấp tất cả các hàm cho việc thao tác với database.
Statement – dùng các object được tạo ra từ interface này để thực thi các câu lệnh SQL xuống database.
ResultSet: Lưu trữ kết quả trả về từ database.
SQLException – Xử lý các lỗi xảy ra trong database.
MÔ HÌNH MVC
MVC, viết tắt của Model – View – Controller, là một mô hình thiết kế quan trọng trong kỹ thuật phần mềm Mô hình này phân chia source code thành ba phần riêng biệt, mỗi phần tương ứng với một hoạt động cụ thể, giúp tổ chức và quản lý mã nguồn hiệu quả hơn.
Model là bộ phận lưu trữ dữ liệu của ứng dụng, đóng vai trò cầu nối giữa View và Controller Nó có thể là cơ sở dữ liệu hoặc một file XML, cho phép thực hiện các thao tác như xem, truy xuất và xử lý dữ liệu.
Giao diện (View) là phần thiết kế dành cho người dùng, cho phép họ truy cập thông tin dữ liệu từ mô hình MVC thông qua các thao tác truy vấn như tìm kiếm hoặc sử dụng trên các trang web.
Trong các ứng dụng web, MVC View đóng vai trò quan trọng trong việc tạo ra các thành phần HTML và ghi nhận hoạt động của người dùng để tương tác với Controller Tuy nhiên, View không trực tiếp liên hệ với Controller và không lấy dữ liệu từ Controller, mà chỉ hiển thị các yêu cầu được chuyển đến Controller.
Ví dụ: Nút “delete” được tạo bởi View khi người dùng nhấn vào nút đó sẽ có một hành động trong Controller.
Bộ phận này chịu trách nhiệm xử lý các yêu cầu từ người dùng thông qua giao diện (view) và cung cấp dữ liệu phù hợp Ngoài ra, Controller còn đóng vai trò kết nối với model để đảm bảo sự tương tác hiệu quả giữa các thành phần trong ứng dụng.
Luồng tương tác giữa các thành phần trong MVC.
Ví dụ: Chức năng thêm bài viết mới trong trang quản trị website Nơi đây có 2 trường nhập về tiêu đề và nội dung bài viết, thì trong đó:
View sẽ hiển thị ra phần nhập form tiêu đề và nội dung.
Controller lấy dữ liệu từ 2 trường và gửi tới Model.
Mô hình MVC nhận dữ liệu từ Controller để lưu trữ trong cơ sở dữ liệu, với mỗi bộ phận thực hiện chức năng riêng nhưng vẫn liên kết chặt chẽ Mô hình này tương đối nhẹ và có khả năng tích hợp nhiều tính năng hiện có trong ASP.NET, chẳng hạn như quá trình xác thực (authentication).
Luồng đi trong mô hình MVC như thế nào?
Khi một yêu cầu từ máy client gửi đến server, Controller sẽ tiếp nhận và xử lý yêu cầu đó Nếu cần, Controller có thể liên hệ với Model, bộ phận chịu trách nhiệm làm việc với cơ sở dữ liệu, để hỗ trợ trong quá trình xử lý.
Khi hoàn tất yêu cầu, kết quả sẽ được gửi về View, nơi tạo ra mã HTML để hiển thị giao diện trên trình duyệt.
Phân rã các chức năng
Yêu cầu chức năng
Sơ đồ Use Case (UC)
Danh sách các UseCase
ID Tên Usecase Đối Tượng Sử Dụng
1 Đăng nhập Khách hàng, Admin
3 Thêm sp vào giỏ hàng Khách hàng
4 Quản lí giỏ giỏ hàng Khách hàng
6 Đánh giá sản phẩm Khách hàng
7 Xem danh sách giỏ hàng Khách hàng
8 Tìm kiếm sản phẩm Khách hàng
9 Xem thông tin sản phẩm Khách hàng
10 Quản lí tài khoản admin Admin
11 Quản lí tài khoản user Admin
12 Quản lí chuyên mục Admin
13 Quản lý đơn hàng Admin
14 Quản lý sản phẩm Admin
15 Quản lý tin tức Admin
16 Quản lý bình luận Admin
Đặc tả Use Case
Mockup
Giao diện đăng nhập cười người dùng đã có tài khoản
Trang danh sách các sản phẩm
Chi tiết từng sản phẩm
Bình luận về sản phẩm
Comment Đăng tải bình luận về sản phẩm
Giỏ hàng sau khi được thêm sản phẩm
Chi tiết và xác nhận đơn đặt hàng
Sửa thông tin sản phẩm Đơn hàng
Thêm sửa xóa tin tức
8.CÀI ĐẶT VÀ CẤU TRÚC PROJECT
Môi trường cài đặt và công nghệ sử dụng
Chương trình được xây dựng trên nền tảng Java Servlet và JSP trong môi trường phần mềm Eclipse
JDBC : được tích hợp sẵn trong project
2.Tổ chức các lớp của chương trình
Chương trình được theo viết theo mô hình MVC
Các lớp trong gói nongsan.webmvc.model chứa thông tin về đối tượng và được sử dụng để tổ chức dữ liệu sau khi lấy từ cơ sở dữ liệu Khi dữ liệu được truy xuất, nó sẽ được phân loại và lưu trữ tương ứng trong các lớp của gói này.
- View: là nơi hiển thị dữ liệu cho người dùng xem ( có 2 view 1 của admin 1 của user )
Bài viết này trình bày các phương thức xử lý chức năng của người dùng, bao gồm việc lấy dữ liệu từ tầng view, xử lý và lưu trữ xuống tầng model hoặc ngược lại.
Gói nongsan.webmvc.controller.admin hoạt động như một cầu nối giữa Model và View, chịu trách nhiệm nhận yêu cầu từ client, gọi đến tầng service để xử lý yêu cầu đó, tải model và truyền dữ liệu đến view tương ứng, sau đó trả kết quả về cho quản trị viên.
Package nongsan.webmvc.dao.impl
Tầng dao: có chức năng là tương tác với database ví dụ các câu truy vấn dữ liệu thêm sửa xóa hoặc lấy thông tin từ database.
Kết nối IDE với database
Package nongsan.webmvc.model Ánh xạ các đối tượng trong database thành classjava tương ứng theo bảng theo bảng
Tầng service chịu trách nhiệm xử lý logic trong ứng dụng Tầng này được gọi bởi controller và sau khi thực hiện một số xử lý logic cần thiết, nó sẽ gọi xuống tầng dao để tương tác với cơ sở dữ liệu.
Package nongsan.webmvc.service.impl
Phân chia như vậy thì sẽ dễ quản lí code hơn Tuy hơi mất thời gian ban đầu nhưng khi muốn nâng cấp thì sẽ dễ dàng.
Trong các đồ án nhỏ, chỉ cần controller tiếp nhận yêu cầu và chuyển giao cho DAO để thực hiện tương tác với cơ sở dữ liệu và lưu trữ kết quả.