Máy chủ SQL Server cho phép hàng ngàn người dùng kết nối và làm việc với nhiều cơ sở dữ liệu khác nhau trên cùng một máy chủ tại cùng một thời điểm. Máy chủ SQL Server cung cấp khả năng kết nối, truy cập cho người dùng đến mọi cơ sở dữ liệu trên máy, tùy thuộc vào mức độ bảo mật cho phép của người đang kết nối.
Bảo mật là một trong những điểm mạnh giúp cho SQL Server được sử dụng trong thương mại điện tử. Chúng ta có thể bảo mật bằng một trong hai chế độ sau trong SQL Server:
Bảo mật dựa vào chế độ bảo mật của Windows NT
Bảo mật bằng cả hai chế độ: bảo mật của Windows NT và bảo mật của SQL Server.
23 trang |
Chia sẻ: baoanh98 | Lượt xem: 1105 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Đề tài Xây dựng website mua bán sách tin học qua mạng với servlet/jsp và j2ee, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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ọ.
Nếu là khách hàng mới thì phải đăng ký vào hệ thống bằng cách gõ đầy đủ các thông tin sau:
ü Họ Tên Khách hàng
Username
Password
Địa chỉ
Số điện thoại (nếu có)
. . .
Sau khi khách hàng đăng nhập thành công thì lúc bấy giờ sẽ cho khách hàng lựa chọn hai giải pháp thanh toán:
ü Tiền mặt
Chuyển khoản.
Nếu khách hàng chọn thanh toán bằng tiền mặt thì yêu cầu khách hàng chọn thời gian thanh toán, sau đó mọi thông tin về khách hàng và về những quyển sách đã chọn sẽ được ghi nhận, ngày đặt hàng chính là ngày hiện tại, nhà sách sẽ hẹn thời gian giao hàng cho khách hàng.
Nếu khách hàng chọn thanh toán bằng chuyển khoản thì nhà sách sẽ kết nối đến ngân hàng để kiểm tra tài khoản của khách hàng nhập vào có hợp lệ hay không. Nếu như sau 3 lần khách hàng vẫn nhập sai số tài khoản thì phiên giao dịch sẽ bị hủy và mọi thông tin của khách hàng sẽ không còn hiệu lực. Nếu như mọi thông tin đều hợp lệ thì các thông tin về khách hàng và về những quyễn sách đã chọn mua sẽ được ghi nhận và ngày đặt hàng sẽ chính là ngày hiện tại.
Yêu Cầu Chức Năng Đối Với Nhà Sách:
Lưu Trữ
Nhà sách cần lưu trữ những thông tin như sau:
Ø Đố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 Aûnh
Tóm Tắt Nội Dung
Số Trang
Tồn Kho Hiện Tại
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
Hình Thức Thanh Toán
Ngày Chọn Mua Hàng
Mã Sách
Số Lượng
Đơn Giá
Thành Tiền
Ø Đối Với nhà Cung Cấp
Mã Nhà Cung Cấp
Tên Nhà Cung Cấp
Địa Chỉ
Điện Thoại
Công Nợ Nhà Cung Cấp
Ø Đối Với Phiếu Nhập
Mã Phiếu Nhập
Ngày Nhập Hàng
Mã Nhà Cung Cấp
Mã Nhân Viên Nhập
Mã Kho
Ø . . .
Tra Cứu (tìm kiếm)
Ø Đối với sách
Tra cứu theo Mã Sách
Tra cứu theo Tên Sách
Tra cứu theo Thể Loại
Tra cứu theo Tên Tác Giả
Tra cứu theo Nhà Xuất Bản
Tra cứu theo Ngôn Ngữ
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)
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.
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.
. 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).
Khách hàng có thể đăng ký vào phiếu thăm dò ý kiến khách hàng để khi nhà sách có những mặt hàng mới mà họ quan tâm có thể liên lạc với họ thông qua những thông tin cần lưu trữ của khách hàng :
ü Họ tên Khách hàng
ü Địa chỉ
ü Điện thoại
ü Sách quan tâm
Căân cứ vào những thông tin trên mà nhà sách có những chính sách giá cả phù hợp : giảm giá cho khách hàng thường xuyên mua hàng.
Các Yêu Cầu Phi Chức Năng
Ø Việc Tra Cứu đòi hỏi phải chính xác
Ø Thông tin về khách hàng, thông tin về Sách, cần phải được lưu trữ định kỳ đề phòng những khả năng hỏng hóc có thể xảy ra.
Ø Chương trình phải ngăn chặn những truy cập trái phép của người dùng để bảo đảm tính an toàn.
Ø Chương trình phải có tính năng dễ nâng cấp, bảo trì, sửa chữa khi cần bổ sung, cập nhật những tính năng mới.
Để đáp ứng nhu cầu của khách hàng, nhà sách luôn nghiên cứu, tìm kiếm những thông tin phản hồi của khách hàng cũng như để đầy mạnh việc kinh doanh của nhà sách, nhà sách sẽ nhập thêm những loại sách được nhiều khách hàng quan tâm mua nhất.
Sách được nhập về dựa trên những thông tin như :
ü Nhu cầu của khách hàng.
ü Thị trường.
ü . . . .
Nhà sách còn phải xem xét thị trường xem sách nào bán chạy, sách nào bán chậm, để đưa ra chiến lược kinh doanh như : ngưng nhập về nhữ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
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 :
1.KHÁCH HÀNG :
- Khách hàng là những người vào hệ thống tìm kiếm các sách cần mua và đặt hàng với hệ thống. Khách hàng có thể tìm sách mình cần theo : tên sách (có thể là một kí tự , chữ, câu ), tên thể loại, tên tác giả, tìm theo giá, tìm theo nhà xuất bản, tìm theo ngôn ngữ Sau khi tìm được sách mình cần, khách mua có thể bỏ sách vào giỏ hàng và đặt mua hàng với hệ thống. Hệ thống sẽ nhận đơn đặt hàng của họ và hẹn ngày giao hàng.
2. NGƯỜI QUẢN TRỊ HỆ THỐNG (Admin) :
- Người quản trị hệ thống là người làm chủ ứng dụng. Họ có quyền kiểm soát mọi họat động của hệ thống. Mỗi người quản trị hệ thống sẽ được cấp một username và một password để thực hiện chức năng của mình. Họ phải đăng nhập vào hệ thống bằng username và password của mình.
- Nếu như quá trình đăng nhập thành công thì người quản trị hệ thống có những chức năng sau :
Chức năng đối với khách hàng, nhân viên và người quản trị:
+ Xem thông tin về khách hàng, về nhân viên, về người quản trị.
+ Thêm người quản trị, thêm nhân viên mới.
+ Xóa người quản trị, xóa khách hàng, xóa nhân viên.
+ Thay đổi thông tin của người quản trị, thay đổi thông tin của khách hàng, thay đổi thông tin của nhân viên.
Chức năng đối với sách:
+ Xem thông tin về sách, thể loại, ngôn ngữ, nhà xuất bản, tác giả.
+ Thêm sách mới, thêm thể loại, ngôn ngữ, nhà xuất bản, tác giả.
+ Xóa sách, xóa thể loại, ngôn ngữ, nhà xuất bản, tác giả.
+ Thay đổi các thông tin về sách, về thể loại, về ngôn ngữ, nhà xuất bản, tác giả.
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:
+ 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.
+ Sửa thông tin về nhà cung cấ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
3. NHÂN VIÊN :
- Việc thu tiền sách từ khách hàng, chi trả tiền cho nhà cung cấp, giao sách cho khách hàng, nhập sách từ nhà cung cấp, xuất sách từ kho được thực hiện bởi nhân viên.
- Sau khi đăng nhập thành công với username và password thì có thể có các chức năng sau:
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 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.
II. YÊU CẦU CỦA ĐỀ TÀI
Đề tài liên quan đến một máy chủ và một hay nhiều máy khách .Máy khách gởi yêu cầu đến máy chủ và máy chủ hồi đáp yêu cầu. Máy khách bắt đầu bằng cách thiết lập nối kết với máy chủ . Máy chủ có thể chấp nhận hay từ chối nối kết . Máy chủ phải đang chạy khi máy khách khởi động .Máy chủ chờ nối kết từ máy khách . Có các câu lệnh cần để máy chủ và máy khách trao dữ liệu với nhau. Các máy giao tiếp với nhau là dựa theo giao thức TCP/IP (Trasmission Control Protocol / Internet Protocol).
Yêu cầu của bài toán được đặt ra cụ thể như sau:
1- Về mặt ứng dụng:
Đối với những khách hàng vào hệ thống để mua hàng, hệ thống phải hỗ trợ sao cho khách hàng có thể tìm kiếm, chọn và đặt hàng một cách dễ dàng. Khi khách hàng đặt mua sản phẩm, hệ thống sẽ chuyển đơn đặt hàng này đến nhà sách.
Đối với nhà sách, nhà sách sẽ dể dàng trong việc quản lý. Nhà sách có thể biết được các khách hàng quen thuộc qua những lần mua hàng. Có thể quản lý tồn kho và công nợ của khách hàng cũng như của nhà cung cấp. Có thể quản lý được các hóa đơn xuất nhập, hóa đơn đặt hàng của khách hàng, hóa đơn giao hàng cho khách hàng
2- Về mặt kỹ thuật:
Ứng dụng triển khai trên môi trường Web nên bài toán đòi hỏi hệ thống phải có những khả năng về kỹ thuật như sau:
Hỗ trợ nhiều hệ điều hành (cho cả client và server).
Hỗ trợ nhiều trình duyệt (như IE, Netscape..)
Hỗ trợ nhiều người dùng.
Dung lượng:
Ø Số lượng người truy cập: không giới hạn.
Ø Số lượng sách: không giới hạn.
3. Một số yêu cầu khác
Ngoài các yêu cầu trên, ứng dụng có thể:
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.
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:
Server-side
Presentation
Server-side
Business logic
Enterprise
Data store
Client Tier
Middle Tier
Data Tier
Client
Client
Hình 3.1: Mô Hình 3 Tầng
Hệ thống hoạt động trong mô hình ba tầng và công nghệ để triển khai ứng dụng là công nghệ Java. Do vậy, mô hình kiến trúc hệ thống được phân tầng như sau:
v Client tier: tầng này bao gồm hai tầng con: client và server-side presentation. Tầng con client sử dụng trình duyệt Web để truyền yêu cầu của người dùng đến tầng con server-side thông qua giao thức http. Tầng này là cầu nối giữa ứng dụng với người dùng, cung cấp những chức năng của ứng dụng cho người dùng và nhận những yêu cầu của người dùng cho ứng dụng để qua đó trả lại kết quả mà người dùng mong đợi. Tầng này thiết kế sao cho càng thân thiện với người dùng càng tốt.
v Middle tier: Tầng này hỗ trợ cho việc trao đổi dữ liệu giữa client tier và data tier. Nó cung cấp các chức năng cần thiết để tầng client có thể trao đổi dữ liệu với ngân hàng dữ liệu được quản lý bởi data tier.
v Data tier: là kho lưu trữ dữ liệu thương mại, chứa những dữ liệu về chức năng của ứng dụng, cung cấp khả năng truy xuất đến cơ sở dữ liệu cho 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 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,..). Do vậy, chúng ta cần phải xây dựng tầng middle (vì tầng này là tầng cốt lõi của ứng dụng, có thể nói mọi xử lý đều nằm ở tầng này) sao cho hỗ trợ được tốt những yêu cầu vừa nêu.
Để xây dựng một ứng dụng có thể triển khai được trên môi trường Web thì một trong nhũng công nghệ nêu trên đều có thể lập trình được (không kể đến những yêu cầu về kỹ thuật). Nhưng đối với bài toán này, việc chọn công nghệ Java để triển khai bài toán là phù hợp nhất.
Từ những yêu cầu trên và việc đặt vấn đề, ta nhận thấy hệ thống của chúng ta hoạt động trên môi trường mạng (Internet) theo mô hình Client/Server. Ngôn ngữ java là một trong những ngôn ngữ sáng giá và thuận lợi cho ta thực hiện những trang web động (công nghệ JSP và Servlet). Java đủ mạnh để ta có thể thiết kế bất kỳ ứng dụng nào theo mô hình Client/Server.
Java là ngôn ngữ đơn giản, hướng đối tượng, thông dịch, mạnh, cấu trúc độc lập, phân tán, có tính bảo mật cao, hiệu qủa và linh động:
Ø Đơn giản: Đặc điểm nổi bật đầu tiên của Java là tính đơn giản, java được đưa ra nhằm mục đích là thay thế C hay C++ , bởi vì C khĩ viết, khĩ biên dịch Java được xây dựng từ C và loại bỏ những gì phức tạp của C thì chắc chắn là sẽ đơn giản hơn C.
Ø Hướng đối tượng: Mọi ứng dụng viết trên Java đều phải được xây dựng trên các đối tượng và thông qua các đối tượng. Các hỗ trợ Java không cho phép các đối tượng có tính năng đa thừa kế, bởi vì tính đa thừa kế sẽ tạo ra những phức tạp. Thay vào đó sẽ là các giao tiếp (interface). Mỗi lớp của Java bao gồm các phương thức(method) là chức năng mà đối tượng có thể dùng để trả lời các tác động đến đối tượng và các trường(field).
Ø Thông dịch: Java là ngôn ngữ thông dịch, các ứng dụng Java có thể dể dàng chạy trên các các máy tính với các nền phần cứng khác nhau, chỉ cần đi kèm với các ứng dụng đó là bộ thông dịch có kích thước rất bé và đặc biệt là bộ thư viện động.
Ø 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.
Ø 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ô hình client/server, nhưng đó chỉ là một phần bức tranh về client/server còn một nữa bức tranh nữa thuộc về servlet/jsp và nhiều thứ khác nữa.
1 – Servlet:
- Servlet là một thành phần chủ yếu phục vụ cho mục đích tích hợp và chạy trên các trình chủ Web server. Servlet giúp xử lý và tạo ra các trang web động. Servlet có thể kết hợp với trang JSP (Java Server Pages). JSP là các trang script chạy phía máy chủ dùng mã Java để sinh ra trang web động, tương tác với cơ sở dữ liệu, tương tự như servlet.
- Servlet có thể được xem như một applet phía server (server side). Các servlets được nạp và được thực thi tại trình chủ Web (Web Server). Hình3.2 dưới đây chỉ ra một servlet chấp nhận các yêu cầu từ trình khách (thông qua trình chủ Web), thi hành một số tác vụ và trả về các kết quả.
Web Browser
Web Server
Servlet
Http Request
Http Response
Hình 3.2
- Các bước cơ bản khi sử dụng servlet:
Ø Trình khách tạo ra một yêu cầu (request) lên máy chủ yêu cầu dịch vụ Web dựa trên nghi thức HTTP. Tài nguyên mà trình khách yêu cầu có thể là một tập tin (.html hay hình ảnh ) . Tài nguyên cũng có thể ở dạng thông tin động do servlet sinh ra.
Ø Trình chủ Web nhận các yêu cầu này và chuyển cho servlet. Nếu servlet chưa được nạp, trình chủ Web sẽ nạp nó vào trong máy ảo Java và thực thi nó.
Ø Servlet sẽ nhận yêu cầu này dựa trên nghi thức HTTP và xử lý
Ø Servlet sẽ trả ngược về cho trình chủ Web một phản hồi (response).
Ø Trình chủ Web sẽ chuyển phản hồ i(response) này rồi chuyển cho 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 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.
2 – Java Server Pages (JSP):
- JSP ( Java Server Page ) là cách kết hợp ngôn ngữ HTML truyền thống và ngôn ngữ Java phía máy chủ để sinh ra các trang web động phucï vụ các ứng dụng web uyển chuyển hơn các công nghệ CGI , Servlet .
- Cơ chế hoạt động của JSP :
Công nghệ JSP gắn liền với Servlet. JSP đưa lệnh Java vào các mã ( hay thẻ ) HTML. Các trang JSP chứa các thẻ đặc biệt qui định gần giống như thẻ của ngôn ngữ HTML. Khi bạn yêu cầu một trang JSP , trình chủ sẽ đọc trang JSP từ điã cứng, bộ diễn dịch JSP ( JSP Page Compiler ) sẽ diễn dịch mã lệnh Java chứa trong trang JSP thành một servlet . Sau đó trình chủ Web Server sẽ triệu gọi servlet trả kết xuất thuần HTML về cho trình khách . Với trang JSP bạn hoàn toàn có thể lấy dữ liệu do trình duyệt phía máy khách chuyển lên trình chủ xử lý sau đó gửi trả kết quả về cho trình khách.
Web 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
- Các thẻ lệnh của JSP :
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ẻ .
Thẻ 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 .
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 .
Thẻ nhúng mã nguồn
Với thẻ này có thể nhúng một trang .html vào trang jsp hiện hành . Thẻ này tương tự chỉ dẫn #include trong ngôn ngữ C . Cú pháp đầy đủ của thẻ này là :
Thẻ chỉ dẫn biên dịch trang
Thẻ này chỉ dẫn một số tính chất biên dịch áp dụng cho toàn trang jsp .Có thể sử dụng thẻ này để khai báo các thư viện import của java , chỉ định tuỳ chọn trang jsp có cần giữ trên cache bộ nhớ của trình chủ để tăng tốc hay không
e-Thẻ chuyển hướng
Thẻ này giúp chuyển hướng trang Web sang địa chỉ khác . Ví dụ , khi xử lý trang nhận dữ liệu đăng nhập (login page ) bạn kiểm tra mật khẩu , nếu hợp lệ bạn chuyển người dùng đến trang tài nguyên cho phép truy cập . Nếu không hợp lệ , bạn chuyển người dùng đến trang thông báo lỗi .
f-Thẻ sử dụng thành phần Bean
Bạn có thể tự tạo các lớp đối tượng Java và triệu gọi chúng từ bên trong trang jsp . Hướng theo công nghệ thành phần (component ) Java gọi những đối tượng có thể gắn vào những ứng dụng là thành phần Bean .
g-Thẻ đặt thuộc tính cho Bean
Thẻ này được sử dụng để triệu gọi một phương thức nào đó của Bean .
h-Thẻ lấy thuộc tính của Bean
Ngược với thẻ dùng để lấy về nội dung của một thuộc tính .
- Các đối tượng mặc định của trang JSP :
Trang diễn dịch JSP cho phép sử dụng một số đối tượng đã khai báo trước .Điều này giúp viết mã lệnh trong trang jsp nhanh hơn servlet .
Đối tượng out : xuất phát từ lớp PrintWriter . Bạn có thể sử dụng đối tượng này để định dạng kết xuất gửi về máy khách .Ví dụ:
Đố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ụ:
Đố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)
{
strErr = e.toString();
}
. . .
%>
- Trang JSP triệu gọi đối tượng RMI ,CORBA :
Bởi vì trang JSP chứa hầu như toàn bộ mã Java cho nên bạn có thể triệu gọi đối tượng phân tán như RMI hay CORBA theo cách rất tự nhiên . Nghĩa là sau khi thiết lập được đối tượng RMI.
Trên đây đã giới thiệu kỹ thuật lập trình web bằng trang jsp. Chúng ta có thể dùng các công cụ như : NotePad, Font Page, JpadPro, DreamWaver để viết trang JSP, trong đề tài này chúng em chọn công cụ Dream Waver để thiết kế trang JSP. Với JSP bạn có thể nhúng lệnh Java vào trang Web kết hợp với các thẻ HTML truyền thống. JSP thay cho Servlet và dễ sử dụng hơn servlet. Tuy nhiên kết hợp giữa trang jsp và công nghệ JavaBean là cách tốt nhất để xây dựng những ứng dụng web mạnh mẽ phát huy tác dụng ở cả hai phía khách / chủ.
3 - So sánh giữa JSP và Servlet:
Đặc tả JSP cung cấp rất nhiều thẻ cho phép người dùng tuỳ biến khi nhúng lệnh Java trong trang JSP. Các thẻ này sẽ kết hợp với các lệnh hay thẻ chuẩn HTML để tạo ra kết xuất cuối cùng trả về trình khách.
Các chức năng của trang JSP hoàn toàn giống với servlet tuy nhiên bạn không cần phải biên dịch trang JSP bằng tay. Trình chủ Web server sẽ thực công việc này hộ bạn.
Như vậy, viết trang JSP đơn giản hơn viết servlet. Nếu đem so sánh bạn sẽ thấy rằng, khi viết servlet bạn phải tự tạo đối tượng luồng xuất
java.io.PrintWriter out = resp.getWriter ( );
để kết xuất kết quả trả về cho trình khách. Trong khi đó nếu viết trang JSP thì không cần phải thực hiện điều này. Bộ diễn dịch JSP đã tạo sẵn đối tượng out cho bạn sử dụng.
Thật ra thì trang JSP được biên dịch thành servlet phía sau hậu trường , kết xuất của trang JSP thật ra là kết xuất của servlet. Tuỳ theo mỗi trình chủ khác nhau ( như JRun, Tom Cat, J2EE .) mà sẽ có các tập tin diễn dịch .jsp ra servlet khác nhau.
Theo cơ chế của JSP , bạn không cần phải quan tâm đến những tập tin phụ này. Nếu bạn xoá các tập tin này đi, trình chủ sẽ tự động tạo mới lại. Theo cơ chế này thì trang JSP có thể phải thực hiện chậm hơn servlet thuần túy, nhưng chỉ là lần đầu khi trang JSP được biên dịch. Ở lần triệu gọi kế tiếp từ máy khách, trình chủ không cần dịch lại trang JSP nữa ( trừ khi có thay đổi nội dung trang JSP ). Mã JSP lúc này là mã Java nhị phân (byte-code) được gọi thực thi trực tiếp.
Viết trang JSP đơn giản hơn viết servlet và bạn hoàn toàn có thể tận dụng mọi chức năng của servlet bên trong trang JSP. Tuy nhiên, servlet thường được xem như những đối tượng thành phần (component ) nhúng vào trình chủ (tương tự đối tượng ActiveX hay COM của Microsoft ). Chính vì vậy servlet thường được dùng cho các chức năng xử lý phức tạp như: giao tiếp với Applet phía trình khách, thực hiện bảo vệ tài nguyên, chứng thực mật khẩu Trong khi đó trang JSP được dùng cho các thao tác truy xuất hay xử lý đơn giản như trình bày giao diện , định dạng trang HTML , triệu gọi các thành phần JavaBean hay servlet khác . Như vậy , kết hợp JSP và Servlet là cách tốt nhất khi bạn chọn phát triển ứng dụng Web bằng Java phía máy chủ.
4 – JavaBeans:
JavaBeans là những giao tiếp lập trình được dùng để tạo ra những khối mã xây dựng sẵn và có thể dùng lại được. Những thành phần JavaBeans có thể được nhúng vào trong một ứng dụng, liên kết với các thành phần JavaBeans khác hay được dùng để kết nối với các ứng dụng. Các ứng dụng Java xây dựng bằng các thành phần JavaBeans có thể đáp ứng cho cả hai phía client và server.
5 – Enterprise JavaBeans (EJB):
Mục đích của Enterprise JavaBeans là xây dựng các thành phần có thể dùng để lắp ráp, tạo nên ứng dụng nhanh chóng, giảm thời gian viết mã chương trình và có khả năng chạy trên server
Một điều đáng lưu ý là Enterprise JavaBeans(EJB) khác hẵn với JavaBeans. Các đối tượng EJB không dùng thể hiện giao diện . Các đối tượng EJB thực hiện chức năng tính toán , kết nối dữ liệu , đưa ra kết quả và giải pháp thiết thực.
JavaBeans gồm những đối tượng hay mã Java cho phép phân biệt thuộc tính cũng như phương thức của đối tượng khi triệu gọi. JavaBeans thường được xem như những thành phần giao diện gắn hay kết nối vào ứng dụng kiểu mô hình lắp ghép.
6 – SQL Server:
Khối lượng thông tin trên Intenet là rất lớn và đòi hỏi tính bảo mật cao nên việc chọn SQL Server là phù hợp. Việc chọn SQL Server với những lý do sau:
Ø Là một trong những hệ quản trị cơ sở dữ liệu thông dụng nhất.
Ø Đáp ứng được nhu cầu thực hiện nhiều truy vấn cùng một lúc.
Ø Cho phép thực hiện mô hình cơ sở dữ liệu phân tán. Tính bảo mật cao.
Ø Mô tả đầy đủ được một cơ sở dữ liệu quan hệ.
Máy chủ SQL Server cho phép hàng ngàn người dùng kết nối và làm việc với nhiều cơ sở dữ liệu khác nhau trên cùng một máy chủ tại cùng một thời điểm. Máy chủ SQL Server cung cấp khả năng kết nối, truy cập cho người dùng đến mọi cơ sở dữ liệu trên máy, tùy thuộc vào mức độ bảo mật cho phép của người đang kết nối.
Bảo mật là một trong những điểm mạnh giúp cho SQL Server được sử dụng trong thương mại điện tử. Chúng ta có thể bảo mật bằng một trong hai chế độ sau trong SQL Server:
Ø Bảo mật dựa vào chế độ bảo mật của Windows NT
Ø Bảo mật bằng cả hai chế độ: bảo mật của Windows NT và bảo mật của SQL Server.
a-Bảo Mật Theo Chế Độ Windows NT:
Khi người dùng kết nối vào thông qua chế độ bảo mật của Windows NT, SQL Server kiểm tra tên và mật khẩu đăng nhập vào mạng Windows NT. Sau đó SQL sẽ cho phép hoặc từ chối phục vụ tùy thuộc vào tên và mật khẩu gỏ vào có đúng hay không, không cần phải kiểm tra lại một lần nữa.
Vì người dùng và nhóm người dùng được quản lý bởi Windows NT, nên SQL server chỉ cần kiểm tra các thông tin khi người dùng kết nối. Nếu quyền truy cập của người dùng thay đổi, sự thay đổi này sẽ có hiệu lực ngay lần kết nối kế tiếp.
b-Bảo Mật Theo Chế Độ SQL Server:
Chế độ bảo mật của SQL Server vượt trội hơn hẵn các chế độ cơ sở dữ liệu khác. SQL Server kiểm soát và cấp quyền để người dùng có thể tra cứu, thêm, xóa, sửa cơ sở dữ liệu. Điều này hết sức thuận lợi trong việc phát triễn các ứng dụng cần có chế độ an toàn và bảo mật cao, chẳng hạn như thương mại điện tử, bán hàng trên mạng.