LỜI CẢM ƠN
Chúng em luôn luôn ghi nhớ công ơn các thầy cô trường Đại Học
Dân Lập Kỹ Thuật Công Nghệ, những người đã dẫn dắt chúng em từ khi
mới bước chân vào giảng đường Đại Học những kiến thức, năng lực và đạo
đức chuẩn bò hành trang bước vào một cuộc sống tự lập khi ra trường sau
bốn năm học. Và chúng em xin chân thành cảm ơn các thầy cô giáo Khoa
Công Nghệ Thông tin đã giảng dạy và tạo mọi điều kiện cho chúng em
trong suốt thời gian học tập tại Trường.
Đặc biệt Chúng em xin chân thành cảm ơn thầy Nguyễn Việt Cường
– giáo viên hướng dẫn luận văn tốt nghiệp, người đã cho chúng em một nền
tãng lý thuyết và đã tận tình, hết lòng hướng dẫn chúng em trong suốt quá
trình nghiên cứu để hoàn thành luận văn tốt nghiệp này.
Chúng con xin cảm ơn cha mẹ, người đã sinh thành và dưỡng dục chúng
con, hỗ trợ mọi điều kiện về vật chất lẫn tinh thần cho chúng con trên con
đường học vấn.
Chúng tôi xin cảm ơn các anh chò cùng các bạn đã có những nhận xét,
phê bình, đóng góp và động viên chúng tôi trong suốt qúa trình thực hiện
luận văn.
Mặc dù đã cố gắng hoàn thành luận văn với tất cả sự nổ lực của bản
thân, nhưng luận văn chắc chắn sẽ không tránh khỏi những thiếu sót nhất
đònh, kính mong sự cảm thông và sự chỉ bảo tận tình của qúy thầy cô và các
bạn.
Thành Phố Hồ Chí Minh, tháng 05 năm
2003
Sinh viên
Nguyễn Bá Thuận
Nguyễn Thò Hồng
Trang 1
MỤC LỤC
I. Xây Dựng UseCase_Diagram trang 29
1. Nhận Diện Các Actor Và Các Trường Hợp Sử Dụng . trang 29
2. Xây Dựng UseCase_Diagram trang 30
II. Xây Dựng Lược Đồ Tuần Tự trang 32
II. Xây Dựng Lược Đồ Lớp Và Lược Đồ Hoạt Động trang 48
1. Nhận Diện Các Đối Tượng/Lớp trang 48
2. Xây Dựng ClassDiagram trang 49
3. Lược Đồ Hoạt Động trang 49
Trang 2
4. Lược đồ thực thể quan hệ trang 51
IV. Danh Sách Các Bảng Trong SQL Server trang 52
Phần III:XÂY DỰNG WEBSITE MUA BÁN SÁCH TIN HỌC QUA
MẠNG
Chương 5: Hoạt Động Của Chương Trình trang 58
I. Sơ Đồ Cấu Trúc Của Chương Trình trang 58
II. Hoạt Động Của Chương Trình trang 59
1. Về Phía Khách Hàng, Người Sử Dụng trang 59
2. Về Phía Người Quản Trò trang 66
3. Chức Năng Đối Với Nhân Viên Và Quản Trò trang 71
Chương 6: Bảo Mật Trên Hệ Thống trang 75
Chương 7: Kết Luận trang 80
Phụ Lục I: GIỚI THIỆU VỀ CÔNG NGHỆ J2EE trang 81
I. Giới Thiệu trang 81
II. Mô Hình Lập Trình Mạng Đa Tầng trang 81
III. Những Ứng Dụng Đa Tầng Phân Tán trang 83
IV. Kiến Trúc J2EE trang 87
V. Sự Đóng Gói trang 88
Phụ Lục II: YÊU CẦU HỆ THỐNG trang 91
TÀI LIỆU THAM KHẢO
Luận Văn Tốt Nghiệp GVHD: Nguyễn Việt Cường
việc mua sắm rất cần thiết đối với mọi người dân. Nhưng do đời sống kinh
tế phát triễn, họ phải bận bòu tấp nập với công việc hàng ngày nên không có
nhiều thời gian để đi mua sắm, vì thế chúng em muốn viết một trang web
nhằm đáp ứng nhu cầu thực tế tại Việt Nam, để mọi người có thể mua sắm
ở bất cứ đâu khi họ cần mà không phải tốn nhiều thời gian.
Đồng thời qua khảo sát tình hình thực tế tại các nhà sách hiện nay chúng
em nhận thấy rằng việc quản lý còn gặp một số khó khăn hạn chế như:
Luận Văn Tốt Nghiệp GVHD: Nguyễn Việt Cường
SVTH: Nguyễn Bá Thuận – Nguyễn Thò Hồng
Trang 4
Khó khăn trong việc thêm các loại sách mới, xóa, sửa thông tin về
sách và thông tin kòp thời đến khách hàng.
Việc thay đổi giá cả hàng hóa còn gặp nhiều khó khăn trong việc cập
nhật hàng ngày.
Việc quản lý công nợ của khách hàng cũng như của nhà cung cấp
cũng gặp nhiều khó khăn.
Mất thời gian trong việc thống kê các thông tin.
Không quản lý được khách hàng quen thuộc.
Chưa thể thanh toán trực tuyến qua card…
Trên cơ sỡ những kiến thức thu nhận được trong qúa trình học tập tại
trường, được sự chỉ dẫn tận tình của thầy Nguyễn Việt Cường, sau khi khảo
sát tình hình thực tế tại các nhà sách và nhu cầu của người sử dụng, chúng
em đã quyết đònh chọn và thực hiện đề tài
Thiết Kế Website Mua Bán Sách Qua Mạng Với Setvlet/JSP Và
J2EE
Mục tiêu của đề tài này là nhằm phục vụ cho tất cả các khách hàng có
nhu cầu mua sắm sách qua mạng và phục vụ công tác quản lý hoạt động
kinh doanh của nhà sách, cụ thể là:
Khách Hàng:
- Làm thế nào để khách hàng có thể tìm kiếm nhanh chóng các loại
Luận Văn Tốt Nghiệp GVHD: Nguyễn Việt Cường
SVTH: Nguyễn Bá Thuận – Nguyễn Thò Hồng
Trang 6
CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG
Sau khi nghiên cứu và khảo sát tình hình hoạt động thực tế tại một số
nhà sách, chúng em đã đi đến kết luận là cần phải có một chương trình hỗ
trợ những nghiệp vụ sau:
1/ Yêu Cầu Chức Năng Đối Với Khách Hàng:
Tìm Kiếm :
Nhằm giúp cho khách hàng có thể tìm kiếm các sách mình cần một cách
nhanh chóng mà không cần phải mất nhiều thời gian.
Khách hàng chỉ cần nhập vào đầy đủ những thông tin cần thiết về sách
cần tìm kiếm như: Tên sách, thể loại, ngôn ngữ, tác giả,
Khi đã nhập vào đúng yêu cầu, Chương trình sẽ đưa ra kết quả :
Danh sách những quyển sách đáp ứng nhu cầu của khách
hàng.
Thông tin chính xác về sách cần tìm : Tên sách, nhà xuất bản,
tác giả
Bảng thông báo sách này không tồn tại hoặc không có bán tại
nhà sách (nếu sách đó không có).
Giá cả của từng quyển sách.
Tóm tắt nội dung từng quyển sách.
Khách hàng có thể chọn quyển sách nào phù hợp với nhu cầu
của mình.
Đặt Hàng :
Sau khi chọn những mặt hàng cần mua và bỏ vào giỏ hàng của mình,
nếu như khách hàng đồng ý mua những quyển sách mình đã chọn thì họ sẽ
phải đăng nhập vào hệ thống với username và password đã cấp cho họ.
Đối với Sách :
Mã Sách
Tên Sách
Thể Loại
Ngôn Ngữ
Nhà Xuất Bản
Tác Giả
Năm Xuất Bản
Đơn Giá
Hình nh
Tóm Tắt Nội Dung
Số Trang
Tồn Kho Hiện Tại
Luận Văn Tốt Nghiệp GVHD: Nguyễn Việt Cường
SVTH: Nguyễn Bá Thuận – Nguyễn Thò Hồng
Trang 8
Ngày Cập Nhật
Đối Với Khách Hàng
Mã Khách Hàng
Họ Tên Khách Hàng
Username
Password
Đòa Chỉ
Điện Thoại
Email
Công Nợ
…
Đối Với Đơn Đặt Hàng
Mã Đơn Đặt Hàng
Mã Khách Hàng
Tra cứu theo Ngôn Ngữ
c) Xử Lý
Tính giá trò Đơn Đặt Hàng
Tính số lượng Hàng đã bán ra (theo Đơn Đặt Hàng)
d) Thống Kê, Báo Biểu
Thống kê Đơn Đặt Hàng
Thống kê Khách Hàng
Thống kê Sách
Thống kê Nhà Cung Cấp
Thống kê Phiếu Nhập
Thống kê Phiếu Chi
Thống kê Phiếu Xuất
Thống kê Phiếu Giao
Thống kê Phiếu Thu
2.1. Bán Hàng:
Bán hàng thường theo cách là khách hàng đến Công Ty xem mẫu các
mặt hàng, hoặc do nhân viên của Công Ty đến chào hàng (quãng cáo). Khi
đã đồng ý một mặt hàng nào đó, khách hàng có thể mua hàng. Và nếu số
lượng nhiều, nhà sách sẽ mang hàng đến tận nơi cho khách hàng.
Luận Văn Tốt Nghiệp GVHD: Nguyễn Việt Cường
SVTH: Nguyễn Bá Thuận – Nguyễn Thò Hồng
Trang 10
Với phương thức bán hàng như vậy sẽ mất thời gian cho khách hàng và
cho nhà sách rất nhiều, vì thế việc đưa ra một trang web để phục vụ cho
khách hàng thật cần thiết.
2.2 . Liên lạc với khách hàng:
Do Phòng Nghiệp Vụ đảm trách để thông báo những mặt hàng mới cho
khách hàng, những mặt hàng mà khách hàng quan tâm, những mặt hàng mà
khách hàng có nhu cầu (thông qua phiếu thăm dò ý kiến khách hàng).
cuốn sách bán chậm hoặc ngưng nhập các sách không bán được, nhập về
nhưng cuốn sách đang bán chạy trên thò trường … Luận Văn Tốt Nghiệp GVHD: Nguyễn Việt Cường
SVTH: Nguyễn Bá Thuận – Nguyễn Thò Hồng
Trang 12
CHƯƠNG 2: ĐẶC TẢ TÍNH NĂNG VÀ YÊU CẦU
I. ĐẶC TẢ TÍNH NĂNG:
Dựa vào yêu cầu của bài toán, ta nhận thấy hệ thống nhà sách được
xây dựng nhằm phục vụ những khách hàng có nhu cầu mua sách tin học trực
tuyến qua mạng. Hệ thống phục vụ chủ yếu cho những nhóm người sau :
Chức năng đối với đơn đặt hàng:
+ Xem đơn đặt hàng
+ Xóa đơn đặt hàng
Chức năng đối với phiếu xuất:
+ Xem các phiếu xuất
+ Lập phiếu xuất mới
+ Xóa phiếu xuất
+ Sửa thông tin về phiếu xuất
Chức năng đối với phiếu giao:
+ Xem thông tin về phiếu giao
+ Tạo phiếu giao mới
+ Xóa phiếu giao
+ Sửa thông tin về phiếu giao
Chức năng đối với phiếu thu:
+ Xem thông tin về phiếu thu
+ Lập phiếu thu mới
+ Xóa phiếu thu
+ Sửa thông tin về các phiếu thu
Chức năng đối với phiếu nhập:
+ Xem thông tin về phiếu nhập
+ Lập phiếu nhập mới
+ Xóa phiếu nhập
+ Sửa thông tin về các phiếu nhập
Chức năng đối với nhà cung cấp:
Luận Văn Tốt Nghiệp GVHD: Nguyễn Việt Cường
SVTH: Nguyễn Bá Thuận – Nguyễn Thò Hồng
Trang 14
+ Xem các thông tin về nhà cung cấp.
+ Thêm nhà cung cấp mới.
+ Xóa nhà cung cấp.
Chức năng đối với phiếu nhập:
+ Xem thông tin về phiếu nhập
+ Lập phiếu nhập mới
+ Xóa phiếu nhập
+ Sửa thông tin về các phiếu nhập
Chức năng đối với phiếu chi:
+ Xem thông tin về phiếu chi
+ Lập phiếu chi mới
+ Xóa phiếu chi
+ Sửa thông tin về các phiếu chi
4. NHÀ CUNG CẤP :
- Nhà cung cấp có chức năng cung cấp sách cho nhà sách thông qua
phiếu nhập.
5. NHÀ BANK:
- Ngân hàng (bank) có chức năng kiểm tra xem các thông tin về card
của khách hàng sau khi tạo đơn đặt hàng có đúng không. Sau khi khách
hàng tạo đơn đặt hàng thì các thông tin về card như: MãSốCard,
MãLoạiCard,… sẽ được gởi đến ngân hàng để xác nhận. Nếu như các thông
tin trên không hợp lệ thì ngân hàng sẽ gởi thông báo đến cho khách hàng
biết. Sau 3 lần, nếu như khách hàng gõ sai thông tin thì phiên giao dòch sẽ bò
hủy. Còn nếu mọi thông tin đều hợp lệ thì ngân hàng sẽ xác nhận và nhà
sách sẽ hẹn ngày giao hàng cho khách hàng.
Các thông tin về sách, thể loại, ngôn ngữ, nhà xuất bản, tác giả, đều
được lưu trong cơ sở dữ liệu của hệ thống. Hệ thống này xây dựng dưới dạng
Web để cho người sử dụng có thể tương tác được bất kì một máy nào được
nối mạng với máy chủ của nhà sách.
Luận Văn Tốt Nghiệp GVHD: Nguyễn Việt Cường
SVTH: Nguyễn Bá Thuận – Nguyễn Thò Hồng
Trang 16
Hỗ trợ tiếng Việt (Unicode).
Dễ dàng cài đặt.
Dễ dàng sử dụng.
Dễ dàng nâng cấp và mở rộng.
Luận Văn Tốt Nghiệp GVHD: Nguyễn Việt Cường
SVTH: Nguyễn Bá Thuận – Nguyễn Thò Hồng
Trang 17
CHƯƠNG 3: GIẢI PHÁP LỰA CHỌN
I. KHẢO SÁT MÔ HÌNH
Ngày nay, những ứng dụng không còn đơn thuần chạy trên một máy đơn
lẻ mà thay bằng những ứng dụng đòi hỏi sự tương tác từ nhiều phía người
dùng, chia sẽ tài nguyên, triệu gọi từ xa, phân tán dữ liệu. . . Với những đòi
hỏi trên, mô hình mạng client/server đã ra đời và tồn tại đến ngày nay.
Mô hình mạng client/server là mô hình mà tất cả các thao tác xử lý phức
tạp đều được chuyển giao cho máy server xử lý. Máy client chỉ đóng vai trò
gửi yêu cầu và hiển thò dữ liệu. Điển hình mô hình này là các ứng dụng cơ
sở dữ liệu. Máy client là trình ứng dụng có khả năng kết nối và truy vấn dữ
liệu từ một máy server ở xa.
Thật vậy, mô hình client/server đã giúp phát triển một phương thức ứng
dụng mới đó là việc phân tầng, chia ứng dụng thành nhiều lớp thực hiện
những chức năng chuyên biệt. Việc phân chia ứng dụng thành nhiều lớp còn
giúp cho ứng dụng trở nên dễ dàng thay đổi, nâng cấp và đáng tin cậy. Do
đó mô hình này rất thích hợp với những ứng dụng có yêu cầu thay đổi
thường xuyên như là ứng dụng Web.
Với yêu cầu của bài toán, ta sẽ xây dựng ứng dụng theo mô hình phân
tầng (cho phép ứng dụng chạy trên nhiều máy server khác nhau).Mô hình
ba tầng được thể hiện cụ thể qua hình sau:
tầng middle nếu cần.
Việc phân chia ứng dụng thành nhiều lớp còn giúp cho ứng dụng trở nên
dễ dàng thay đổi, cập nhật và đáng tin cậy hơn.
II. LỰA CHỌN CÔNG NGHỆ
Trong thời đại công nghệ thông tin bùng nổ một cách nhanh chóng như
hiện nay, việc chọn một ngôn ngữ lập trình thích hợp là một vấn đề không
đơn giản. Dựa vào các yêu cầu đặt ra của bài toán, chúng ta cần xác đònh
công nghệ để xây dựng ứng dụng sao cho phù hợp với yêu cầu thực tế của
hệ thống.
Yêu cầu đặt ra của bài toán là triển khai ứng dụng trên môi trường Web.
Ngày nay, những công nghệ thường được sử dụng trong việc lập trình ứng
dụng Web gồm có:
CGI: Perl/PHP3.
ASP/COM.
Visual C++
Java
. . .
Mỗi ngôn ngữ có một cấu trúc văn phạm riêng.
Qua quá trình khảo sát các công nghệ trên và đồng thời đưa những công
nghệ đó vào bài toán cụ thể, chúng ta có thể lựa chọn được công nghệ thích
hợp cho việc giải quyết bài toán.
Vì ứng dụng hoạt động trên mô hình mạng client/server (cụ thể là mô
hình ba tầng) và có những yêu cầu như: hỗ trợ nhiều người dùng, số lượng
Luận Văn Tốt Nghiệp GVHD: Nguyễn Việt Cường
SVTH: Nguyễn Bá Thuận – Nguyễn Thò Hồng
Trang 19
truy xuất không giới hạn, dễ dàng nâng cấp, mở rộng… và đặc biệt hỗ trợ
nhiều hệ điều hành cho client và server (như WinNT, Win2000, Linux, ).
Phân tán: Java được viết để hỗ trợ các ứng dụng phân tán bằng các
lớp mạng. Một ứng dụng Java có thể dể dàng được truy xuất từ một máy chủ
ở xa, nó có thể mỡ hoặc truy cập đến các đối tượng thông qua mạng một
cách dễ dàng như việc truy cập ngay trên máy tính đơn.
Luận Văn Tốt Nghiệp GVHD: Nguyễn Việt Cường
SVTH: Nguyễn Bá Thuận – Nguyễn Thò Hồng
Trang 20
Bảo mật: Vấn đề bảo mật là một trong những đặc trưng cơ bản của
Java. Java được viết cho các ứng dụng chạy trên mạng, phân tán, do đó Java
đã được thiết kế sao cho có thể tạo được một hệ thống không virus, không bò
phá rối. Kỹ thuật xác minh của Java là mã hóa theo khóa công cộng. Một
thông dòch bytecode sẽ kiểm tra chặt chẽ các mã byte, không cho bất kỳ
những hành vi bất hợp pháp nào được thực hiện.
Java được thiết kế cho mục đích đa nền, nên mã chương trình java sau
khi biên dòch sẽ ra một dạng file nhò phân khác với các file thực thi nhò phân
của Windows như .exe, .com. Java biên dòch ra file nhò phân (bytecode) và
được triệu gọi thực thi trong máy ảo Java. File nhò phân này được mang tên
mỡ rộng là .class. Máy ảo java là một trình thông dòch có khả năng thực thi
các mã bytecode tương tự như bộ xử lý của máy tính thực thi các mã nhò
phân là các chỉ thò mã máy. Máy ảo Java có kích thước rất nhỏ, có thể cài
đặt trên các máy con mà không tốn nhiều tài nguyên.
III. KHẢO SÁT CHI TIẾT VỀ CÔNG NGHỆ
Đáp ứng yêu cầu của bài toán thực hiện nhiều luồng xử lý cùng một
lúc (mỗi yêu cầu của khách hàng là một luồng riêng).
Nhờ những phát minh của loài người về internet, mô hình
client/server – đáng chú ý nhất là Java. Java không chỉ là một ngôn ngữ
máy tính mà còn là giải pháp client/server hoàn chỉnh, nơi mà các chương
trình được tải về máy khách và được thực thi. Trước đây, mọi sự phát triễn
của Java đều tập trung vào applets và các thành phần giao diện đồ hoạ
người sử dụng (GUI). Các applets là một thành phần quan trọng trong mô
trình khách dựa trên nghi thức HTTP.
Phần lớn servlets là một sự thay thế tuyệt vời cho các kòch bản
CGI (Common Gateway Interface). Các kòch bản CGI thông thường được
viết bằng ngôn ngữ Perl hoặc C và thường gắn chặt với một môi trường
(platform) chủ cụ thể. Vì servlet được viết bằng ngôn ngữ Java, nên các
servlet này cũng độc lập với môi trường hệ điều hành.
- Servlets rất an toàn. Cách duy nhất để gọi một servlet từ bên ngoài
là thông qua trình chủ Web. Điều này mang lại một mức bảo mật cao, đặc
biệt là nếu như trình chủ Web được bảo vệ đằng sau fire wall.
- Bằng trình duyệt, máy khách gọi ứng dụng servlet trên máy chủ.
Tương tự như ứng dụng CGI, ứng dụng servlet chạy trên máy chủ và gởi kết
quả ngược về trình duyệt ở máy khách. Cũng như mọi ứng dụng Java, ứng
dụng servlet có thể nhận đối mục (parameter, argument) vào lúc chạy. Trình
Web
Browser
Web
Server
Servlet
Http Request
Http Response
Hình 3.2
Luận Văn Tốt Nghiệp GVHD: Nguyễn Việt Cường
SVTH: Nguyễn Bá Thuận – Nguyễn Thò Hồng
Trang 22
duyệt trao đối mục cho ứng dụng servlet theo cách thức giống trường hợp
CGI : ghi dấu chấm hỏi (?) sau đòa chỉ của ứng dụng servlet và tiếp sau đó là
từng cặp tên-trò (name-value) được phân cách bằng dấu và (&). Do vậy việc
dùng ứng dụng servlet chỉ liên quan đến trình chủ Web, không có yêu cầu
đặc biệt gì ở trình khách.
Browser
Trình
diễn dòch
JSP
Trang JSP
HTTP
Service
Servlet
tạm
Yêu cầu
Kết xuất
Hình 3.3
Luận Văn Tốt Nghiệp GVHD: Nguyễn Việt Cường
SVTH: Nguyễn Bá Thuận – Nguyễn Thò Hồng
Trang 23
JSP cung cấp các thẻ lệnh giúp tạo trang web .Cũng tương tự như thẻ
HTML , thẻ lệnh JSP bao gồm thẻ mở và thẻ đóng . Thực sự các thẻ JSP
được xây dựng theo đặc tả và chuẩn XML ( Extension Markup Language )
nên có hơi khác với thẻ HTML vì chuẩn XML không xem chữ hoa và chữ
thường giống nhau . Mỗi thẻ có các thuộc tính quy đònh cách dùng thẻ .
a- Thẻ <jsp:scriptlet> hay <% %>
Thẻ này cho phép đặt các đoạn mã lệnh Java ở giữa cặp thẻ tương tự
một chương trình java thông thường .
b- Thẻ khai báo và thực hiện biểu thức <%! , <%=
Thẻ này dùng để khai báo một biến dùng cho toàn trang jsp .Biến khai
báo phải đúng theo cú pháp của ngôn ngữ Java . Thẻ <%= được dùng để
hiển thò một biểu thức .
c- Thẻ nhúng mã nguồn <%@ include file %>
đối tượng này để đònh dạng kết xuất gửi về máy khách .Ví dụ:<%
out.println(“Hello!”)%>
Đối tượng request :xuất phát từ lớp HttpServletRequest.Đối tượng
này giúp lấy về các tham số hay dữ liệu do trình khách chuyển lên. Ví dụ:
<%String a= request.getParameter(“param1”)%>
Đối tượng response : tương tự đối tượng out, đối tượng response
dùng để đưa kết xuất trả về trình khách. Tuy nhiên, đối tượng out được dùng
thường xuyên hơn. out hỗ trợ thêm luồng đệm để tăng tốc kết xuất
Đối tượng session : xuất phát từ lớp HttpSesssion. Sử dụng đối
tượng session để theo dõi kết nối và lưu vết một phiên làm việc giữa trình
khách và trình chủ.
- Truy xuất cơ sở dữ liệu trong trang JSP :
Có thể dễ dàng dùng trình JDBC để truy xuất cơ sở dữ liệu của hệ
quản trò cơ sở dữ liệu SQL Server. Vú dụ: để khai báo cơ sỡ dữ liệu Book
thông qua SQL Server.
<%
String Driver ="sun.jdbc.odbc.JdbcOdbcDriver";
String Conn ="jdbc:odbc:Book";
String username="sa";
String password="";
try
{
Class.forName(Driver);
} catch (ClassNotFoundException e)