MỤC LỤC
Mục Lục trang 1
Chương 0: MỞ ĐẦU trang 3
I – Lời Mở Đầu trang 3
II – Lý Do Chọn Đề Tài trang 3
III – Các Công Cụ Sử Dụng trang 5
Phần I: CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI
Chương 1: Khảo Sát Hiện Trạng trang 6
1. Yêu Cầu Chức Năng Đối Với Khách Hàng trang 6
2. Yêu Cầu Chức Năng Đối Với Nhà Sách trang 7
2.1. Bán Hàng trang 9
2.2. Liên Lạc Với Khách Hàng trang 10
3. Các Yêu Cầu Phi Chức Năng trang 10
Chương 2 : Đặc Tả Tính Năng Và Yêu Cầu trang 12
I. Đặc Tả Tính Năng trang 12
1. Khách Hàng trang 12
2. Người Quản Trị Hệ Thống trang 12
3. Nhân Viên trang 14
4. Nhà Cung Cấp trang 15
5. Nhà Bank trang 15
II. Yêu Cầu Của Đề Tài trang 16
1. Về Mặt Ứng Dụng trang 16
2. Về Mặt Kỷ Thuật trang 16
3. Một Số Yêu Cầu Khác trang 16
Chương 3: Giải Pháp Lựa Chọn trang 17
I. Khảo Sát Mô Hình trang 17
II. Lựa Chọn Công Nghệ trang 18
III. Khảo Sát Chi Tiết Về Công Nghệ trang 20
Phần II: THIẾT KẾ CƠ SỞ DỮ LIỆU
Chương 4: Phân Tích Và Thiết Kế Cơ Sở Dữ Liệu Hướng Đối Tượng
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
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
23 trang |
Chia sẻ: maiphuongdc | Lượt xem: 2049 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Luận văn 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
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