Xây dựng website bán CD DVD trên nền strutsframework
Trang 1Đại Học Quốc Gia Thành Phố Hồ Chí Minh Trường Đại Học Công Nghệ Thông Tin Khoa Công Nghệ Phần Mềm
…
Báo Cáo Đồ Án Cuối Kỳ
Đề Tài: Xây Dựng Website Bán CD DVD Trên Nền Struts
FrameWork
Tp Hồ Chí Minh, ngày 6 tháng 1 năm 2015
Giáo viên hướng dẫn : PGS TS Vũ Thanh Nguyên
Trang 2MỤC LỤC
CHƯƠNG 1: TỔNG QUAN VỀ STRUTS FRAMWORK 4
1.1 Giới thiệu 4
1.2 Mẫu thiết kế MVC 4
1.3 Struts thực thi MVC 5
1.4 Thành phần 7
1.4.1 Thành phần Model 7
1.4.2 Thành phần View 7
1.4.3 Thành phần Controller 8
1.5 Ứng dụng Web 8
1.6 Cấu trúc thư mục 9
1.7 Bộ mô tả triển khai ứng dụng Web 10
1.8 Tomcat JSP/Servlet container 11
1.9 Cài đặt và cấu hình Tomcat 11
CHƯƠNG 2: GIỚI THIỆU SẢN PHẨM 13
2.1 Mở đầu 13
2.2 Chức năng 13
CHƯƠNG 3: MÔ TẢ CÁC USECASE 14
3.1 Use case admin 14
3 1.1 Quản lý admin 15
3.1.2 Quản lý tài khoản 16
3.1.3 Quản lý nhà sản xuất 17
3.1.4 Quản lý sản phẩm 18
3.2 Use case thành viên 20
3.2.1 Quản lý danh sách sản phẩm yêu thích 20
3.2.2 Quản lý tiêu đề 21
3.2.3 Quản lý bài viết 22
Trang 3CHƯƠNG 4: SƠ ĐỒ LUỒNG DỮ LIỆU 24
4.1 Sơ đồ ngữ cảnh 24
4.2 Qui trình xử lý cơ sở dữ liệu 24
4.2.1 Qui trình xử lý cơ sở dữ liệu của admin 24
4.2.2 Qui trình xử lý cơ sở dữ liệu của thành viên 27
CHƯƠNG 5: MÔ HÌNH QUAN HỆ CƠ SỞ DỮ LIỆU 31
CHƯƠNG 6: MỘT SỐ GIAO DIỆN CHÍNH 32
6.1 Trang chủ 32
6.2 Chi tiết sản phẩm 33
6.3 Các chỉ số của sản phẩm 33
6.4 Danh sách sản phẩm ưa thích 34
6.5 Đăng nhập 34
6.6 Admin 35
6.7 Thay đổi thông tin tài khoản 35
6.8 Nhà cung cấp 36
6.9 Giỏ hàng 36
TÀI LIỆU THAM KHẢO 37
Trang 4CHƯƠNG 1: TỔNG QUAN VỀ STRUTS FRAMWORK
1.1 Giới thiệu
Struts, một dự án mã nguồn mở của Apache Software Foundation, là một bản hiện thực Jave phía server của mẫu thiết kế Model-View-Controller(MVC) Dự án Struts đượckhởi xướng bởi Craig McClanahan vào tháng 5/2000, thuộc dự án Apache Jakarta Hiện tại, dự án Struts đã trở thành một dự án độc lập – dự án Apache Struts
Dự án Struts được thiết kế với mục đích cung cấp một bộ khung mã nguồn mở để tạo các ứng dụng Web, tách tầng trình bày (presentation layer) ra khỏi tầng giao tác
(transaction layer) và tầng dữ liệu (data layer) Từ khi ra đời, dự án Struts nhận được nhiều sự ủng hộ từ các nhà phát triển và nhanh chóng chiếm ưu thế trong cộng đồng mã nguồn mở
1.2 Mẫu thiết kế MVC
Để nắm vững Struts Framework, bạn phải hiểu cơ bản về mẫu thiết kế MVC Mẫu thiết
kế MVC được bắt nguồn từ Smalltalk, bao gồm 3 thành phần: Model, View và
Controller
Model Biểu diễn các đối tượng dữ liệu.Thành phần Model là những gì
đang được thao tác và trình bày cho người dùngView Đóng vai trò là phần biểu diễn trên màn hình (screen
representation) của thành phần Model Thành phần View là đối tượng trình bày trạng thái hiện tại của các đối tượng dữ liệuController Định nghĩa cách giao thức giao diện người dùng tương tác lại dữ
liệu đầu vào Thành phần Controller là đối tượng thao tác thành phần Model( hay đối tượng dữ liệu)
Bảng 1.1 Ba thành phần của mẫu thiết kế MVCDưới đây là một số lợi ích khi sử dụng mẫu thiết kế MVC:
Trang 5- 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
- Tính thích ứng và tính 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ả truy cập đế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)
- 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
- 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
- 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
Trang 6Hình 1.1 Bản hiện thực Struts của mẫu MVCHình 1.1 mô tả quy trình xử lý mà hầu hết các yêu cầu ứng dụng Struts cần tuân theo.Quytrình này chó thể được chia thành 5 bước cơ bản:
1 Một yêu cầu xuất phát từ một View đã được hiển thị trước đó
2 Yêu cầu này được tiếp nhận bởi ActionServlet (đóng vai trò là một Controller),
ActionServlet tìm URI được yêu cầu trong một file XML và xác đinh tên lớp Action sẽ thực hiện logic nghiệp vụ cần thiết
3 Lớp Action thực hiện logic của nó trên các thành phần Model của ứng dụng
4 Khi đã hoàn tất quá trinì sử lý, lớp Action trả quyền điều khiển cho ActionServlet, đồng thời cung cấp một khóa (key) biểu thị các kết quả xử lý ActionServlet sử dụng khóa này để xác định các kết quả sẽ được chuyển đến đâu khi trình bày
5 Yêu cầu kết thúc khi ActionServlet chuyển yêu cầu đến View được gắn với khóa trả
về, và View này trình bày các kết quả của Action
Trang 71.4 Thành phần
1.4.1 Thành phần Model
Các thành phần Model của Struts Framewwork, như đã được giới thiệu ở phần trước, 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 JavaBean đơn giản, những Enterprise JavaBean, 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
1.4.2 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ó 2 chức năng chính Thứ nhất, đóng vai trò là tầng 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”>
Trang 8Passwork: <html:passwork property=”passwork”><br/>
lý nhận các yêu cầu cho các dịch vụ, 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 nghiệp vụ này
có thể được đóng gói trong một ứng dụng web:
- Các servlet
Trang 9- Các thư viện thẻ tùy biến JSP
- Các lớp tiện ích và các lớp ứng dụng
- Các tài liệu tĩnh, bao gồm HTML, hình ảnh và JavaScript
- Thông tin mô tả ứng dụng web(siêu thông tin)
1.6 Cấu trúc thư mục
Tất cả các ứng dụng web được đặt trong một cấu trúc thư mục chung, cấu trúc thư mục này là một container chứa các thành phần của một ứng dụng Web Bước đầu tiên trong việc tạo ra một ứng dụng Web là tạo ra cấu trúc cây thư mục này.Bảng 1.2 mô tả một ứng dụng Web mẫu, có tên là stockapp, và liệt kê nội dung mỗi thư mục Mỗi thư mục sẽ được tạo từ <SERVER_ROOT> của Servlet/JSP container
cả các file JSP và HTML đều được lưu trữ tại đây
/stockapp/WEB-INF Đây là thư mục chưa tất cả các tài nguyên
có liên quan đến ứng dụng mà không nằm trong gốc tài liệu của ứng dụng Đây là nơi lưu trữ bộ mô tả triển khai ứng dụng Web Bạn cần để ý rằng thư mục WEB-INF không phải là phần tài liệu công khai Không file nào trong thư mục này có thể được cung cấp trực tiếp cho client
/stockapp/WEB-INF/classes Thư mục này chứa các lớp tiện ích và
servlet /stockapp/WEB-INF/lib Thư mục này chứa các file JAR (java
Archive) mà ứng dụng Web phụ thuộc vào nó
Bảng 1.2 Cấu trúc thư mục của một ứng dụng Web
Trang 10Ứng dụng web cho phép lưu trữ các lớp đã được biên dịch trong thư mục /WEB-INF/classes và /WEB-INF/lib.Khi xử lý, các lớp trong thư mục /classes sẽ được nạp trước, sau
đó đến các file JAR trong thư mục /lib.Nếu có các lớp trung nhau ở cả hai thư mục thì cáclớp trong thư mục /classes sẽ được ưu tiên
1.7 Bộ mô tả triển khai ứng dụng Web
Xương sống của tất cả các ứng dụng Web là bộ mô tả triển khai ứng dụng Web (Web application deployment descriptor)-một file XML có tên là web.xml nằm trong thư mục /
<SERVER_ROOT>/application-name/WEB-INF/.File web.xml mô tả tất cả các thành
phần trong ứng dụng Web Nếu chúng ta sử dụng ứng dụng stockapp thì file web.xml sẽ nằm trong thư mục /<SERVER_ROOT>/stockapp/WEB-INF/.Những thông tin có thể được mô tả trong bộ mô tả triển khai bao gồm:
- Các thông số khởi tạo ServletContext
- Nội dung được bản địa hóa
- Cấu hình phiên làm việc
- Các định nghĩa Servlet/JSP
- Các ánh xạ Servlet/JSP
- Các tham chiếu thư viện thẻ
- Câc ánh xạ kiểu MIME
- Danh sách file chào mừng
- Các trang lỗi
- Thông tin bảo mật
Bộ mô tả triển khai dưới đây định nghĩa một servlet Chúng ta sẽ khảo sát chi tiết hơn về file web.xml trong các phần sau
Trang 11<?xml version=”1.0” encoding=”ISO-8859-1”?>
<!DOCTYPE web-app PUBLIC
“-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN”
1.8 Tomcat JSP/Servlet container
Tomcat JSP/Servlet container là một bộ chứa ứng dụng Web (Web application container)
mã nguồn mở dựa trên Java, được tạo ra để thực thi các ứng dụng servlet và JavaServer page.Trước khi cài đặt và cấu hình Tomcat, bạn phải đảm bảo các khoản sau:
Java SE Development Kit 5 http://java.sun.com/javase/downloads/
index_jdk5.jspApache Tomcat 5.5.8 http://archive apache.org/dist/tomcat/tomcat-5/
1.9 Cài đặt và cấu hình Tomcat
Khi đã tải được Tomcat và JDK, bạn tiến hành cài đặt theo hướng dẫn đi kèm.Mục đích của chúng ta là cài đặt Tomcat là một Server độc lập trên hệ điều hành Windows Vista Chúng ta cài đặt Tomcat trong thư mục C:\Program Files\Apache Software Foundation\Tomcat 5.5 và JDK trong thư mục C:\Program Files\Java\jdk1.5.0
Trang 12Sau khi đã cài đặt Tomcat và JDK xong, bước kế tiếp là thiết lập biến môi trường JAVA_HOME Thật ra bước này không cần thiết bạn có thể bõ qua.
Để thiết lập biến môi trường JAVA_HOME, thực hiện như sau:
1 Mở Control Panel
2 Mở hộp thoại System Properties, sau đó chọn thẻ Advanced
3 Nhấp vào nút Enviroment Variables
4 Nhấp vào nút New trong phần System variables của hộp thoại Enviroment Variables
5 Thêm biến có tên là JAVA_HOME và thiết lập giá trị là đường dẫn của bản cài đặt JDK
Trang 13CHƯƠNG 2: GIỚI THIỆU SẢN PHẨM
2.1 Mở đầu
Ngày nay việc nghe nhạc, xem phim, chơi game trực tuyến là một phần quan trọng trong cuộc sống và là sở thích của rất nhiều người.Nhóm chúng em sẽ xây dựng một trang web dựa trên nền Strut FrameWork phép mà người dùng có thể lấy những thông tinliên quan về những bài hát, bộ phim hay trò chơi mới nhất trên thị trường và có thể đặt mua chúng
Cuối cùng điều chúng tôi muốn ở khách hàng là: hãy đến xem và mua các sản phẩm của chúng tôi
Trang 14CHƯƠNG 3: MÔ TẢ CÁC USECASE
3.1 Use case admin
Trang 153 1.1 Quản lý admin
Tên use case Quản lý admin
Mô tả Use case này cho phép cập nhật, xóa và tìm kiếm một tài khoản
đóng vai trò là admin trong cơ sở dữ liệu
Điều kiện Admin phải đăng nhập vào hệ thống và nhấp vào nút tương ứng
trên web
Bảo đảm tối thiểu Hệ thống đảm bảo rằng tất cả các thông tin của bảng Tài khoản đã
được thêm vào trong cơ sở dữ liệu
Bảo đảm thành công Hệ thống đảm bảo rằng tất cả thông tin đã được thêm vào trong cơ
sở dữ liệu
Dòng sự kiện chính - Cập nhật:
+ Nhập vào tất cả các thông tin muốn cập nhật của tài khoản+ Xử lý kiểm tra các thông tin cần thiết được nhập vào là hợp lệ+ Nếu tất cả thông tin là hợp lệ, bắt đầu xử lý cập nhật thông tin trong cơ sở dữ liệu Ngược lại xử lý sẽ hiển thị thông báo lỗi và yêucầu nhập lại
lý sẽ hiển thị kết quả là null
Trang 163.1.2 Quản lý tài khoản
Tên use case Quản lý tài khoản
Mô tả Use case này cho phép cập nhật, xóa và tìm kiếm một tài khoản
đóng vai trò là thành viên trong cơ sở dữ liệu
Điều kiện Admin phải đăng nhập vào hệ thống và nhấp vào nút tương ứng
trên web
Bảo đảm tối thiểu Hệ thống đảm bảo rằng tất cả các thông tin của bảng Tài khoản đã
được thêm vào trong cơ sở dữ liệu
Bảo đảm thành công Hệ thống đảm bảo rằng tất cả thông tin đã được thêm vào trong cơ
sở dữ liệu
Dòng sự kiện chính - Cập nhật:
+ Nhập vào tất cả các thông tin muốn cập nhật của tài khoản+ Xử lý kiểm tra các thông tin cần thiết được nhập vào là hợp lệ+ Nếu tất cả thông tin là hợp lệ, bắt đầu xử lý cập nhật thông tin trong cơ sở dữ liệu Ngược lại, xử lý sẽ hiển thị thông báo lỗi và yêu cầu nhập lại
lý sẽ hiển thị kết quả là null
Trang 173.1.3 Quản lý nhà sản xuất
Tên use case Quản lý nhà sản xuất
Mô tả Use case này cho phép thêm, cập nhật, xóa và tìm kiếm một nhà
sản xuất trong cơ sở dữ liệu
Điều kiện Admin phải đăng nhập vào hệ thống và nhấp vào nút tương ứng
trên web
Bảo đảm tối thiểu Hệ thống đảm bảo rằng tất cả các thông tin của bảng Nhà Sản Xuất
đã được thêm vào trong cơ sở dữ liệu
Bảo đảm thành công Hệ thống đảm bảo rằng tất cả thông tin đã được thêm vào trong cơ
sở dữ liệu
Dòng sự kiện chính - Thêm vào:
+ Nhập vào tất cả các thông tin muốn thêm vào nhà sản xuất+ Xử lý kiểm tra các thông tin cần thiết được nhập vào là hợp lệ+ Nếu tất cả thông tin là hợp lệ, bắt đầu xử lý thêm vào dữ liệu trong cơ sở dữ liệu Ngược lại, xử lý sẽ hiển thị thông báo lỗi và yêu cầu nhập lại
- Cập nhật:
+ Nhập vào tất cả các thông tin muốn cập nhật của nhà sản xuất+ Xử lý kiểm tra các thông tin cần thiết được nhập vào là hợp lệ+ Nếu tất cả thông tin là hợp lệ, bắt đầu xử lý cập nhật dữ liệu trong
cơ sở dữ liệu Ngược lại, xử lý sẽ hiển thị thông báo lỗi và yêu cầu nhập lại
-Xóa:
+ Chọn nhà sản xuất muốn xóa+ Nếu dữ liệu hợp lệ, bắt đầu xử lý xóa dữ liệu của nhà sản xuất trong cơ sở dữ liệu Ngược lại, xử lý sẽ hiển thị thông báo lỗi
- Tìm kiếm+Nhập thông tin muốn tìm kiếm về nhà sản xuất+ Xử lý kiểm tra các thông tin cần thiết được nhập vào là hợp lệ+ Nếu tất cả thông tin đều hợp lệ, bắt đầu xử lý tìm kiếm dữ liệu
Trang 18của nhà sản xuất trong cơ sở dữ liệu và hiển thị kết quả Ngược lại,
xử lý sẽ hiển thị kết quả là null
3.1.4 Quản lý sản phẩm
Tên use case Quản lý sản phẩm
Mô tả Use case này cho phép thêm, cập nhật, xóa và tìm kiếm một sản
phẩm trong cơ sở dữ liệu
Điều kiện Admin phải đăng nhập vào hệ thống và nhấp vào nút tương ứng
trên web
Bảo đảm tối thiểu Hệ thống đảm bảo rằng tất cả các thông tin của bảng Sản Phẩm đã
được thêm vào trong cơ sở dữ liệu
Bảo đảm thành công Hệ thống đảm bảo rằng tất cả thông tin đã được thêm vào trong cơ
sở dữ liệu
Dòng sự kiện chính - Thêm vào:
+ Nhập vào tất cả các thông tin muốn thêm vào sản phẩm+ Xử lý kiểm tra các thông tin cần thiết được nhập vào là hợp lệ+ Nếu tất cả thông tin là hợp lệ, bắt đầu xử lý thêm vào dữ liệu trong cơ sở dữ liệu Ngược lại, xử lý sẽ hiển thị thông báo lỗi và yêu cầu nhập lại
- Cập nhật:
+ Nhập vào tất cả các thông tin muốn cập nhật của sản phẩm+ Xử lý kiểm tra các thông tin cần thiết được nhập vào là hợp lệ+ Nếu tất cả thông tin là hợp lệ, bắt đầu xử lý cập nhật dữ liệu trong
cơ sở dữ liệu Ngược lại, xử lý sẽ hiển thị thông báo lỗi và yêu cầu nhập lại
-Xóa:
+ Chọn sản phẩm muốn xóa+ Nếu dữ liệu hợp lệ, bắt đầu xử lý xóa dữ liệu của sản phẩm trong
cơ sở dữ liệu Ngược lại, xử lý sẽ hiển thị thông báo lỗi