Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 51 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
51
Dung lượng
515,73 KB
Nội dung
1 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. 2 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. 3 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. 4 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ể. 5 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. 6 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 7 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: <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"> <html:form action="loginAction.do" name="loginForm" type="com.stock.loginForm" > User Id: <html:text property="username"><br/> Password: <html:password property="password"><br/> <html:submit /> </html:form> 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ụ, 8 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ẻ <action> 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 đó. 9 Ø 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. 10 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. [...]... 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... 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ó Ø... định Ràng buộc 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 Thuộc tính MSHD MSKH Kiểu Dữ liệu Mã số hóa đơn Mã số khách hàng thước char Diễn giải Khích 10 Giá trị ngầm định Not null Ràng buộc Khóa chính(pk) Khóa char 10 Not null ngoại(FK ) Khóa MSNV NGAY LAP TONG GIA SO LUONG Mã số nhân viên char Ngày... 50 EMAIL email Varchar 50 Điện thoại Char 12 DIEN THOAI Giá trị Kiểu 29 ngầm định Ràng buộc Khóa chính(pk) ` Ø CHITIETHOADON Thuộc tính Kiểu Dữ liệu Diễn giải Khích thước Giá trị ngầm định Ràng buộc Khóa MSHD chính, Mã số hóa char đơn 10 Not null khóa ngoại (pk+FK) Khóa chính, MSSACH Mã số sách char 10 Not null khóa ngoại (pk +FK) SO LUONG TONG GIA Số lượng Integer Tổng giá Double 30 Ø SACH Thuộc tính... 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 sach Tra cuu sach Khach hang Ø Đ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... 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... Ràng buộc Khóa chính(pk) Khóa Mã số nhà char xuất bản 10 Not null ngoại(FK ) Khóa MSLS TEN SACH SO LUONG DONGIA SO TRANG NAMXB Mã số loại char 10 Tên sách Varchar 50 Số lượng Integer Đơn giá Double Số trang Integer sách Năm xuất Date bản Dùng lưu trữ MOTA thông tin Varchar sách 31 50 Not null ngoai(FK ) Ø SACH_TACGIA Thuộc tính Kiểu Dữ liệu Diễn giải Khích thước Giá trị ngầm định Ràng buộc Khóa chính,... 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... 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... 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 ly kho Cap nhat sach Ø Đ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 . 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. 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. 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. 10 Chương