Đề tài Chương trình quản lý mua bán sách
Bạn đang xem 20 trang mẫu của tài liệu "Đề tài Chương trình quản lý mua bán sách", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- chuong_trinh_quan_ly_mua_ban_sach.pdf
Nội dung text: Đề tài Chương trình quản lý mua bán sách
- Chương 1 Tổng quan 1.1. Xu hướng chung : Ngày nay công nghệ web phát triển ngày càng mạnh mẽ do nhu cầu làm việc qua web ngày càng nhiều, ứng dụng web từ đó phát triển mạnh mẽ để đáp nhu nhu cầu làm việc của con người càng tiện lợi và nhanh chóng hơn. 1.2. Lý do và mục tiêu chọn đề tài : Đề tài là ứng dụng web, sử dụng ngôn ngữ java và framework strust, sau khi hoàn thành sẽ hiểu biết nhiều hơn về công nghệ làm web của java. 1.3. Tóm tắt khóa luận Các công việc được thực hiện trong cuốn khóa như sau: Chương 1. Tổng quan: Xu hướng chung của web đồng thời sơ lược chung đề tài. Chương 2.: Giới thiệu về Struts và MVC Chương 3: Nêu những vấn đề tồn đọng và cách giải quyết vấn đề đồng thời thiết kế cơ sỡ dữ liệu. Chương 4: Thử nghiệm cài đặt. Chương 5: Tổng kết. 1
- Chương 2 Khái quát về mô hình MVC và FRAMEWORK STRUTS 2.1. Mô hình MVC 2.1.1. Khái niệm MVC Mô hình MVC(Model-View-Controllor) còn gọi là mô hình 2 . Tức là: Tương ứng với một trang JSP trước kia, bây giờ người ta tách nó ra làm ba thành phần: Model-View-Controllor. Mô hình MVC nó ra đời thay thế cho mô hình 1. o Mô hình 1: Trước kia khi lập trình một trang jsp, php hay asp, chúng ta thường đan xen các mã html cùng với các mã jsp, php, hay asp. Do vậy, có những khó khăn sau có thể gặp phải: · Người thiết kế giao diện cũng cần phải biết các ngôn ngữ lập trình, hoặc chúng ta phải trực tiếp thiết kế chúng. · Việc bảo trì chúng thường rất khó khăn, vì một phần các mã chương trình lẫn lộn với mã html. · Khi có lỗi xảy ra, việc tìm ra lỗi và định vị lỗi cũng là một vấn đề khó khăn. · Và còn nhiều những khó khăn khác o Việc lập trình như trên, người ta gọi là mô hình lập trình 1, hay là mô hình lập trình cổ điển. 2
- 2.1.2. Mô hình MVC Hình 1 Mô hình MVC Mô hình MVC chia các component ứng dụng thành 3 loại khác nhau đó là Model-View-Controller mỗi components đảm nhận một trách nhiệm nhất định, các components đều độc lập với các components khác.Nhiệm vụ của các components là: · View : Người dùng tương tác với ứng dụng thông qua components View.View có trách nhiệm lấy request và gửi yêu cầu đến controller, nhận kết quả từ controller hiển thị cho người dùng.HTML, JSPs, các thư viện Tag và các File nguồn là các thành phần của components View. · Controller : Là trung gian giữa Model và View, Controller có trách nhiệm nhận yêu cầu từ View sau khi nhận yêu cầu controller sẽ thực thi Business logic thích hợp từ Model, sau đó điều khiển components View xuất dữ liệu cho User.ActionSevlet, Action, ActionForm và Struts-config.XML là các thành phần của Controller. · Model : Đảm nhận nhiệm vụ cung cấp dữ liệu từ cơ sở dữ liệu và lưu thông tin vào CSDL, tất cả các Bussiness đều được thực thi ở Model.Truy xuất dữ liệu, sự hợp lệ của dữ liệu và data saving logic là các thành phần của Model. 3
- 2.1.3. Lợi ích của mô hình MVC o Tính tin cậy: Tầng trình bày và tầng giao tác có sự phân chia rõ ràng, cho phép bạn thay đổi cảm quan của ứng dụng mà không cần biên dịch lại mã lệnh của Model hay Controller. o Tính thích ứng và tái sử dụng cao : Mẫu MVC cho phép bạn sử dụng nhiều loại khung nhìn, tất cả cùng truy xuất đến một mã nguồn phía server, từ trình duyệt web (HTTP) cho đến trình duyệt không dây (WAP). o Các phí tổn trong vòng đời phát triển rất thấp : Mẫu MVC chỉ cần có người lập trình cấp thấp phát triển và bảo trì các giao diện người dùng. o Triển khai nhanh chóng : Thời gian phát triển có thể được giảm đáng kể, bởi vì những người lập trình cho thành phần Controller (nhà phát triển Java) chỉ tập trung vào phần giao tác, còn những người lập trình cho thành phần View (nhà phát triển HTML và JSP) chỉ tập trung vào phần trình bày. o Tính bảo trì : Việc tách phần trình bày và logic nghiệp vụ cũng khiến việc bảo trì và sửa đổi một ứng dụng Web dựa trên Struts dễ dàng hơn. 2.1.4. Hạn chế của mô hình MVC o Gia tăng sự phức tạp o Sự kết nối chặc chẻ của view và controller đối với model o Sự thay đổi đối với giao diện model đòi hỏi sự thay đổi song song trong view và có thể đòi hỏi sự thay đổi thêm đối với controller. Sự thay đổi code nào đó có thể trở nên khó khăn hơn. o Tìm ẩn sự cập nhật dư thừa. o Cơ chế truyền sự thay đổi có thể không hiệu quả khi model thay đổi thường xuyên đòi hỏi nhiều thông báo thay đổi. Đây không phải là vấn đề chung nếu passive model được sử dụng. o Sự kết nối chặc chẻ giữa view và controller. o Sự tách biệt rõ ràng là rất khó, đôi khi là không thể. 4
- 2.2. STRUTS FRAMEWORK 2.2.1. Khái niệm framework struts o Struts là một MVC Framework.Struts cung cấp một Framework thống nhất để Deloy các ứng dụng Servlet và Jsp sử dụng kiến trúc MVC. o Struts là một tập các Utilities: Struts cung cấp các lớp tiện ích để điều khiển hầu hết các tác vụ trong việc phát triển các ứng dụng Web. o Struts là một tập thư viện các thẻ JSP tùy chọn (Custom JSP Tag): Struts cung cấp các thư viện thẻ tùy chọn cho việc thể hiện các thuộc tính của bean, quản lý các HTML forms, lặp lại các kiểu cấu trúc dữ liệu, và đưa ra các HTML có điều kiện. 2.2.2. Struts thực thi mô hình MVC Mô hình Struts Framework thực thi mô hình MVC bằng cách sử dụng tập hợp các thẻ JSP, các thẻ tùy chọn JSP (custom JSP tag), và các Java servlet. Dưới đây là mô tả ngắn gọn cách mà Struts Framework ánh xạ đến mỗi thành phần trong mô hình MVC. Hình 2 Struts thực thi mô hình MVC. trên mô tả tiến trình mà hầu hết các ứng dụng Struts phải tuân theo. 5
- Tiến trình này có thể được chia thành 5 bước căn bản: 1) Request được tạo ra từ một View 2) Request được tiếp nhận bởi một ActionServlet (đóng vai trò là một Controller), và ActionServlet này sẽ lookup URI cần thiết trong file XML và xác định tên của lớp Action sẽ thực hiện các bussiness logic cần thiết. 3) Lớp Action thực hiện các logic của nó trong các thành phần Model kết hợp với ứng dụng. 4) Khi Action hoàn tất tiến trình xử lý của nó, nó sẽ trả điều khiển về cho ActionServlet. Là một phần của thành phần trả về, lớp Action cung cấp một khóa xác định kết quả quả của tiến trình sử lý đó. ActionServlet sử dụng khóa này để xác định kết quả sẽ được forward đến đâu để trình diễn ra ngoài. Yêu cầu được hoàn tất khi ActionServlet đáp ứng nó bằng cách forward yêu cầu đó đến một View được liên kết đến để trả về khóa đã đề cập ở trên bước 4, và View này sẽ trinh diễn kết quả của Action. Thành phần Model Các thành phần Model của Struts Framework, biểu diễn các đối tượng dữ liệu của ứng dụng Struts. Chúng thường biểu diễn các đối tượng nghiệp vụ hay các hệ thống backend khác và có thể được hiện thực là những JavaBea đơn giản, những EnterpriseJavaBean, những biểu diễn đối tượng của dữ liệu được lưu trữ trong một cơ sở dữ liệu quan hệ, hoặc chỉ là những gì cần được thao tác hay biểu diễn trong một ứng dụng Web. Thành phần View Mỗi thành phần View trong Struts Framework được ánh xạ đến một trang JSP, trang này có thể chứa bất kỳ sự kết hợp nào của các thẻ tùy biến Struts, JSP, và HTML. Các trang JSP trong Struts Framework có hai chức năng chính. Thứ nhất, đóng vai trò là tầng 6
- trình bày của một Controller Action đã được thực thi trước đó. Điều này thường được hoàn thành bằng cách sử dụng một tập thẻ tùy biến để duyệt và thu lấy dữ liệu mà Controller Action chuyển đến JSP đích. Loại View này không thể hiện đặc trưng của Struts và không được lưu tâm. Chức năng thứ hai, thể hiện đặc trưng của Struts, là thu thập dữ liệu cần thiết để thực hiện một Controller Action cụ thể. Điều này thường được hoàn thành bằng cách kết hợp các thư viện thẻ Struts và các đối tượng ActionForm. Loại View này chứa một số lớp và thẻ đặc-trưng- Struts. Đoạn mã sau là một ví dụ đơn giản về loại View này: User Id: Password: Thành phần Controller Thành phần Controller của Struts Framework là xương sống của tất cả các ứng dụng Web Struts. Nó được hiện thực bằng một servlet có tên là org.apache.struts.action.ActionServlet. Servlet này nhận các yêu cầu HTTP và giao quyền điều khiển của mỗi yêu cầu, dựa vào URI của yêu cầu, cho một lớp org.apache.struts.action.Action do người dùng định nghĩa. Lớp Action là nơi mà thành phần Model của ứng dụng được thu lấy và thay đổi. Khi lớp Action đã hoàn tất quá trình xử lý, nó trả về một khóa cho ActionServlet. Khóa này được sử dụng để xác định View nào sẽ trình bày các kết quả xử lý. Có thể hình dung ActionServlet như một đại lý nhận các yêu cầu cho các dịch vụ, 7
- và dựa trên các yêu cầu này, tạo ra các đối tượng Action nhằm thực hiện logic nghiệp vụ cần thiết để hoàn tất các dịch vụ này. 2.2.3. Cấu trúc Struts Hình 3 Cấu trúc Struts. 2.2.4. Các thành phần chính của ứng dụng Struts Controller Ø Action servlet: Tiếp nhận HTTP Request từ phía client Ø Request Processor: Xử lý Request, Xác định loại action, ActionFrom, ActionForward nào được sử dụng bằng cách sử dụng ActionMappings nhìn vào file Struts-config.XML. Ø ActionFrom: Đi kèm với thẻ trong file struts-config.xml, nó quản lý toàn bộ các dữ liệu được submit lên từ phía người dùng và có thể thực hiện validate các dữ liệu đó. 8
- Ø Action: Lấy các giá trị từ actionfrom và kết hợp với lớp Model để giải quyết Request, chứa toàn bộ những xử lý cho các yêu cầu của người dung. Model Ø Model Class: Nơi thực hiện Request Ø JavaBean: Lưu trữ kết quả của việc xử lý request View Gồm các trang Jsp để hiển thị kết quả cho người sử dụng, nơi để người sử dụng tương tác với hệ thống. 2.2.5. Các file cấu hình cần thiết để xây dựng một ứng dụng Struts Web.xml: o File này chứa toàn bộ các cấu hình của ActionServlet, các sự ánh xạ của các yêu cầu từ phía người dùng đến ActionServlet, và tất các Struts Tag Library Definitions (TLDs). Struts-config.xml: o File này chứa tất cả các thông tin cấu hình cho một ứng dựng xây dựng dựa trên Struts. ApplicationResources.properties: o File này trung tâm chứa các nội dung tĩnh được sử dụng trong toàn bộ ứng dụng Struts. Nó cho phép các nhà phát triển dễ dàng thay đổi nội dung các text và các nội dung dùng chung sử dụng trong ứng dụng. 9
- Chương 3 Phân tích và thiết kế ứng dụng 3.1. Vấn đề tồn đọng trong cửa hàng bán sách hiện tại. Ø Khách hàng muốn mua sách, tìm sách phải đến nhà sách à tốn thời gian. Ø Khách hàng gặp khó khăn trong việc tìm kiếm những quyển sách cần mua. Ø Việc tìm một quyển sách còn hay không thì phải tìm trong kho và trong kệ à thiếu chính xác và mất thời gian. Không thể tìm sách theo các yêu cầu khác nhau như tên sách, tên tác giả, nhà xuất bản. Ø Việc cập nhật khách hàng, sách, hóa đơn phải thực bằng tay gặp khó khăn và thiếu chính xác. Ø Việc thống kê theo số lượng đầu sách, loại sách, tác giả, dựa vào sổ ghi chép và hóa đơn khó khăn và mất thời gian. Ø Việc thống kê doanh thu của nhà sách gặp nhiều khó khăn thiếu chính xác. Ø Việc thồng kê những khách hàng thường xuyên của nhà sách khó có thể thực hiện dựa trên sổ ghi chép. Ø Khó kiểm tra số lượng sách mất do phải dựa vào số lượng sách bán được và số lượng sách trong kho thực hiện bằng tay gặp nhiều khó khăn 3.2. Phân tích và giải quyết vấn đề đó bằng chương trình. 3.2.1. Danh sách các yêu cầu. Ø Đăng nhập hệ thống Ø Tra cứu sách. Ø Tra cứu khách hàng. Ø Cập nhật nhân viên. Ø Cập nhật loại sách. Ø Cập nhật sách. Ø Cập nhật khách hàng. 10
- Ø Cập nhật hóa đơn. Ø Thống kê doanh thu theo sách. Ø Thống kê sách bán theo ngày. 3.2.2. Phân tích sơ đồ Usecase 3.2.2.1. Sơ đồ use-case Admin sau khi dang nhap thi duoc toan quyen tren he thong Tra cuu sach Khach hang Nhan vien ban Cap nhat khach hang sach Cap nhat nhan vien > > Admin Cac user sau khi Cap nhat hoa don > dang nhap moi > duoc su dung cac Dang nhap chuc nang cua he > thông Tra cuu khach hang Cap nhat nha xuat ban > > Thong ke sach ban theo ngay Cap nhat sach Cap nhat nha cung cap Thong ke doanh thu theo sach Nhan vien Nhan vien quan thong ke ly kho Cap nhat loai sach Hình 4 Sơ đồ use-case 11
- 3.2.2.2. Đặc tả use-case v Đăng nhập hệ thống Ø Tóm tắt : Usecase này mô tả chức năng đăng nhập vào hệ thống của : nhân viên(bán sách, thống kê, quản lý kho,admin). Ø Actor : Nhân viên bán sách,nhân viên thống kê,nhân viên quản lý kho,admin. Ø Usecase diagram: Nhan vien Nhan vien Thong ke quan ly kho Dang nhap he thong Nhan vien ban admin sach Ø Điều kiện tiên quyết: Không có. Ø Các dòng sự kiện : Dòng sự kiện chính : · Use case bắt đầu khi một nhân viên muốn sử dụng các chức năng của hệ thống. · Hệ thống yêu cầu nhân viên nhập Usename và password. · Nhân viên nhập usename và password. · Nhân viên chọn chức năng đăng nhập. · Chương trình kiểm tra usename và password và xác nhận xem user thuộc nhóm người nào và mở màn hinh chức năng cho user đó. 12
- Dòng sự kiện phụ: · Nếu user nhập sai usename và password thì chương trình xuất thông báo và yêu cầu nhập lại. Ø Yêu cầu đặc biệt Không có. Ø Điều kiện sau khi hoàn thành Trang web dành cho nhân viên đăng nhập vào hệ thống được mở ra. Ø Điểm mở rộng Không có. v Tra cứu sách. Ø Tóm tắt : Usecase mô tả chức năng hệ thống hổ trợ cho người sử dụng muốn tìm kiếm một quyển sách mà họ cần. Ø Actor : Nhân viên bán sách, Khách hang. Ø Usecase diagram : Nhan vien ban Tra cuu sach Khach hang sach Ø Điều kiện tiên quyết : không có. Ø Các dòng sự kiện : Dòng sự kiện chính · Người sử dụng chọn trang tra cứu. · Hệ thống trả về trang tra cứu sách cho người sử dụng. · Người dùng chọn tiêu thức tra cứu và nhập thông tin cần tra cứu. · Người sử dụng chọn chức năng tra cứu. 13
- · Hệ thống xử lý thông tin tra cứu và trả kết quả tra cứu về cho người sử dụng. Dòng sự kiện phụ · Không có dữ liệu nào thỏa mãn thông tin tra cứu hệ thống thông báo cho người sử dụng không có cuốn sách nào thỏa mãn. Ø Yêu cầu đặc biệt : Không có Ø Điều kiện sau khi hoàn thành : Hệ thống hiển thị kết quả tra cứu. Ø Điểm mở rộng : Không có. v Tra cứu khách hàng. Ø Tóm tắt : Usecase mô tả chức năng tìm kiếm khách hàng. Ø Actor : Nhân viên bán sách. Ø Usecase diagram : Nhan vien ban Tra cuu khach hang sach Ø Điều kiện tiên quyết : Nhân viên bán sách phải đăng nhập vào hệ thống. Ø Các dòng sự kiện : Dòng sự kiện chính · Nhân viên mở trang tra cứu · Hệ thống trả về trang tra cứu khách hàng. · Nhân viên chọn tiêu thức tra cứu và nhập các thông tin tra cứu. · Nhân viên chọn chức năng tra cứu khách hàng. 14
- · Hệ thống xử lý thông tin tra cứu và hiển thị kết quả tra cứu cho nhân viên. Dòng sự kiện phụ · Không có dữ liệu nào thỏa mãn thông tin tra cứu hệ thống thông báo cho người sử dụng không khách hàng nào thỏa mãn điều kiện tra cứu. Ø Yêu cầu đặc biệt : Không có. Ø Điều kiện sau khi hoàn thành : Hệ thống hiển thị kết quả tra cứu. Ø Điểm mở rộng : Không có. v Cập nhật nhân viên. Ø Tóm tắt : Usecase mô tả chức năng hệ thống hổ trợ admin khi thêm, sửa, xóa một nhân viên. Ø Actor : Admin Ø Use case diagram Admin Cap nhat nhan vien Ø Điều kiện tiên quyết : Admin phải đăng nhập vào hệ thống. Ø Các dòng sự kiện : Dòng sự kiện chính · Admin chọn trang cập nhật nhân viên. · Hệ thống hiển thị trang cập nhật nhân viên và danh sách các nhân viên. 15
- · Admin chọn trang thêm nhân viên. · Trang thêm nhân viên xuất hiện. · Admin nhập các thông tin nhân viên. · Admin chọn chức năng thêm nhân viên. · Hệ thống lưu khách hàng xuống cơ sở dữ liệu · Hệ thống xuất thông báo thêm thành công hay không Dòng sự kiện phụ o Sửa khách hàng: · Admin chọn trang sửa nhân viên. · Hệ thống hiển thị thông tin nhân viên. · Admin chọn sửa các trường thông tin. · Admin chọn chức năng lưu. · Hệ thống lưu xuống cơ sở dữ liệu. · Hệ thống xuất thông báo thành công hay không. o Xóa khách hàng. · Admin chọn trang xoá nhân viên. · Hệ thống hiển thị màn hình xóa nhân viên. · Admin chọn nhân viên muốn xóa. · Admin chọn chức năng xóa nhân viên. · Hệ thống xuất ra thông báo hỏi có muốn xóa hay không. · Admin nhấn đồng ý. · Hệ thống xóa nhân viên trong cơ sở dữ liệu. · Xuất ra thông báo xóa thành công hay không. o Nếu Admin không nhập những trường thông tin bắt buộc nhập hệ thống xuất thông báo lỗi. Ø Yêu cầu đặc biệt : Không có. Ø Điều kiện sau khi hoàn thành : 16
- Thêm, sửa, xóa thành công một nhân viên. Ø Điểm mở rộng: Không có. v Cập nhật loại sách Ø Tóm tắt : Usecase mô tả chức năng hệ thống hổ trợ nhân viên quản lý kho khi thêm, sửa, xóa loại sách. Ø Actor : Nhân viên quản lý kho. Ø Usecase diagram : Nhan vien quan Cap nhat loai sach ly kho Ø Điều kiện tiên quyết : Nhân viên quản lý kho phải đăng nhập vào hệ thống. Ø Các dòng sự kiện Dòng sự kiện chính · Nhân viên chọn trang cập nhật loại sách. · Hệ thống hiển thị trang cập nhật loại sách và danh sách các loại sách. · Nhân viên chọn chức năng thêm loại sách. · Trang thêm loại sách xuất hiện. · Nhân viên nhập các thông tin loại sách(Mssach,tenloaisasch) · Nhân viên chọn chức năng lưu. · Hệ thống lưu loại sách xuống cơ sở dữ liệu. · Hệ thống xuất thông báo thêm thành công hay không. Dòng sự kiện phụ o Sửa loại sách 17
- · Hệ thống hiển thị trang thông tin loại sách. · Nhân viên chọn sửa các trường thông tin. · Nhân viên chọn chức năng lưu. · Hệ thống lưu xuống cơ sở dữ liệu. · Hệ thống xuất thông báo thành công hay không. o Xóa loại sách. · Nhân viên chọn chức năng xóa loại sách. · Hệ thống hiển thị màn hình xóa loại sách. · Nhân viên chọn loại sách muốn xóa. · Nhân viên chọn chức năng xóa. · Hệ thống xuất ra thông báo hỏi có muốn xóa hay không. · Nhân viên nhấn đồng ý. · Hệ thống xóa loại sách trong cơ sở dữ liệu. · Xuất ra thông báo xóa thành công hay không. o Nếu nhân viên không nhập những trường thông tin bắt buộc nhập hệ thống xuất thông báo lỗi. Ø Yêu cầu đặc biệt : Không có. Ø Điều kiện sau khi hoàn thành : Thêm, sửa, xóa thành công một loại sách Ø Điểm mở rộng: Không có. v Cập nhật sách. Ø Tóm tắt : Usecase mô tả chức năng hệ thống hổ trợ nhân viên quản lý kho khi thêm, sửa, xóa một cuốn sách. Ø Actor : Nhân viên quản lý kho. Ø Use case diagram : 18
- Nhan vien quan Cap nhat sach ly kho Ø Điều kiện tiên quyết : Nhân viên quản lý kho phải đăng nhập vào hệ thống. Ø Các dòng sự kiện Dòng sự kiện chính. · Nhân viên chọn trang cập nhật sách. · Hệ thống hiển thị trang cập nhật sách và danh sách các cuốn sách. · Nhân viên chọn chức năng thêm sách. · Trang thêm sách xuất hiện. · Nhân viên nhập các thông tin loại sách(mssach,tensasch, .) · Nhân viên chọn chức năng lưu. · Hệ thống lưu sách xuống cơ sở dữ liệu. · Hệ thống xuất thông báo thêm thành công hay không. Dòng sự kiện phụ o Sửa sách · Hệ thống hiển thị trang thông tin sách. · Nhân viên chọn sửa các trường thông tin. · Nhân viên chọn chức năng lưu. · Hệ thống lưu xuống cơ sở dữ liệu. · Hệ thống xuất thông báo thành công hay không. o Xóa loại sách. · Nhân viên chọn chức năng xóa sách. · Hệ thống hiển thị trang xóa sách. · Nhân viên chọn cuốn sách muốn xóa. · Nhân viên chọn chức năng xóa. 19
- · Hệ thống xuất ra thông báo hỏi có muốn xóa hay không. · Nhân viên nhấn đồng ý. · Hệ thống xóa sách trong cơ sở dữ liệu. · Xuất ra thông báo xóa thành công hay không. o Nếu nhân viên không nhập những trường thông tin bắt buộc nhập hệ thống xuất thông báo lỗi. Ø Yêu cầu đặc biệt : không có Ø Điều kiện sau khi hoàn thành : Thêm, sửa, xóa thành công một loại sách. Ø Điểm mở rộng: không có. v Cập nhật khách hàng. Ø Tóm tắt : Usecase mô tả chức năng hệ thống hổ trợ nhân viên bán sách khi thêm, sửa, xóa một khách hàng. Ø Actor : Nhân viên bán sách. Ø Usecase diagram : Nhan vien ban Cap nhat khach hang sach Ø Điều kiện tiên quyết : Nhân viên bán sách phải đăng nhập vào hệ thống. Ø Các dòng sự kiện Dòng sự kiện chính · Nhân viên chọn trang cập nhật khách hàng. · Hệ thống hiển thị trang cập nhật khách hàng và danh sách các khách hàng. · Nhân viên chọn chức năng thêm khách hàng. 20
- · Trang thêm khách hàng xuất hiện. · Nhân viên nhập các thông tin loại sách. · Nhân viên chọn chức năng lưu. · Hệ thống lưu khách hàng xuống cơ sở dữ liệu. · Hệ thống xuất thông báo thêm thành công hay không Dòng sự kiện phụ o Sửa khách hàng: · Nhân viên chọn trang sửa khách hàng. · Hệ thống hiển thị thông tin khách hàng. · Nhân viên chọn sửa các trường thông tin. · Nhân viên chọn chức năng lưu. · Hệ thống lưu xuống cơ sở dữ liệu. · Hệ thống xuất thông báo thành công hay không. o Xóa khách hàng. · Nhân viên chọn trang xóa khách hàng. · Hệ thống hiển thị màn hình xóa khách hàng. · Nhân viên chọn khách hàng muốn xóa. · Nhân viên chọn chức năng xóa. · Hệ thống xuất ra thông báo hỏi có muốn xóa hay không. · Nhân viên nhấn đồng ý. · Hệ thống xóa khách hàng trong cơ sở dữ liệu. · Xuất ra thông báo xóa thành công hay không. o Nếu nhân viên không nhập những trường thông tin bắt buộc nhập hệ thống xuất thông báo lỗi. Ø Yêu cầu đặc biệt : Không có. Ø Điều kiện sau khi hoàn thành : Thêm, sửa, xóa thành công một khách hàng. 21
- Ø Điểm mở rộng: Không có. v Cập nhật hóa đơn. Ø Tóm tắt : Usecase mô tả chức năng hệ thống hổ trợ nhân viên bán sách khi thêm, sửa, xóa một cuốn sách. Ø Actor : Nhân viên bán sách. Ø Usecase diagrame : Nhan vien ban Cap nhat hoa don sach Ø Điều kiện tiên quyết : Nhân viên bán sách phải đăng nhập vào hệ thống. Ø Các dòng sự kiện: Dòng sự kiện chính · Nhân viên chọn trang cập nhật hóa đơn. · Hệ thống hiển thị trang cập nhật hóa đơn và danh sách các hóa đơn. · Nhân viên chọn chức năng thêm hóa đơn. · Trang thêm sách xuất hiện. · Nhân viên nhập các thông tin hóa đơn (mssach,tensasch, .) · Nhân viên chọn chức năng lưu. · Hệ thống lưu hóa đơn xuống cơ sở dữ liệu. · Hệ thống xuất thông báo thêm thành công hay không Dòng sự kiện phụ o Sửa hóa đơn: · Nhân viên chọn trang sửa hóa đơn. 22
- · Hệ thống hiển thị thông tin hóa đơn. · Nhân viên chọn sửa các trường thông tin. · Nhân viên chọn chức năng lưu. · Hệ thống lưu xuống cơ sở dữ liệu. · Hệ thống xuất thông báo thành công hay không. o Xóa hóa đơn. · Nhân viên chọn chức năng xóa hóa đơn. · Hệ thống hiển thị màn hình xóa hóa đơn. · Nhân viên chọn hóa đơn muốn xóa. · Nhân viên chọn chức năng xóa. · Hệ thống xuất ra thông báo hỏi có muốn xóa hay không. · Nhân viên nhấn đồng ý. · Hệ thống xóa khách hàng trong cơ sở dữ liệu. · Xuất ra thông báo xóa thành công hay không. o Nếu nhân viên không nhập những trường thông tin bắt buộc nhập hệ thống xuất thông báo lỗi. Ø Yêu cầu đặc biệt: không có. Ø Điều kiện sau khi hoàn thành : Thêm, sửa, xóa thành công một loại sách. Ø Điểm mở rộng: Không có. v Thống kê doanh thu theo sách. Ø Tóm tắt : Usecase này mô tả Nhân viên Thống Kê thực hiện việc thống kê doanh thu của nhà sách. Ø Actor : Nhân viên thống kê. Ø Usecase diagram : 23
- Thong ke doanh thu Nhan vien Thong ke Ø Điều kiện tiên quyết : Nhân viên phải đăng nhập thành công với tư cách nhân viên thống kê. Ø Các dòng sự kiện : Dòng sự kiện chính · Hệ thống yêu cầu actor chọn trang thống kê doanh thu theo khoảng thời gian. · Nhân viên nhập vào khoảng thời gian cụ thể cần thống kê. · Nhân viên chọn chức năng thống kê. · Hệ thống xử lý chức năng mà thực hiện thống kê theo khoảng thời gian. Dòng sự kiện phụ · Nếu actor chưa chọn thời gian thì yêu cầu actor chọn lại, ngược lại thì tính tổng giá trị các hóa đơn trên. Ø Yêu cầu đặc biệt : không có. Ø Điều kiện sau khi hoàn thành : Hiển thị kết quả thống kê cho người sử dụng xem. Ø Điểm mở rộng: không có. v Thống kê sách bán theo ngày. Ø Tóm tắt : Usecase này mô tả Nhân viên Thống Kê thực hiện việc thống kê sách bán trong ngày. Ø Actor : Nhân viên thống kê. 24
- Ø Usecase diagram : Nhan vien thu Thong ke sach ban kho Ø Điều kiện tiên quyết : Nhân viên phải đăng nhập thành công với tư cách nhân viên thống kê. Ø Các dòng sự kiện : Dòng sự kiện chính · Hệ thống yêu cầu actor chọn trang thống kê sách bán theo ngày. · Nhân viên nhập ngày cụ thể cần thống kê. · Nhân viên chọn chức năng thống kê. · Hệ thống xử lý chức năng mà thực hiện thống kê theo ngày. Dòng sự kiện phụ · Nếu actor chưa chọn ngày thì yêu cầu actor chọn lại, ngược lại thì tính tổng số lượng sách bán. Ø Yêu cầu đặc biệt : không có. Ø Điều kiện sau khi hoàn thành : Hiển thị kết quả thống kê cho người sử dụng xem. Ø Điểm mở rộng: không có. 25
- 3.3. Thiết kế cơ sở dữ liệu. 3.3.1. Sơ đồ thực thể kết hợp mức quan niệm PHANQUYEN MSPQ Characters (10) MSPQ 0,n QUYEN_NHANVIEN PhieuNhapSach MSPN Characters (10) MSPN 0,n Thuoc ve Thuocve 0,n TACGIA NHANVIEN NHACUNGCAP MSTG Characters (10) MSNV Characters (10) MSNCC Characters (10) MSTG MSNV MSNCC 0,n ChiTietPhieuNhap Ban 0,n SACH HOADON ChiTietHoaDon Sach_TacGia 0,n MSSACH Characters (10) MSHD Characters (10) 0,n MSSACH MSHD 0,n 0,n SACH_NXB Mua Thuoc ve 0,n LOAISACH KHACHHANG NHAXUATBAN MSLS Characters (10) MSKH Characters (10) MSNXB Characters (10) MSLS MSKH MSNXB Hình 5 Sơ đồ thực thể kết hợp mức quan niệm 3.3.2. Sơ đồ thực thể kết hợp mức vật lý 26
- NHACUNGCAP PHANQUYEN MSNCC char(10) TENNCC varchar(50) MSPQ char(10) DIACHI varchar(50) TENQUYEN varchar(40) DIENTHOAI char(12) MOTA varchar(50) EMAIL varchar(50) MSPQ=MSPQ HOADONMUASACH MSPN char(10) MSNCC char(10) QUYEN_NHANVIEN MSNV char(10) MSNCC=MSNCC MSNV char(10) NGAYNHAP smalldatetime MSPQ char(10) SL_SACH integer GIA double TACGIA VAT int TONGGIA double MSTG char(10) TENTG varchar(50) MSNV=MSNV MSNV=MSNV DIACHI varchar(50) DIENTHOAI char(12) EMAIL varchar(50) NHANVIEN MSPN=MSPN MSNV char(10) TENNV varchar(40) MSTG=MSTG PHAI char(3) NGAYSINH smalldatetime DIACHI varchar(50) CHITIETHOADONMUA DIENTHOAI char(12) MSPN char(10) Sach_TacGia PASSWORD varchar(20) MSSACH char(10) MSSACH char(10) SL_SACH integer MSTG char(10) GIA double VAT int MSNV=MSNV TONGGIA double MSSACH=MSSACH MSSACH=MSSACH ChiTietHoaDon HOADONBANSACH SACH MSSACH char(10) MSHD char(10) MSSACH char(10) MSHD char(10) MSKH char(10) MSLS char(10) SOLUONG integer MSNV char(10) TENSACH varchar(50) GIA double SOLUONG integer SOLUONG integer GIAMGIA int NGAYLAP smalldatetime DONGIA double TONGGIA double GIA double NAMXB smalldatetime GIAMGIA int MOTA varchar(50) MSSACH=MSSACH TONGGIA double MSHD=MSHD MSSACH=MSSACH MSKH=MSKH SACH_NXB MSNXB char(10) MSLS=MSLS KHACHHANG MSSACH char(10) MSKH char(10) TENKH varchar(40) MSNXB=MSNXB NGAYSINH smalldatetime GIOITINH char(3) NHAXUATBAN LOAISACH DIENTHOAI char(12) MSNXB char(10) MSLS char(10) EMAIL varchar(50) TENNXB varchar(50) TENLOAISACH varchar(50) DIACHI varchar(50) DIENTHOAI char(12) MOTA varchar(50) DIACHI varchar(50) EMAIL varchar(50) Hình 6 Sơ đồ thực thể kết hợp mức vật lý 27
- 3.3.3. Mô tả chi tiết các bảng Ø LOAISACH Giá trị Thuộc tính Kiểu Khích Ràng Diễn giải ngầm Dữ liệu thước buộc định Mã số loai Khóa MSLS char 10 Not null sách chính(pk) TENLOAI Tên loại sách Varchar 50 Not null ` SACH Dùng để lưu MOTA trữ thông tin Varchar 50 của loại sách Ø NHAXUATBAN Giá trị Thuộc tính Kiểu Khích Ràng Diễn giải ngầm Dữ liệu thước buộc định Mã số loai Khóa MSNXB char 10 Not null sách chính(pk) Tên nhà xuất TENNXB Varchar 50 Not null ` bản DIACHI Địa chỉ Varchar 50 DIEN Điện thoại Char 12 THOAI EMAIL email Varchar 50 28
- Ø TACGIA Giá trị Thuộc tính Kiểu Khích Ràng Diễn giải ngầm Dữ liệu thước buộc định Mã số loai Khóa MSTG char 10 Not null sách chính(pk) Tên nhà xuất TENTG Varchar 50 Not null ` bản DIACHI Địa chỉ Varchar 50 EMAIL email Varchar 50 DIEN Điện thoại Char 12 THOAI 29
- Ø CHITIETHOADON Giá trị Thuộc tính Kiểu Khích Ràng Diễn giải ngầm Dữ liệu thước buộc định Khóa chính, Mã số hóa MSHD char 10 Not null khóa đơn ngoại (pk+FK) Khóa chính, MSSACH Mã số sách char 10 Not null khóa ngoại (pk +FK) SO Số lượng Integer LUONG TONG Tổng giá Double GIA 30
- Ø SACH Giá trị Thuộc tính Kiểu Khích Ràng Diễn giải ngầm Dữ liệu thước buộc định Khóa MSSACH Mã số sách char 10 Not null chính(pk) Khóa Mã số nhà MSNXB char 10 Not null ngoại(FK xuất bản ) Khóa Mã số loại ngoai(FK MSLS char 10 Not null sách ) TEN Tên sách Varchar 50 SACH SO Số lượng Integer LUONG DONGIA Đơn giá Double SO Số trang Integer TRANG Năm xuất NAMXB Date bản Dùng lưu trữ MOTA thông tin Varchar 50 sách 31
- Ø SACH_TACGIA Giá trị Thuộc tính Kiểu Khích Ràng Diễn giải ngầm Dữ liệu thước buộc định Khóa chính, MSSACH Mã số sách char 10 Not null khóa ngoại (pk+FK) Khóa chính, MSTG Mã số tác giả char 10 Not null khóa ngoại (pk+FK) 32
- Ø HOADON Giá trị Thuộc tính Kiểu Khích Ràng Diễn giải ngầm Dữ liệu thước buộc định Mã số hóa Khóa MSHD char 10 Not null đơn chính(pk) Khóa Mã số khách MSKH char 10 Not null ngoại(FK hàng ) Khóa Mã số nhân ngoai(FK MSNV char 10 Not null viên ) NGAY Ngày lập Date LAP TONG Tổng giá Double GIA SO Số lượng Integer LUONG 33
- Ø CHITIETPHIEUNHAP Giá trị Thuộc tính Kiểu Khích Ràng Diễn giải ngầm Dữ liệu thước buộc định Khóa MSSACH Mã số sách char 10 Not null chính(pk) Khóa Mã số phiếu MSPN char 10 Not null ngoại(FK nhập ) SO Số lượng LUONG Integer sách SACH DONGIA Đơn giá Double 34
- Ø KHACHHANG Giá trị Thuộc tính Kiểu Khích Ràng Diễn giải ngầm Dữ liệu thước buộc định Mã số khách Khóa MSKH char 10 Not null hàng chính(pk) Tên khách TENKH Varchar 50 Not null hàng GIOI Giới tính Varchar 3 TINH NAM Năm sinh Date SINH VarCha DIACHI Địa chỉ 50 r DIEN Điện thoại Char 12 THOAI EMAIL Email Varchar 50 35
- Ø PHIEUNHAPSACH Giá trị Thuộc tính Kiểu Khích Ràng Diễn giải ngầm Dữ liệu thước buộc định Mã số phiếu Khóa MSPN char 10 Not null nhập chính(pk) Khóa Mã số nhà MSNCC char 10 Not null ngoại(FK cung cấp ) Khóa Mã số nhân ngoai(FK MSNV char 10 Not null viên ) NGAY Ngày lập Date LAP SO Số lượng Integer LUONG TONG Tổng giá Double GIA 36
- Ø PHANQUYEN Giá trị Thuộc tính Kiểu Khích Ràng Diễn giải ngầm Dữ liệu thước buộc định Mã số phân Khóa MSPQ char 10 Not null quyền chính(pk) Ø NHACUNGCAP Giá trị Thuộc tính Kiểu Khích Ràng Diễn giải ngầm Dữ liệu thước buộc định Mã số nhà Khóa MSNCC char 10 Not null cung cấp chính(pk) Tên nhà TENNCC Varchar 10 Not null cung cấp DIACHI Địa chỉ Varchar 50 DIEN Điện thoại Char 12 THOAI EMAIL Email Varchar 50 37
- Ø NHANVIEN Giá trị Thuộc tính Kiểu Khích Ràng Diễn giải ngầm Dữ liệu thước buộc định Mã số nhân Khóa MSNV char 10 Not null viên chính(pk) Tên nhân TENNV Varchar 50 Not null viên GIOI Giới tính char 3 TINH NAM Năm sinh Date SINH DIACHI Địa chỉ Varchar 50 DIEN Điện thoại char 12 THOAI 38
- Ø QUYEN_NHANVIEN Giá trị Thuộc tính Kiểu Khích Ràng Diễn giải ngầm Dữ liệu thước buộc định Khóa chính, Mã số nhân MSNV char 10 Not null khóa viên ngoại (pk+FK) Khóa chính, Mã số phân MSPQ char 10 Not null khóa quyền ngoại (pk+FK) Ø SACH_NXB Giá trị Thuộc tính Kiểu Khích Ràng Diễn giải ngầm Dữ liệu thước buộc định Mã số nhà Khóa MSNXB Char 10 Not null xuất bản chính(pk) Khóa MSSACH Mã số sách Char 10 Not null chính(pk) 39
- 3.4. Áp dụng Struts Framework triển khai hệ thống. 3.4.1. Kiến trúc chung hệ thống. Hình 7 Kiến trúc chung hệ thống Triển khai code :Khi tiến hành code ta chia chương trình ra làm 3 project: BookDataAccess, BookBusiness, BookStoreWeb. Ø Project BookDataAccess ta có các pagekage : Model, Dao, Ultil . o Model : Các đối tượng package Model; public class LoaiSach { String Msls = ""; String Tenloaisach = ""; String Mota = ""; public LoaiSach() { } public String getMsls() { return Msls; } public String getTenloaisach() { return Tenloaisach; } public String getMota() { return Mota; } public void setMsls(String Msls) { this.Msls = Msls; } 40
- public void setTenloaisach(String Tenloaisach) { this.Tenloaisach = Tenloaisach; } public void setMota(String Mota) { this.Mota = Mota; } } o Dao : public class LoaisachDao extends DBManager { public LoaisachDao() throws SQLException { super(); } public LoaiSach GetLoaisachBymsls(String Msls) throws Exception { LoaiSach loaisach = null; Connection con = this.getConnection(); try { loaisach = GetLoaisachBymsls(con, Msls); } catch (SQLException e) { throw new Exception(this.getClass().getName() + ":getName():Exception" + e.toString()); } finally { this.cleanUp(); } return loaisach; } / * get information of Loaisach by ID- Primary key * @param con Connection * @param Msls String * @return Loaisach * @throws Exception */ public LoaiSach GetLoaisachBymsls(Connection con, String msls) throws 41
- Exception { LoaiSach Loaisach = null; try { String query = Resource._res("Getloaisach"); this.connection = con; this.preparedStatement = this.connection.prepareStatement(query); this.preparedStatement.setString(1, msls); this.resultSet = this.preparedStatement.executeQuery(); if (this.resultSet.next()) { Loaisach = new LoaiSach(); Loaisach.setMsls(resultSet.getString(1)); Loaisach.setTenloaisach(resultSet.getString(2)); Loaisach.setMota(resultSet.getString(3)); } return Loaisach; } catch (SQLException e) { throw new Exception(this.getClass().getName() + ":getName():Exception" + e.toString()); } // return Loaisach; } o Ultil : Sử dụng hồ kết nối(conection Pool) package Utils; import com.rp.database.*; public class DBManager extends DatabaseManager { public final static String key = "Test"; public final static String propertyFile = "Demo"; protected ConnectionManager manager = null; public DBManager() throws java.sql.SQLException{ super(); init(); } public PooledConnection getConnection() throws java.sql.SQLException { if (this.manager == null) { this.init(); } return this.manager.getConnection(); } 42
- protected void init() throws java.sql.SQLException { this.manager = BrokerHandle.getConnectionManagerBroker().getConnectionManager(k ey, propertyFile); } } Ø Project BookBusiness gồm các pagekage : implement, Service. o Service : gồm nhiều lớp interface va một class ServiceFactory(tổng hợp nhiều lớp interface).Như vậy project BookBusiness muốn nói chuyện với lớp BookStoreWeb thì phải thông qua class ServiceFactory. interface public interface LoaisachService { public abstract int create(LoaiSach LoaiSachModel) throws Exception; public abstract int remove(String msls) throws Exception; public abstract int update(LoaiSach LoaiSachModel) throws Exception; public abstract LoaiSach find(String Msls) throws Exception; public abstract boolean check(LoaiSach LoaiSachModel)throws Exception public abstract ArrayList findAll() throws Exception; } ServiceFactory public class ServiceFactory { / * return interface from an instance of implement class * @return TacgiaService * @throws Exception */ public static TacgiaService getTacgiaService() throws Exception { return (TacgiaService)new TacgiaServiceImpl(); } public static SachSevice getSachService() throws Exception { return (SachSevice)new SachServiceImpl(); } 43
- public static Sach_TGService getSach_TGService() throws Exception { return (Sach_TGService)new Sach_TGServiceImpl(); } public static Sach_NXBService getSach_NXBService() throws Exception { return (Sach_NXBService)new Sach_NXBServiceImpl(); } public static NhaXBService getNhaXBService() throws Exception { return (NhaXBService)new NhaXBServiceImpl(); } public static NhanvienService getNhanvienService() throws Exception { return (NhanvienService)new NhanvienServiceImpl(); } o Implement : Thực thi lớp interface, như vậy project BookBusiness muốn nói chuyện với project BookDataAccess thì thong qua lớp Implement. Implement public class LoaisachServiceImpl implements LoaisachService { public int create(LoaiSach LoaisachModel) throws Exception { LoaisachDao LoaisachDao = new LoaisachDao(); int i = LoaisachDao.insert(LoaisachModel); return i; } public int remove(String msls) throws Exception { LoaisachDao LoaisachDao = new LoaisachDao(); int i = LoaisachDao.delete(msls); return i; } public int update(LoaiSach LoaisachModel) throws Exception { LoaisachDao LoaisachDao = new LoaisachDao(); int i = LoaisachDao.update(LoaisachModel); return i; 44
- } public LoaiSach find(String Msls) throws Exception { LoaisachDao _tacgiaDao = new LoaisachDao(); LoaiSach _Tacgia = _tacgiaDao.GetLoaisachBymsls(Msls); return _Tacgia; } public ArrayList findAll() throws Exception { LoaisachDao _tacgiaDao = new LoaisachDao(); ArrayList arrayList = _tacgiaDao.getAllLoaisach(); return arrayList; } } Ø Project BookStoreWeb gồm các pagekage :Controller, actionFrom và Webmodule(đóng thành gói .War) WEB. o Controller : Tầng điều kiển bao gồm các class đươc kế thừa từ class Action. public class themloaisach extends Action { public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException, Exception { ThemloaisachFrom themfrom = (ThemloaisachFrom) form; LoaisachService ibs = ServiceFactory.getloaisachService(); LoaiSach _LoaiSach = getLoaiSachModel(themfrom); try { int i = ibs.create(_LoaiSach); System.out.print("ket qua"+i); } catch(Exception e) { return (mapping.findForward("loi")); } return (mapping.findForward("thanhcong")); 45
- } / * get Book model from ThemloaisachFrom * @param bookForm * @return Book */ private LoaiSach getLoaiSachModel(ThemloaisachFrom LoaisachForm) { LoaiSach _loaisach = new LoaiSach(); _loaisach.setMsls(LoaisachForm.getMsls()); _loaisach.setTenloaisach(LoaisachForm.getTenloaisach()); _loaisach.setMota(LoaisachForm.getMota()); return _loaisach } } Như vậy project BookStoreWeb nói chuyên với project BookBusiness thì phải thông qua lớp controller. o actionFrom : Bao gồm các class được kế thừa từ class ActionForm dùng để lấy dữ liệu từ trang jsp. public class ThemloaisachFrom extends ActionForm { private String mota; private String msls; private String tenloaisach; public String getMota() { return mota; } public void setMota(String mota) { this.mota = mota; } public String getMsls() { return msls; } public void setMsls(String msls) { this.msls = msls; } public String getTenloaisach() { return tenloaisach; } public void setTenloaisach(String tenloaisach) { this.tenloaisach = tenloaisach; } 46
- public ActionErrors validate(ActionMapping actionMapping, HttpServletRequest httpServletRequest) { / @todo: finish this method, this is just the skeleton.*/ return null; } public void reset(ActionMapping actionMapping, HttpServletRequest httpServletRequest) { mota = null; msls = null; tenloaisach = null; } } o WEB : Chứa các trang Jsp và các File cấu hình(web.xml, struts- config.xml ). 3.4.2. Sequence Diagram Hình 8 Sequence Diagram 47
- Chương 4 Thử nghiệm, cài đặt 4.1. Thử nghiệm: Test chương trình : Đầu tiên test từ lớp BookDataAccess, thứ hai test lớp BookBusiness, thứ 3 là test BookStoreWeb, cuối cùng test trên jboss. 4.2. Cài đặt: Đóng chương trình thành gói (.war), sử dụng web server jboss để chạy. 4.3. Hướng dẫn chạy Jboss · Click phải My computer / advanced Hình 9 Hướng dẫn chạy Jboss 48
- Hình 10 Hướng dẫn chạy Jboss Hình 11 Hướng dẫn chạy Jboss Vào jboss chạy file run.bat Chạy Internet Explorer 49
- Chương 5 Tổng kết 5.1. Các hạn chế của website · Chưa có cơ chế bảo mật cao. · Chưa thực hiện validate dữ liệu đầy đủ. · Hiển thị chưa đúng nếu dùng font tiếng việt. · Chưa có hình ảnh hiển thị. 5.2. Những điều đã học Ø Những điều đã học được: · Lập trình JSP · Hiểu được cách thức hoạt động Struts. · Sử dụng các cấu hình cho website · Hiểu được cách họat động và phát triển của mô hình MVC Ø Những điều chưa học được: · Chưa áp dụng các cơ chế bảo mật triệt để. · Chưa tiếp cận nhiều mô hình ứng dụng mới 5.3. Hướng phát triển o Hổ trợ đăng ký và bán hàng qua mạng. o Hổ trợ hình ảnh. Danh mục tài liệu tham khảo [1] [2] 50
- Mục lục Chương 1 Tổng quan ___ 1 1.1. Xu hướng chung : ___ 1 1.2. Lý do và mục tiêu chọn đề tài : ___ 1 1.3. Tóm tắt khóa luận ___ 1 Chương 2 Khái quát về mô hình MVC và FRAMEWORK STRUTS ___ 2 2.1. Mô hình MVC___ 2 2.1.1. Khái niệm MVC___2 2.1.2. Mô hình MVC ___3 2.1.3. Lợi ích của mô hình MVC ___4 2.1.4. Hạn chế của mô hình MVC___4 2.2. STRUTS FRAMEWORK ___ 5 2.2.1. Khái niệm framework struts ___5 2.2.2. Struts thực thi mô hình MVC___5 2.2.3. Cấu trúc Struts ___8 2.2.4. Các thành phần chính của ứng dụng Struts ___8 2.2.5. Các file cấu hình cần thiết để xây dựng một ứng dụng Struts ___9 Chương 3 Phân tích và thiết kế ứng dụng ___ 10 3.1. Vấn đề tồn đọng trong cửa hàng bán sách hiện tại. ___ 10 3.2. Phân tích và giải quyết vấn đề đó bằng chương trình. ___ 10 3.2.1. Danh sách các yêu cầu.___10 3.2.2. Phân tích sơ đồ Usecase ___11 3.3. Thiết kế cơ sở dữ liệu. ___ 26 3.3.1. Sơ đồ thực thể kết hợp mức quan niệm ___26 3.3.2. Sơ đồ thực thể kết hợp mức vật lý ___26 3.3.3. Mô tả chi tiết các bảng ___28 3.4. Áp dụng Struts Framework triển khai hệ thống. ___ 40 Chương 4 Thử nghiệm, cài đặt ___ 48 4.1. Thử nghiệm: ___ 48 4.2. Cài đặt: ___ 48 4.3. Hướng dẫn chạy Jboss___ 48 51