Sự ra đời của các ngôn ngữ lập trình cho phép chúng ta xây dựng các trang Web đáp ứng được các yêu cầu của người sử dụng.. Danh sách thành viên Phương thức thực hiện và kết quả - Phương
TÌM HIỂU CÔNG NGHỆ JAVA(JSP), SQL
Các tính năng của Java
Hướng đối tượng: Trong Java, tất cả đều là một Object, Java có thể mở rộng và bảo trì dễ dàng bởi nó được xây dựng dựa trên mô hình Object
Nền tảng độc lập: Khi được biên dịch, Java không được biên dịch thành ngôn ngữ máy trên nền tảng cụ thể mà thay vào mã byte – một nền tảng độc lập Mã byte này được thông dịch từ máy ảo (JVM) trên một nền tảng nào đó mà nó đang chạy Đơn giản: Java được thiết kế đơn giản, dễ học Chỉ hiểu khái niệm cơ bản về OOP
Java, để trở thành master về java rất dễ
Bảo mật: Tính năng an toàn của Java cho phép phát triển các hệ thống không virus, không giả mạo, việc xác thực dựa trên mã hoá khóa công khai
Kiến trúc – trung lập: Trình biên dịch của Java tạo ra các định dạng tệp đối tượng kiến trúc trung lập, khiến mã biên dịch được thực thi trên nhiều bộ vi xử thông qua hệ điều hành Java
Portable: Một loại kiến trúc trung lập, phụ thuộc vào việc thực hiện, là những đặc điểm chính khi nói về Portable của Java Các trình biên dịch tại Java được viết bằng ANSIC
Copies for internal use only in Phenikaa University với ranh giới Portable gọn gàng, gọi là Subset POSIX, bạn có thể mang Byte Code của Java lên bất cứ một nền tảng nào
Mạnh mẽ: Java luôn nỗ lực loại trừ các tình huống dễ bị lỗi thông qua việc kiểm tra lỗi tại thời điểm biên dịch và kiểm tra lỗi tại runtime Đa luồng: Giúp tạo ra các chương trình thực hiện cùng lúc nhiều tác vụ, cho phép các nhà phát triển xây dựng ứng dụng tương tác chạy trơn tru hơn
Thông dịch: Các mã byte Java được dịch trực tiếp tới các máy tính gốc và không được lưu trữ ở bất cứ đâu
Hiệu năng cao: Khi sử dụng trình biên dịch Just-In-Time, Java cho phép thực hiện hiệu năng cao
Phân tán: Java được sử dụng thiết kế cho môi trường phân tán của Internet
Năng động: Java năng động hơn C hoặc C++ do được thiết kế với mục đích thích ứng môi trường đang phát triển Các chương trình Java sở hữu lượng lớn thông tin tại runtime có thể được sử dụng để xác minh hay giải quyết các truy cập vào các đối tượng tại runtime
Hình 2 Sơ đồ tính năng của java
Copies for internal use only in Phenikaa University
1.1.2 Java được sử dụng để làm gì? Được biết Java rất phổ biến và đã thống trị lĩnh vực này từ đầu những năm 2000, đến nay Java đã được sử dụng trong đa dạng các lĩnh vực khác nhau Cụ thể:
✓ Desktop App như media player, acrobat reader, antivirus,…
✓ Web App như javatpoint.com, irctc.co.in,…
✓ Enterprise App như một vài ứng dụng về xử lý các nghiệp vụ ngân hàng,…
✓ Thiết bị Mobile như các ứng dụng IOS hay Android
1.1.3 Kiến trúc và môi trường của Java là gì?
Nhắc đến kiến trúc và môi trường của Java, chúng ta sẽ nói đến 3 thành phần chính bao gồm: Máy ảo Java (JVM), môi trường thời gian chạy Java (JRE) và bộ phát triển
Java (JDK) Copies for internal use only in Phenikaa University
Hình 4 Kiến trúc và môi trường jav
JVM cung cấp môi trường thời gian chạy trong đó bytecode thực thi Máy ảo Java JVM thực hiện các nhiệm vụ sau:
✓ Tạo môi trường thời gian chạy
1.1.5 Môi trường thời gian chạy Java – JRE
JRE là tập hợp công cụ cho phép phát triển các ứng dụng và cung cấp môi trường thời gian chạy nhằm chạy các chương trình Java JVM là một phần của JRE và chính JRE cũng phụ thuộc vào nền tảng Đồng thời JRE còn hỗ trợ thực thi những chương trình Java, bao gồm JVM, bộ công cụ giao diện người dùng, Công nghệ triển khai hay plugin Java, v.v
Copies for internal use only in Phenikaa University
1.1.6 Bộ phát triển Java (JDK)
JDK là viết tắt của Java Development Kit, một bộ cung cấp môi trường để phát triển và thực thi các chương trình Java JDK cũng chứa JRE chạy mã Java và chứa các tài nguyên khác như trình thông dịch/ trình tải, trình biên dịch, trình lưu trữ và trình tạo tài liệu
Tất cả các thành phần này hợp lại giúp xây dựng các chương trình Java Bộ phát triển Java bao gồm : Appletviewer (để xem các applet Java), Javac (trình biên dịch Java), Java (trình thông dịch Java), Javap (trình tháo gỡ Java), Javah (dành cho tệp tiêu đề C), Javadoc (để tạo tệp HTML) và Jdb (trình gỡ lỗi Java)
- Ưu điểm : Để có thể được nhiều người đón nhận sử dụng và đánh giá tích cực, chắc chắn Java đã có những ưu điểm nhất định Cụ thể :
Java là ngôn ngữ độc lập với nền tảng vì chúng ta có thể chạy mã Java ở bất kỳ máy nào mà không cần phần mềm đặc biệt
Là ngôn ngữ lập trình cấp cao dễ học và dễ hiểu
Là ngôn ngữ hướng đối tượng làm tăng khả năng phát triển mã dễ dàng và tăng hiệu quả Là ngôn ngữ an toàn vì Java không sử dụng con trỏ
Quản lý bộ nhớ hiệu quả
Hỗ trợ đa luồng, người dùng có thể thực hiện cùng lúc nhiều chương trình
Có nhiều tính năng : tự động thu gom rác, không sử dụng con trỏ, xử lý ngoại lệ…
- Nhược điểm : Bên cạnh những ưu điểm thì Java cũng tồn tại một vài nhược điểm Vậy những nhược điểm của Java là gì ?
- Là ngôn ngữ cấp cao nên phải xử lý các mức biên dịch và trừu tượng của một máy ảo
- Có ít trình xây dựng GUI (Giao diện người dùng đồ họa) như Swing, SWT, JSF và JavaFX
Copies for internal use only in Phenikaa University
- Nếu viết những đoạn mã dài phức tạp dễ ảnh hưởng đến khả năng đọc của mã.
JSP
▪ JSP là từ viết tắt của Java Server Pages Đây là một công nghệ phía máy chủ giúp các lập trình viên tạo ra các trang web bằng Java Đây là một tính năng được phát triển bởi Sun microsystems để cải tiến cho Servlets, che đậy tất cả các lỗ hổng của Servlets
Nếu bạn chưa biết, Servlets được sử dụng để chứa cả code logic và code giao diện Nhưng trong JSP, hai thành phần này được tách ra (Tách biệt logic nghiệp vụ và phần trình bày để dễ quản lý)
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
Tương tự, JDBC cũng có thể sử dụng được nếu chúng ta sử dụng JSP Do đó, khả năng truy vấn động của một cơ sở dữ liệu là có thể Ngoài ra, JSP cung cấp nhiều tính năng hơn như :
✓ Truy vấn cơ sở dữ liệu và lấy thông tin
✓ Chia sẻ thông tin giữa hai trang
1.2.1 Tại sao lại cần JSP
Chúng ta cần JSP vì JSP là một ngôn ngữ lập trình phía máy chủ giúp lập trình web động Không chỉ triển khai được Java API, mà JSP còn có thể kết nối với cơ sở dữ liệu, điều mà trước đây không thể thực hiện được Các Action Command và Texual Data đều có thể được kết hợp trong JSP
Nội dung động như checkbox, action button đều có thể được trích xuất cho các giá trị của chúng JSP cũng có thể truy cập JavaBeans hoặc một đối tượng của nó
Copies for internal use only in Phenikaa University
1.2.2 Sơ đồ làm việc với JSP
Hình 5 Sơ đồ làm việc JSP
Cho đến bây giờ, chúng ta đã thấy rất nhiều cách sử dụng JSP, nó đang làm cho công việc của các lập trình viên Java dễ dàng hơn bằng cách cho phép họ truy cập rất nhiều dữ liệu và script khác
Một JSP trước tiên sẽ được dịch sang một Servlet thông thường Như bất kỳ servlet nào sẽ làm, nó dịch các request, nhưng lần đầu tiên sẽ không giống như các servlet
Kết quả thu được khi translator nhận ra tên tệp với phần mở rộng của nó là jsp Sau đó, nó được chuyển tiếp tới servlet một lần nữa hoặc một jsp 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ủ nhận ra nó là một trang JSP và gửi nó đến máy chủ JSP để thực thi Máy chủ nhận ra điều này bằng cách định vị trang có phần mở rộng là jsp
- 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
Copies for internal use only in Phenikaa University
- Với một phần mở rộng cho Java servlet, JSP có thể sử dụng mọi tính năng của Java Servlet Ngoài ra, các thẻ tùy chỉnh có thể được sử dụng cùng với nó
- Không cần phải biên dịch lại JSP khi thay đổi Các thay đổi tự động xuất hiện khi chạy
- Các thẻ được sử dụng rất dễ hiểu và viết
- Hỗ trợ Java API, giờ đây bạn có thể dễ dàng sử dụng và tích hợp với mã HTML
- Các kết quả thu được có định dạng HTML, do đó có thể được mở trên mọi trình duyệt
- Các thẻ JSP tùy chỉnh có thể được sử dụng Ví dụ: Thẻ có XML
- Thay đổi có thể được thêm vào business logic page thay vì thay đổi trong mỗi trang
- Mặc dù cơ sở dữ liệu có thể được truy cập bằng JSP, nhưng không dễ để truy cập cơ sở dữ liệu vì hầu hết các servlet không cung cấp hỗ trợ
- Bản chất JSP là một servlet, nếu có một vấn đề trong code, nó rất khó để theo dõi.
Giới thiệu cơ sở dữ liệu
MySQL là ứng dụng cơ sở dữ liệu mã nguồn mở phổ biến nhất hiện nay (theo www.mysql.com) và được sử dụng phối hợp với JAVA Trước khi làm việc với MySQL cần xác định các nhu cầu cho ứng dụng
MySQL là cơ sở dữ có trình giao diện trên Windows hay Linux, cho phép người sử dụng có thể thao tác các hành động liên quan đến nó Việc tìm hiểu từng công nghệ trước khi bắt tay vào việc viết mã kịch bản JAVA, việc tích hợp hai công nghệ JAVA và MySQL là một công việc cần thiết và rất quan trọng
Copies for internal use only in Phenikaa University
Mục đích sử dụng cơ sở dữ liệu
Mục đích sử dụng cơ sở dữ liệu bao gồm các chức năng như : lưu trữ (storage), truy cập (accessibility), tổ chức (organization) và xử lí (manipulation)
- Lưu trữ : Lưu trữ trên đĩa và có thể chuyển đổi dữ liệu từ cơ sở dữ liệu này sang cơ sở dữ liệu khác, nếu bạn sử dụng cho quy mô nhỏ, bạn có thể chọn cơ sở dữ liệu nhỏ như : Microsoft Exel, Microsoft Access, MySQL, Microsoft Visual FoxPro… Nếu ứng dụng có quy mô lớn, bạn có thể chọn cơ sở dữ liệu có quy mô lớn như: Oracle, SQL Server…
- Truy cập: Truy cập dữ liệu phụ thuộc vào mục đích và yêu cầu của người sử dụng, ở mức độ mang tính cục bộ, truy cập cơ sỏ dữ liệu ngay trong cơ sở dữ liệu với nhau, nhằm trao đổi hay xử lí dữ liệu ngay bên trong chính nó, nhưng do mục đích và yêu cầu người dùng vượt ra ngoàicơ sở dữ liệu, nên bạn cần có các phương thức truy cập dữ liệu giữa các cơ sở dử liệu với nhau như: Microsoft Access với SQL Server, hay SQLServer và cơ sở dữ liệu Oracle
- Tổ chức: Tổ chức cơ sở dữ liệu phụ thuộc vào mô hình cơ sở dữ liệu, phân tích và thiết kế cơ sở dữ liệu tức là tổ chức cơ sở dữ liệu phụ thuộc vào đặc điểm riêng của từng ứng dụng Tuy nhiên khi tổ chức cơ sở dữ liệu cần phải tuân theo một số tiêu chuẩn của hệ thống cơ sở dữ liệu nhằm tăng tính tối ưu khi truy cập và xử lí
- Xử lí: Tùy vào nhu cầu tính toán và truy vấn cơ sở dữ liệu với các mục đích khác nhau, cần phải sử dụng các phát biểu truy vấn cùng các phép toán, phát biểu của cơ sở dữ liệu để xuất ra kết quả như yêu cầu Để thao tác hay xử lí dữ liệu bên trong chính cơ sở dữ liệu ta sử dụng các ngôn ngữ lập trình như: PHP, C++, Java, Visual Basic…
PHPMyAdmin
PhpMyAdmin là phần mềm mã nguồn mở được viết bằng ngôn ngữ PHP giúp quản trị cở sở dữ liệu MySQL thông qua giao diện web
Các tính năng của phpMyAdmin
Một số tính năng chung thường được sử dụng trên phpMyAdmin:
✓ Quản lý user(người dùng): thêm, xóa, sửa(phân quyền)
Copies for internal use only in Phenikaa University
✓ Quản lý cơ sở dữ liệu: tạo mới, xóa, sửa, thêm bảng, hàng, trường, tìm kiếm đối tượng
✓ Nhập xuất dữ liệu(Import/Export): hỗ trợ các định dạng SQL, XML và CSV
✓ Thực hiện các truy vấn MySQL, giám sát quá trình và theo dõi
✓ Sao lưu và khôi phục(Backup/Restore): Thao tác thủ công
Quản trị DBMS MySQL của phpMyAdmin
Bên cạnh việc cung cấp nhiều tính năng cần thiết như đã đề cập, phpMyAdmin còn có thể vừa làm việc với một đối tượng vừa xử lý các tinh huống bất ngờ Một vài ví dụ kể đến như SQL injection, các vấn đề phát sinh, lỗi database… Điểm yếu trong việc sao lưu dữ liệu của phpMyAdmin
Dù có nhiều ưu điểm song phpMyAdmin vẫn khó tránh khỏi một vài điểm yếu cố hữu Đặc biệt, trong việc sao lưu dữ liệu thủ công sẽ không có một vài tính năng cần thiết
Scheduling(sao lưu tự động theo lịch đặt trước): Một tính năng khá phổ biến ở những công cụ quản trị cơ sở dữ liệu
Storage media support(hỗ trợ lưu trữ các phương tiện truyền thông): phpMyAdmin chỉ cho phép lưu các bản sao lưu vào các local drive có sẵn trên hệ thống, qua hộp thoại Save as của trình duyệt
Là nơi cung cấp các thao tác để sử dụng cơ sở dữ liệu Sau khi thực hiện đăng nhập tài khoản, hãy chọn tab Databases, chọn một database bất kì, trên thanh công cụ chọn Tab Operations
✓ Create table: tạo bảng mới cho database đang truy cập bằng cách điền tên bảng và số cột
✓ Rename database to: đổi tên cơ sở dữ liệu là tính năng mà phpMyAdmin không thể thực hiện được Nếu muốn đổi tên hãy tạo mới 1 database, sao lưu database cũ và nhập vào database mới, cuối cùng là xóa cái cũ
✓ Copy database to: tương tự Rename database to, khi dùng tính năng này không nên xóa database cũ
Copies for internal use only in Phenikaa University
✓ Collation: chọn kiểu mã hóa ký tự
Là nơi thực hiện các thao tác trên database table, truy cập phpMyAdmin, chọn database muốn có table cần thao tác và chọn table đó Nhấn chọn tab Operations
✓ Move table to: di chuyển bảng với một tên mới trong cơ sở dữ liệu hiện tại hoặc một cơ sở dữ liệu khác
✓ Table options: các tác vụ với bẳng bao gồm đổi tên, chèn nhận xét, đổi công cụ lưu trữ và đối chiếu
✓ Copy table to: sao chép bảng có tên mới trong cơ sở dữ liệu hiện tại hoặc được sao chép trong cơ sở dữ liệu khác
✓ Table Maintenance với các tùy chọn:
✓ Analyze table: phân tích và lưu trữ key distribution cho bảng trong cơ sở dữ liệu
✓ Check table: kiểm tra bảng và các view liên quan để tìm ra lỗi và sự cố
✓ Repair table: sửa chữa bảng bị hỏng
✓ Optimize table: Để lấy lại không gian đã sử dụng, nên thực hiện khi bạn xóa hoặc sửa đổi nhiều bản ghi từ bảng
✓ Flush the table: xóa và tải lại internal cache có liên quan đến bảng
Hãy cùng điểm qua một số những ưu điểm lớn nhất của phpMyAdmin:
✓ Tăng hiệu quả công tác quản lý cơ sở dữ liệu
✓ Cộng đồng hỗ trợ rộng lớn
Copies for internal use only in Phenikaa University
Tăng hiệu quả công tác quản lý cơ sở dữ liệu phpMyAdmin mang đến giao diện xử lý các thao tác trên cơ sở dữ liệu một cách trực quan Từ đó, tiết kiệm thời gian, thao tác so với việc thực hiện bằng dòng lệnh trên command line
Copies for internal use only in Phenikaa University
– Bảo mật: Hạn chế lớn nhất của các mã nguồn mở chắc chắn là vấn đề bảo mật Hạn chế truy cập vào URL của phpMyAdmin từ những địa chỉ IP cố định
– Sao lưu: Như đã chia sẻ, thao tác sao lưu và phục hồi dữ liệu thủ công trên phpMyAdmin vẫn còn một số nhược điểm:
✓ Không thể tự xuất database
✓ Chỉ có thể kết nối thông qua trình duyệt tức chỉ lưu được các bản sao lưu vào các local drive có sẵn trên hệ thống
✓ Định dạng file xuất bằng phpMyAdmin không được mã hóa (thiếu an toàn) và chiếm dung lượng đĩa lớn
Copies for internal use only in Phenikaa University
XÂY DỰNG ỨNG DỤNG THỰC TẾ
Phân tích yêu cầu đề tài
2.1.1 Tóm tắt hoạt động của hệ thống mà dự án sẽ được ứng dụng:
- Là một Website chuyên bán các sản phẩm về máy tính, các linh kiện phụ tùng máy tính… cho các cá nhân và doanh nghiệp
- Là một Website động, các thông tin được cập nhật theo định kỳ
- Người dùng truy cập vào Website có thể xem, tìm kiếm, mua các sản phẩm, hoặc đặt hàng sản phẩm
- Các sản phẩm được sắp xếp hợp lý Vì vậy người dùng sẽ có cái nhìn tổng quan về tất cả các sản phẩm hiện có
- Người dùng có thể xem chi tiết từng sản (có hình ảnh minh hoạ sản phẩm)
- Khi đã chọn được món hàng vừa ý thì người dùng click vào nút cho vào giỏ hàng hoặc chọn biểu tượng giỏ hàng để sản phẩm được cập nhật trong giỏ hàng
- Người dùng vẫn có thể quay trở lại trang sản phẩm để xem và chọn tiếp, các sản phẩm đã chọn sẽ được lưu vào trong giỏ hàng
- Khách hàng cũng có thể bỏ đi những sản phẩm không vừa ý đã có trong giỏ hàng
- Nếu đã quyết định mua các sản phẩm trong giỏ hàng thì người dùng click vào mục thanh toán để hoàn tất việc mua hàng
- Đơn giá của các món hàng sẽ có trong giỏ hàng
- Người dùng sẽ điền thông tin khi đặt hàng mua
- Người dùng có thể dùng voucher của cửa hàng khi mua để được giảm giá
Copies for internal use only in Phenikaa University
2.1.2 Phạm vi dự án được ứng dụng
- Dành cho mọi đối tượng có nhu cầu mua sắm trên mạng
- Do nghiệp vụ của cửa hàng kết hợp với công nghệ mới và được xử lý trên hệ thống máy tính nên công việc liên lạc nơi khách hàng cũng như việc xử lý hoá đơn thực hiện một cách nhanh chóng và chính xác Rút ngắn được thời gian làm việc, cũng như đưa thông tin về các sản phẩm mới nhanh chóng đến cho khách hàng
- Có 2 đối tượng cơ bản là người dùng và nhà quản trị:
✓ Người dùng: Qua Website, khách hàng có thể xem thông tin, lựa chọn những sản phẩm ưa thích ở mọi nơi thậm chí ngay trong phòng làm việc của mình
✓ Nhà quản trị: Nhà quản trị có toàn quyền sử dụng và cập nhật sản phẩm, hoá đơn, quản lý khách hàng, đảm bảo tính an toàn cho Website
2.1.4 Mục đích của dự án
- Đáp ứng nhu cầu mua bán ngày càng phát triển của xã hội, xây dựng nên một môi trường làm việc hiệu quả
- Thúc đẩy phát triển buôn bán trực tuyến
- Rút ngắn khoảng cách giữa người mua và người bán, tạo ra một Website trực tuyến có thể đưa nhanh thông tin cũng như việc trao đổi mua bán các loại máy tính qua mạng
- Việc quản lý hàng trở nên dễ dàng
- Sản phẩm được sắp xếp có hệ thống nên người dùng dễ tìm kiếm sản phẩm
2.1.5 Xác định yêu cầu của khách hàng
Hệ thống hiện hành của cửa hàng:
Hiện tại cửa hàng đang sử dụng cơ chế quảng cáo, hợp đồng trưng bày, đặt hàng trực tiếp tại trung tâm do các nhân viên bán hàng trực tiếp đảm nhận (hoặc có thể gọi điện đến nhà phân phối để đặt hàng và cung cấp địa chỉ để nhân viên giao hàng tận nơi cho
Copies for internal use only in Phenikaa University khách hàng) Trong cả hai trường hợp trên khách hàng đều nhận hàng và thanh toán trực tiếp bằng tiền mặt tại nơi giao hàng.Và trong tờ hoá đơn khách hàng phải điền đầy đủ thông tin cá nhân và số lượng mặt hàng cần mua Kế toán phải chuẩn bị hoá đơn thanh toán, nhập một số dữ liệu liên quan như ngày, giờ, tên khách hàng, mã số mặt hàng, số lượng mua, các hợp đồng trưng bày sản phẩm, tổng số các hoá đơn vào trong sổ kinh doanh
Dựa vào những ràng buộc cụ thể của hệ thống hiện hành chúng ta có thể đề nghị một hệ thống khác tiên tiến hơn, tiết kiệm được thời gian…
Hệ thống đề nghị: Để có thể vừa quảng cáo, bán hàng và giới thiệu sản phẩm của cửa hàng trên mạng thì website cần có các phần như:
- Phải có một giao diện thân thiện dễ sử dụng
- Phải nêu được thế mạnh của website, cũng như tạo được niềm tin cho khách hàng ngay từ lần truy cập đầu tiên
- Giới thiệu được sản phẩm của cửa hàng đang có
- Có danh mục sản phẩm
- Chức năng đặt hàng, mua hàng
- Có biểu mẫu liên hệ
- Chức năng tìm kiếm sản phẩm
- Mỗi loại sản phẩm cần phải có trang xem chi tiết sản phẩm
- Mục login của khách hàng khi đã trở thành thành viên gồm có: Tên đăng nhập (Username), mật khẩu đăng nhập (password)
- Giao diện người quản trị
❖ Đơn giản, dễ quản lý và không thể thiếu các mục như:
Copies for internal use only in Phenikaa University
✓ Quản lý mọi thay đổi của website
❖ Người xây dựng nên hệ thống phải am hiểu về thương mại điện tử, hiểu rõ cách thức mua bán hàng qua mạng
❖ Người xây dựng nên hệ thống đặc biệt phải hiểu rõ các thông số kĩ thuật về máy tính: Có thể đưa ra đựơc một cái nhìn tổng quát, sâu rộng về sản phẩm
- Người Admin có toàn quyền giữ bảo mật cho website bằng mật khẩu riêng
- Quản lý User & Password của khách hàng an toàn: Thông tin của khách hàng được bảo mật
- Phần cứng: PC bộ vi xử lý pentium III, ram 128 trở lên, ổ cứng 10G trở lên
- Hệ điều hành: Windown XP trở lên
- Phần mềm hỗ trợ: XAMPP, mySQL
- Chương trình sử dụng ngôn ngữ JAVA và cơ sở dữ liệu MySQL
- Các công cụ mà hệ thống sử dụng:
• Gói XAMPP: Cài đặt các thành phần Apache, JAVA, MySQL
- MySQL - Cơ sở dữ liệu
- FileZilla - Giả lập FTP server
- Và các tính năng chuyên sâu khác
Copies for internal use only in Phenikaa University o mySQL: Dùng để lưu cơ sở dữ liệu o Javascript : Bắt lỗi dữ liệu o Dreamweaver: Tạo form, thiết kế giao diện o JSP: Giao diện
2.1.6 Yêu cầu giao diện của website
✓ Phải có một giao diện thân thiện dễ sử dụng:
✓ Màu sắc hài hoà làm nổi bật hình ảnh của sản phẩm, font chữ thống nhất, tiện lợi khi sử dụng
✓ Giới thiệu những thông tin về cửa hàng: Địa chỉ liên hệ của cửa hàng hoặc các đại lý trực thuộc, các số điện thoại liên hệ, email liên hệ
❖ Giao diện người quản trị:
✓ Giao diện đơn giản, dễ quản lý dữ liệu
✓ Phải được bảo vệ bằng User & Password riêng của Admin
2.1.7 Phân tích các chức năng của hệ thống
Các tác nhân của hệ thống gồm có
✓ Administrator: là thành viên quản trị của hệ thống, có các quyền và chức năng như: tạo các tài khoản, quản lý sản phẩm, quản trị người dùng, quản lý hoá đơn…
✓ Member: là hệ thống thành viên có chức năng: Đăng kí, đăng nhập, tìm kiếm, xem, sửa thông tin cá nhân, xem giỏ hàng, đặt hàng, xem thông tin về các hóa đơn đã lập
✓ Customer: Là khách vãng lai có chức năng: Đăng kí, tìm kiếm, xem thông tin sản phẩm
Copies for internal use only in Phenikaa University
Hình 8 Sơ đồ hệ thống
2.1.8 Các chức năng của đối tượng Customer (Khách vãng lai)
Khi tham gia vào hệ thống thì họ có thể xem thông tin, tìm kiếm sản phẩm, đăng ký là thành viên của hệ thống, chọn sản phẩm vào giỏ hàng, xem giỏ hàng, đặt hàng
❖ Chức năng đăng ký thành viên
✓ Description: Dành cho khách vãng lai đăng ký làm thành viên để có thêm nhiều chức năng cho việc mua bán sản phẩm, cũng như tạo mối quan hệ lâu dài với công ty Qua đó, thành viên sẽ được hưởng chế độ khuyến mại đặc biệt
✓ Input: Khách vãng lai phải nhập đầy đủ các thông tin (*: là thông tin bắt buộc)
Copies for internal use only in Phenikaa University
➢ Họ và tên: Nhập họ và tên (*)
➢ Địa chỉ: Nhập địa chỉ của Member (*)
➢ Điện thoại: Nhập điện thoại (*)
➢ Process: Kiểm tra thông tin nhập Nếu thông tin chính xác sẽ lưu thông tin vào CSDL và thêm thông tin của thành viên đó vào CSDL
➢ Output: Đưa ra thông báo đăng ký thành công hoặc yêu cầu nhập lại nếu thông tin không hợp lệ
❖ Chức năng tìm kiếm sản phẩm
✓ Input: Nhập vào hoặc lựa chọn thông tin tìm kiếm theo Hãng, theo Giá, theo tên sản phẩm, theo chủng loại…
✓ Process: Lấy thông tin sản phẩm từ CSDL theo các trường tìm kiếm
✓ Output: Hiện chi tiết thông tin sản phẩm thỏa mãn yêu cầu tìm kiếm
Copies for internal use only in Phenikaa University
❖ Chức năng xem thông tin sản phẩm
✓ Description: Cho phép xem chi tiết thông tin của sản phẩm
✓ Input: Chọn sản phẩm cần xem
✓ Process: Lấy thông tin sản phẩm từ CSDL thông qua ID
✓ Output: Hiện chi tiết thông tin sản phẩm
Copies for internal use only in Phenikaa University
✓ Description: Cho phép xem chi tiết giỏ hàng
✓ Input: Click chọn vào giỏ hàng
✓ Khách hàng có thể dùng mã giảm giá để giảm chi phí
✓ Process: Lấy thông tin sản phẩm từ CSDL thông qua ID ID này được lấy từ biến session lưu các thông tin về mã sản phẩm và số lượng của từng sản phẩm mà khách hàng chọn vào giỏ hàng
✓ Output: Hiển thị thông tin về tên sản phẩm, ảnh, đơn giá, số lượng, thành tiền, tổng tiền của sản phẩm
Hình 12 Display giỏ hàng, voucher
✓ Description: Cho phép tất cả các khách hàng có thể đặt hàng mà cần phải là thành viên của hệ thống
✓ Input: Sau khi xem giỏ hàng, khách hàng có nhu cầu đặt hàng qua mạng thì có thể click vào nút đặt hàng và điền một số thông tin cần thiết để người quản trị có thể xác nhận thông tin và giao hàng trực tiếp đến đúng địa chỉ một cách nhanh nhất có thể
✓ Process: Lưu thông tin về khách hàng và thông tin hóa đơn đặt hàng vào các bảng trong cơ sở dữ liệu
Copies for internal use only in Phenikaa University
✓ Output: Đưa ra thông báo đơn đặt hàng đã được lập thành công hoặc không thành công
2.1.9 Các chức năng của đối tượng Member (thành viên)
Thành viên có tất cả các chức năng giống như khách vãng lai và còn có thêm một số chức năng khác như:
✓ Description: Cho Member login vào hệ thống
✓ Input: Người dùng nhập vào các thông tin về username, password để login
✓ Process: Kiểm tra username và password của người dùng nhập vào và so sánh với username và password trong CSDL
Biểu đồ phân tích thiết kế hệ thống
Thông tin đăng nhập phù hợp với CSDL ?
Hiển thị thông báo đăng nhập thành công và lưu thông tin đăng nhập vào session
Hiển thị thông báo yêu cầu nhập lại thông tin hoặc tài khoản chưa kích hoạt
Hình 24 Biểu đồ đăng nhập
Copies for internal use only in Phenikaa University
Xóa session lưu thông tin đăng nhập
Thông báo logout thành công
Hình 25 Biểu đồ đăng xuất
Copies for internal use only in Phenikaa University
Cập nhật thông tin về Người sử dụng vào
Hiển thị thông báo thành công
Kiểm tra trong CSDL Xem User đó đã tồn tại hay chưa ?
Hiển thị thông báo yêu cầu nhập lại UserName khác
Hình 26 Biểu đồ đăng ký
Copies for internal use only in Phenikaa University
❖ Xem thông tin về sản phẩm
Click chọn vào sản phẩm cần xem
Hiển thị thông tin chi tiết SP đã có trong CSDL
Lấy Mã SP từ biến session
Lấy thông tin của SP có mã đó trong CDSL
Hình 27 Biểu đồ thông tin về sản phẩm
Copies for internal use only in Phenikaa University
❖ Thêm sản phẩm vào giỏ hàng
Xem sản phẩm Click chọn sản phẩm thêm vào giỏ hàng
Tiếp tục thêm sản phẩm vào giỏ hàng
Lưu Mã SP và số lượng vào biến session
Kiểm tra biến session đã có Mã
Hình 28 Biểu đồ thêm sản phẩm vào giỏ hàng
Copies for internal use only in Phenikaa University
Member chọn và nhập số lượng sản phẩm
Cập nhật thông tin sản phẩm được chọn vào
Hiển thị thông báo thành công Begin
Hình 29 Biểu đồ đặt hàng
Copies for internal use only in Phenikaa University
Nhập thông tin về sản phẩm cần thêm
Cập nhật thông tin về Sản phẩp đó vào CSDL
Kiểm tra trong CSDL Xem Sản phẩm đó đã tồn tại hay chưa ?
Hiển thị thông báo yêu cầu nhập lại sản phẩm khác
Hình 30 Biểu đồ thêm sản phẩm
Copies for internal use only in Phenikaa University
❖ Sửa thông tin sản phẩm
Chọn sản phẩm và thay đổi thông tin về sản phảm cần sửa
Lưu thông tin sản phẩm vừa sửa vào CSDL
Hình 31 Biểu đồ sửa thông tin sản phẩm
Copies for internal use only in Phenikaa University
Tìm sản phẩm muốn xoá và chọn biểu tượng xoá
Xoá sản phẩm đó ra khỏi
Xác nhận lại thông tin xoá? No
Hình 32 Biểu đồ xóa sản phẩm
Copies for internal use only in Phenikaa University Đặc tả Use-case
+ Xem chi tiêt() : void + Tìm kiếm() : void +Tìm kiếm nâng cao() : void
+ Tìm kiếm() : void + Tìm kiếm các SP tương tự () : void
Hình 33 Use case tìm kiếm
P ag eL oa d( ) T ìm k iế m ()
Hình 34 Biểu đồ cộng tác chức năng tìm kiếm
Copies for internal use only in Phenikaa University
Dưới đây là biểu đồ tuần tự
Yêu cầu tìm kiếm (Từ khóa)
Tìm kiếm(Từ khóa ) Lấy dữ liệu()
Hình 35 Biểu đồ tuần tự chức năng tìm kiếm
❖ Use-case quản lý sản phẩm
+ Chi tiết SP () : void + Thông tin
+ Thêm() : int +Sửa () : int + Xoá () : int
+ Thêm() : int +Sửa () : int +Xoá () : int
Hình 36 Use-case quản lý sản phẩm
Copies for internal use only in Phenikaa University
Database Ðăng nhập(user/pass)
Hình 37 Biểu đồ cộng tác chức năng cập nhật
❖ Chức năng thêm mới sản phẩm
Admin _ _ _ Đăng nhập( user / pass)
Kiểm tra (user / pass) Yêu cầu chọn thao tác
Thêm mới () Kết quả Kết quả
Hình 38 Biểu đồ tuần tự chức năng thêm sản phẩm mới
Copies for internal use only in Phenikaa University
❖ Chức năng sửa thông tin sản phẩm
Kiểm tra( user/ pass) Yêu cầu thao tác
Lấy SP (id) Kết quả Kết quả
Sửa() Kết quả Kết quả
Admin login Control Process _ Database Đăng nhập( user / pass)
Hình 39 Biểu đồ tuần tự chức năng sửa thông tin sản phẩm
❖ Chức năng xóa sản phẩm:
Xoá(id) Kết quả Kết quả
Admin login _ Control Process _ Database _ Đăng nhập( user / pass) Yêu cầu chọn thao tác
Hình 40 Biểu đồ tuần tự chức năng xóa sản phẩm
Copies for internal use only in Phenikaa University
1:[Chọn chức năng Đăng nhập] Gửi yêu cầu đăng nhập
5: Xác thực thành công 6: Xác thực thành công
7: Thông báo đăng nhập thành công
8:[Chọn chức năng đổi mật khẩu] Gửi yêu cầu đổi mật khẩu
9: Hiện chức năng đổi mật khẩu
10: Nhập và xác nhận Password mới
13: Xác nhận thay đổi thành công 14: Xác nhận thay đổi thành công
15: Thông báo đổi Password thành công
Hình 41 Biểu đồ tuần tự chức năng đăng nhập
Copies for internal use only in Phenikaa University
❖ Chức năng đăng ký thành viên
1:[Chọn chức năng đăng kí thành viên] Gửi yêu cầu 2: Hiển thị form đăng ký
3: Nhập các thông tin đăng ký
4: Kiểm tra UserName này đã có trong CSDL chưa
7: Xác nhận đã tồn tại
Gọi lại form Đăng ký để nhập lại
6: Xác nhận đăng ký thành công
8: Thông báo đăng ký thành viên thành công
6:(Nếu có) Xác nhận đã tồn tại Customer
Hình 42 Biểu đồ tuần tự chức năng đăng ký thành viên
2.2.1 Cách tổ chức dữ liệu và thiết kế chương trình cho trang Web
Việc tổ chức dữ liệu phải giải quyết được các yêu cầu đã phân tích để lúc hiển thị lên trang Web có giao diện dễ nhìn, dễ dàng, hấp dẫn khách hàng Một phương pháp sử dụng khá rộn rãi từ trước đến nay là quản lí theo từng nhóm sản phẩm Mỗi nhóm sẽ có một mã nhóm và tên nhóm để nhận biết Đối với Website này, với các sản phẩm, các sản phẩm sẽ tương ứng với mã hãng và mã loại sản phẩm của nó và mã đó sẽ làm khóa chính trong bảng đó Sau đây là một số bảng cơ sở dữ liệu chính trong toàn bộ cơ sở dữ liệu:
2.2.2 Yêu cầu về bảo mật
Có tính bảo mật cao, đảm bảo nếu không có được username, password và được cho phép hoạt động của Admin thì không có một User nào có thể thay đổi thông tin về sản phẩm cũng như toàn bộ Website ngoài việc thay đổi thông tin cá nhân của User vì vậy việc quản lý dữ liệu bằng mật khẩu đăng nhập:
Copies for internal use only in Phenikaa University
Các thông tin của khách hàng được bảo mật
Hệ thống quản trị tuyệt đối an toàn, không thể bị truy cập do lỗi của hệ thống
Như vậy, từ các biểu đồ Use Case và biểu đồ hoạt động của hệ thống đã thể hiện được các chức năng của các tác nhân và hệ thống làm việc như thế nào, xuất phát từ hệ thống hiện tại và các yêu cầu về hệ thống, yêu cầu khách hàng, chúng ta nên xây dựng cho trang Website có đầy đủ chức năng của người quản trị và người dùng và phải đảm bảo có được tính bảo mật cao
Hình 43 Giao diện trang chủ
Copies for internal use only in Phenikaa University
Trang chủ “index.jsp”: Là trang chính, chứa tất cả các mục để lựa chọn Từ trang chủ khách hàng có thể tìm thấy mọi thông tin cần thiết:
Thông tin về các loại sản phẩm với giao diện gần gũi, thân thiện và dễ sử dụng từ đó khách hàng có thể đặt mua cho mình những sản phẩm yêu thích, phù hợp với túi tiền
❖ Giao diện Form đăng nhập
Hình 44 Giao diện form đăng nhập
Trang “login.jsp” là trang mà khách hàng sẽ nhập User và Pass của mình để đăng nhập vào website, nếu chưa có tài khoản khách hàng nhấn vào nút Đăng ký để tạo cho mình một tài khoản mới
❖ Giao diện trang giỏ hàng
Copies for internal use only in Phenikaa University
Hình 45 Giao diện giỏ hàng
Trang “cart.jsp” là trang mà khách hàng có thể xem được những sản phẩm của mình đã chọn Tại đây khách hàng có thể biết được số lượng mặt hàng mình đã chọn cũng như tổng số tiền phải thanh toán Khách hàng có thể thêm, cập nhập cũng như xóa sản phẩm ngay tại giỏ hàng Tại đây cũng có chức năng lưu lịch sử mua hàng của khách hàng
❖ Giao diện Form đăng ký thành viên
Hình 46 Giao diện form đăng ký thành viên
Copies for internal use only in Phenikaa University
Trang “register.jsp” Tại đây khách hàng sẽ điền đầy đủ thông tin cá nhân và đăng ký cho mình một tài khoản, để dùng cho việc mua hàng tại website
❖ Giao diện trang chi tiết sản phẩm
Hình 47 Giao diện trang chi tiết sản phẩm
Trang “detail.jps” là trang hiển thị thông tin chi tiết về sản phẩm: giá, bảo hành, thông số kỹ thuật…giúp cho khách hàng có cái nhìn tổng quan về sản phẩm Là cơ sở để khách hàng có quyết định mua sản phẩm hay không
Copies for internal use only in Phenikaa University
Hình 48 Trang quản trị admin Đây là trang quản trị dành cho người Admin của cửa hàng, cung cấp đầy đủ tính năng cho người quản trị như: quản lý sản phẩm, quản lý thành viên, quản lý các đơn đặt hàng…
Database là cơ sở dữ liệu, là một bộ sưu tập dữ liệu được tổ chức bày bản và thường được truy cập từ hệ thống máy tính hoặc tồn tại dưới dạng tập tin trong hệ quản trị cơ sở dữ liệu
Hình 49 Bảng dữ liệu data
Copies for internal use only in Phenikaa University
Dùng để thêm các sản phẩm (tên, giá, số lượng, ảnh máy, thông tin)
Mã giảm giá dùng để mua các sản phẩm với giá rẻ hơn
Các hãng của máy tính
Copies for internal use only in Phenikaa University
Dùng để xem chi tiết trong giỏ hàng
Dùng để xem chi tiết đơn hàng đã mua
Copies for internal use only in Phenikaa University
Dùng để xem lịch sử mua hàng
Dùng để lưu các thông tin cá nhân của người dùng như: tên, email, số điện thoại, mật khẩu, địa chỉ, ngày đăng ký
Copies for internal use only in Phenikaa University