ÑAÏI HOÏC QUOÁC GIA THAØNH PHOÁ HOÀ CHÍ MINH TRÖÔØNG ÑAÏI HOÏC KHOA HOÏC TÖÏ NHIEÂN KHOA TOAÙN-TIN HOÏC BOÄ MOÂN ÖÙNG DUÏNG TIN HOÏC CHUYEÂN NGAØNH TOAÙN-TIN ÖÙNG DUÏNG ------ooo------

TIEÅU LUAÄN TOÁT NGHIEÄP

Ñeà taøi:

Giaûng vieân höôùng daãn : ThS.Phaïm Theá Baûo GV. Haø Vaên Thaûo Giaûng vieân phaûn bieän : ThS.Nguyeãn Giang Sôn Sinh vieân thöïc hieän : Leâ Nguyeãn Thoaïi Nhö Maõ soá sinh vieân : 9800132 Lôùp : 98T1

NIEÂN KHOÙA 1998-2002

NHẬN XÉT CỦA GIẢNG VIÊN

............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ............................................................................................................................................... ...............................................................................................................................................

ii

LỜI CÁM ƠN

Đầu tiên em xin chân thành cám ơn các thầy cô đã hết lòng chỉ bảo và dạy dỗ em trong suốt bốn năm học vừa qua.

Em xin đặc biệt cám ơn thầy Phạm Thế Bảo và thầy Hà Văn Thảo đã tận tình hướng dẫn và giúp đỡ em hoàn thành tốt đề tài này.

Em xin cám ơn khoa Toán-Tin học, bộ môn ứng dụng Tin học và các thầy cô đã tạo mọi điều kiện thuận lợi cho em thực hiện đề tài này.

Xin cám ơn anh Võ Đức Cẩm Hải đã giúp đỡ trong quá trình thực hiện đề tài. Cám ơn bạn Lưu Hữu Thuận đã giúp đỡ và đóng góp ý kiến giúp Như hoàn chỉnh tốt hơn đề tài của mình.

Cuối cùng xin dành lời cám ơn đến gia đình và người thân đã động viên em trong quá trình thực hiện đề tài.

iii

LỜI NÓI ĐẦU

Do sự phát triển không ngừng của công nghệ thông tin, việc học tập hiện nay không chỉ giới hạn ở hình thức học trên lớp mà còn có hình thức học tập thông qua mạng. Việc học tập trên mạng ngày càng được phát triển và phổ biến ở hầu hết các trường Đại học và Phổ thông. Đối với những người không có thời gian học trên lớp thì họ vẫn có thể học từ xa thông qua Internet với những thao tác đơn giản. Và song song với việc học trên Internet, họ còn có thể trao đổi kiến thức với nhau cũng như đưa ra những thắc mắc và sẽ được giải đáp một cách hợp lý.

Việc xây dựng trên Web như là một môi trường giúp cho việc trao đổi thông tin về nội dung của các môn học giữa các bạn sinh viên với nhau và giữa sinh viên với các giảng viên là cần thiết. Chính vì vậy em xin giới thiệu đề tài “Hệ thống trao đổi thông tin trên Web” xem như là một hình thức hỗ trợ việc học tập cho các bạn sinh viên trong Khoa. Trong giới hạn thời gian cho phép để hoàn thành đề tài cho nên ứng dụng có thể

chưa đáp ứng được đầy đủ các nhu cầu cho việc học tập của các bạn cũng như đối với các giảng viên bộ môn. Nếu điều kiện cho phép đề tài này sẽ được hoàn chỉnh hơn và phù hợp với nhu cầu hơn. Hy vọng rằng đề tài này sẽ được ứng dụng rộng rãi trong các Khoa như là một hình thức hỗ trợ học tập.

iv

MỤC LỤC

NHẬN XÉT CỦA GIẢNG VIÊN......................................................................................... ii LỜI CÁM ƠN.......................................................................................................................iii LỜI NÓI ĐẦU...................................................................................................................... iv MỤC LỤC ............................................................................................................................. v CHƯƠNG I: MỞ ĐẦU ......................................................................................................... 1 I.GIỚI THIỆU ................................................................................................................... 1 II.MỤC ĐÍCH VÀ CHỨC NĂNG.................................................................................... 1 1.Người quản trị ............................................................................................................ 1 2.Người sử dụng ............................................................................................................ 1 III.YÊU CẦU CỦA ĐỀ TÀI ............................................................................................. 2 1.Về mặt ứng dụng ........................................................................................................ 2 2.Về mặt kỹ thuật .......................................................................................................... 2 CHƯƠNG II: KHẢO SÁT VÀ LỰA CHỌN CÔNG NGHỆ............................................... 3 I.MÔ HÌNH LẬP TRÌNH MẠNG .................................................................................... 3 1.Mô hình client/server.................................................................................................. 3 2.Mô hình hai tầng......................................................................................................... 3 3.Mô hình ba tầng.......................................................................................................... 4 II.KHẢO SÁT MỘT SỐ CÔNG NGHỆ........................................................................... 5 1.CGI (Common Gateway Interface) ............................................................................ 5 2.ASP (Active Server Page) .......................................................................................... 6 3.JSP (Java Server Page) ............................................................................................... 6 III.SO SÁNH VÀ LỰA CHỌN CÔNG NGHỆ ................................................................ 6 1.So sánh công nghệ ...................................................................................................... 6 2.Lựa chọn công nghệ ................................................................................................... 7 IV.KHẢO SÁT CHI TIẾT VỂ CÔNG NGHỆ SỬ DỤNG............................................... 8 1.HTML (HyperText Markup Language) ..................................................................... 8 2. JSP (Java Server Page) .............................................................................................. 9 3.Java Servlet............................................................................................................... 14 4.JavaBean................................................................................................................... 16 5.JDBC (Java Database Connectivity) ........................................................................ 17 CHƯƠNG III: KIẾN TRÚC HOẠT ĐỘNG VÀ THIẾT KẾ HỆ THỐNG........................ 21 I.KIẾN TRÚC HỆ THỐNG ............................................................................................ 21 II.THIẾT KẾ TỔNG QUÁT ........................................................................................... 21 1.Quản trị hệ thống ...................................................................................................... 21 2.Người sử dụng .......................................................................................................... 22 III.CƠ CHẾ HOẠT ĐỘNG............................................................................................. 22 IV.THIẾT KẾ DỮ LIỆU................................................................................................. 23 V.THIẾT KẾ XỬ LÝ ...................................................................................................... 26 1. Đối với người sử dụng............................................................................................. 26 2. Đối với quản trị........................................................................................................ 29 2. Đối với quản trị........................................................................................................ 30 CHƯƠNG IV: TRIỂN KHAI CÀI ĐẶT............................................................................. 32

v

I.CÁC THÀNH PHẦN JAVABEAN.............................................................................. 32 1.Lớp Topic ................................................................................................................. 32 2.Lớp Admin ............................................................................................................... 32 3.Lớp HelpDesk........................................................................................................... 33 II.TRIỂN KHAI CÁC TRANG JSP................................................................................ 35 III.HẠN CHẾ VÀ HƯỚNG PHÁT TRIỂN.................................................................... 43 1.Hạn chế..................................................................................................................... 43 2.Hướng phát triển....................................................................................................... 43 TÀI LIỆU THAM KHẢO ................................................................................................... 44

vi

Hệ thống trao đổi thông tin

CHƯƠNG I: MỞ ĐẦU

Công nghệ thông tin đã và đang phát triển rất nhanh chóng, đặc biệt là sự phát triển

I.GIỚI THIỆU của Internet cả về phạm vi và ứng dụng. Các nhà khoa học có thể sử dụng Internet để tìm kiếm tài liệu và thảo luận với nhau về việc nghiên cứu. Học sinh, sinh viên có thể tìm kiếm các tài liệu phục vụ cho việc học tập và giải trí. Việc trao đổi kiến thức trên mạng ngày càng phổ biến ở khắp mọi nơi, và trở thành một nhu cầu cần thiết.

Việc xây dựng nên một trang Web như là một môi trường giúp cho việc trao đổi

kiến thức giữa các bạn sinh viên với nhau và giữa sinh viên với các giảng viên là cần thiết. Đề tài “Hệ thống trao đổi thông tin trên Web” được xem như là một hình thức phục vụ cho việc học tập cho các bạn sinh viên trong Khoa.

Trang Web này nhằm mục tiêu phục vụ việc trao đổi thông tin về nội dung của các

II.MỤC ĐÍCH VÀ CHỨC NĂNG môn học giữa các bạn sinh viên với nhau và với các giảng viên. Các bạn sinh viên có thể học hỏi được nhiều kinh nghiệm và kiến thức bằng cách gởi những thắc mắc lên trang Web để được các bạn các khác giải đáp hay được giải đáp của các giảng viên. Đối với các giảng viên, qua đó nắm bắt được tình hình học tập của sinh viên hiện nay để có những thay đổi về nội dung, phương pháp và bài giảng cho phù hợp. Với mục đích ở trên, hệ thống phục vụ cho hai đối tượng chính là người sử dụng (sinh viên) và người quản trị (giảng viên). Khi vào hệ thống họ có các chức năng chính như sau:

1.Người quản trị Người quản trị có chức năng thêm vào các môn học và tạo ra các chủ đề mới, xoá hay sửa các chủ đề, xóa đi các câu hỏi trùng lắp, chuyển các câu hỏi vào trong một chủ đề nào đó. Tuy nhiên người quản trị cũng được chia theo cấp bậc có nghĩa là mỗi người quản trị (giảng viên) chịu trách nhiệm về một bộ môn nào đó chỉ có quyền thêm, xoá, sửa các chủ đề thuộc về phạm vi mình quản lý.

2.Người sử dụng Trong phần này người dùng truy cập vào trang Web, xem nội dung, thêm vào câu

hỏi hay có thể trả lời các câu hỏi mà mình giải đáp được. Ngoài ra người sử dụng có thể sử dụng chức năng tìm kiếm được những nội dung mình cần.

Trang 1

Hệ thống trao đổi thông tin

III.YÊU CẦU CỦA ĐỀ TÀI

1.Về mặt ứng dụng Hệ thống cho phép người dùng trao đổi kiến thức cho nhau và trao đổi với các

giảng viên. Mỗi giảng viên sẽ có một tài khoản riêng trong ứng dụng, họ có thể thay đổi các môn học, các chủ đề, câu hỏi trong phạm vi quản lý của mình. Đối với những sinh viên vào hệ thống thì phải hỗ trợ sao cho việc tìm kiếm, hỏi hay trả lời các câu hỏi một cách dễ dàng.

2.Về mặt kỹ thuật Ứng dụng đòi hỏi phải có khả năng về các kĩ thuật sau: • Ứng dụng triển khai trên môi trường Web. • Hỗ trợ nhiều trình duyệt.(IE, Netscape...). • Hỗ trợ nhiều người dùng. • Số lượng người truy xuất và người quản trị (giảng viên) không giới

hạn.

Tóm lại, với các yêu cầu như trên, ta cần phải khảo sát và lựa chọn công nghệ thích hợp để triển khai ứng dụng theo yêu cầu.

Trang 2

Hệ thống trao đổi thông tin

CHƯƠNG II: KHẢO SÁT VÀ LỰA CHỌN CÔNG NGHỆ

I.MÔ HÌNH LẬP TRÌNH MẠNG

1.Mô hình client/server Lập trình mạng thường liên quan đến một máy chủ (server) và nhiều máy khách

(client). Trong đó các máy khách và máy chủ giữ những chức năng và nhiệm vụ khác nhau. Đó là mô hình mạng client/server.

Như 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 giúp cho ứng dụng trở nên dễ dàng thay đổi, nâng cấp và tin cậy hơn. Một ứng dụng thường được chia làm 3 tầng:

• Giao diện (presentation logic): tầng này là cầu nối giữa người dùng với ứng 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 lệnh từ người dùng cho ứng dụng .

• Chức năng (business logic): đây là phần lõi của một chương trình, cung cấp tất cả những chức năng có thể có của chương trình cho tầng giao diện. • Cơ sở dữ liệu (Data Access logic): tầng này là Cơ sở dữ liệu của ứng dụng, cung cấp khả năng truy xuất đến cơ sở dữ liệu cho lớp chức năng nếu cần.

Mô hình client/server được chia ra làm các mô hình sau: mô hình hai tầng và mô hình ba tầng (còn gọi là mô hình đa tầng).

2.Mô hình hai tầng Mô hình hai tầng được chia làm hai loại:

• Tính toán tập trung ở máy khách (thường gọi là fat client-thin

server): phía máy khách đảm nhiệm cả 2 tầng giao diện (presentation) và chức năng (business), còn phía máy chủ chỉ đảm nhận nhiệm vụ của tầng cơ sở dữ liệu.

Trang 3

Hệ thống trao đổi thông tin

DBMS

Database Server • presentation • business • data access

Client Server

Mô hình này đơn giản, thích hợp cho các ứng dụng nhỏ. Tuy nhiên nó có nhược

điểm là tốc độ chương trình sẽ chậm do mọi thao tác dữ liệu đều thông qua mạng giữa client và server. Phần tính toán, phần lõi nằm ở máy client nên đòi hỏi máy client phải có cấu hình mạnh, khó nâng cấp vì phải cập nhật lại chương trình nằm ở toàn bộ các client.

• Tính toán tập trung ở máy chủ (fat server-thin client): máy khách chỉ

đảm nhận phần giao diện, còn máy chủ thực hiện phần chức năng và cơ sở dữ liệu.

DBMS Database Server • presentation

• business • data access

Client Server

Mô hình này có tốc độ nhanh do lớp chức năng nằm ở server cùng với cơ sở dữ liệu

nên mọi thao tác với cơ sở dữ liệu đều được thực hiện ngay trên server. Do đó giảm được sự lưu thông trên mạng, thông tin lưu trên mạng chỉ là những kết quả trả về cho client sau khi đã được tính toán. Phần lõi nằm ở server nên việc nâng cấp dễ dàng hơn. Tuy nhiên mô hình này đòi hỏi cấu hình máy chủ phải đủ mạnh, dung lượng lớn để lưu trữ dữ liệu.

3.Mô hình ba tầng

Trong mô hình này, tầng chức năng (business) được tách ra thành một lớp riêng.

Trang 4

Hệ thống trao đổi thông tin

DBMS

Database Server • presentation Application • business • data access

Client Database

Server Các tầng chính: • Client tier: bao gồm hai tầng con là client và server-side presentation.

Tầng con client sử dụng trình duyệt Web (Web brower) để truyền yêu cầu của người dùng đến tầng con server-side prentation 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. Những yêu cầu của người dùng được đưa đến server và gửi trả về cho client những kết quả mà trình duyệt có trách nhiệm trình bày. Tầng này thiết kế sao cho thân thiện với người dùng. • Middle tier (server tier): tầng này hỗ trợ cho việc trao đổi dữ liệu giữa client và data. 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. • Data tier: là nơi lưu trữ dữ liệu, chứa những dữ liệu về chức năng của ứng dụng. Nó cung cấp khả năng truy xuất đến cơ sở dữ liệu cho tầng middle nếu cần. Mô hình này làm cho chương trình trở nên linh động hơn trong việc thay thế, nâng

cấp, tích hợp được dữ liệu từ nhiều nguồn ở xa. Do đó mô hình 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ư ứng dụng Web.

Quá trình mà trình chủ nhận một yêu cầu từ các trình khách, sau đó xử lý và trả về

II.KHẢO SÁT MỘT SỐ CÔNG NGHỆ kết xuất cho trình khách có nhiều công nghệ để hỗ trợ. Ta sẽ khảo sát một số công nghệ sau:

1.CGI (Common Gateway Interface)

Khi nhận được lệnh Get hay Post từ trình khách, trình chủ có thể thực thi một

Một chương trình CGI của trình chủ có thể sản sinh ra hàng ngàn trang Web theo

Ngôn ngữ kịch bản Perl là trình thông dịch của CGI. Sau khi viết các lệnh bằng ngôn ngữ Perl thì lưu thành tập tin có phần mở là .pl.

chương trình và chương trình này sẽ tự động sinh ra nội dung trả về cho trình khách. Như vậy lúc này tập tin trả về cho trình khách sẽ không tồn tại trên đĩa cứng của trình chủ, nó được tạo ra từ một chương trình. Chương trình này thường được gọi là CGI. yêu cầu của trình khách. Khi trình khách phát yêu cầu về tập tin .pl gửi đến máy chủ thì trình chủ Web Server được

Trang 5

Hệ thống trao đổi thông tin

cấu hình để gọi chương trình CGI Perl.exe. Chương trình Perl.exe sẽ đọc tập tin kịch bản .pl đó và thực thi các lệnh chứa trong kịch bản rồi trả kết quả về cho trình khách.

2.ASP (Active Server Page)

Nhằm đem lại sự tiện lợi và dễ dàng trong việc xây dựng một ứng dụng trên Web,

hãng Microsoft cung cấp công nghệ ASP (Active Server Page) giúp tạo trang Web động đồng thời đảm nhận chức năng gởi và nhận dữ liệu giữa máy khách và máy chủ.

Là trang Web chứa mã lệnh viết bằng ngôn ngữ Visual Basic kết hợp với các thẻ

ASP xây dựng sẵn 6 đối tượng rất mạnh. Các đối tượng này không quan hệ với

định dạng của HTML. nhau theo mô hình phân cấp, cha con, chúng liên hệ nhau dựa trên vai trò và tính năng mà chúng cung cấp. Các đối tượng này bao gồm Server, Application, Session, Request, Response và ObjectContent xây dựng nên môi trường cho các ứng dụng Active Server. Khi máy khách triệu gọi một tập tin .asp, trình chủ Web Server sẽ yêu cầu trình dịch ASP chuyển tải mã lệnh ASP thành kết xuất HTML trả về cho trình khách.

3.JSP (Java Server Page)

Là cách kết hợp ngôn ngữ HTML truyền thống và ngôn ngữ Java về phía máy chủ

JSP cung cấp các thẻ lệnh tương tự như thẻ của HTML. Và có một số hành động

để sinh ra các trang Web động. chuẩn dùng để truy xuất và đặt các giá trị vào các thuộc tính trong Bean. Khi máy khách triệu gọi một tập tin .jsp, trình chủ sẽ đọc trang JSP , bộ diễn dịch JSP sẽ diễn dịch mã lệnh Java chứa trong trang JSP thành Servlet. Sau đó trình chủ Web Server sẽ triệu gọi Servlet trả về kết xuất thuần HTML về cho trình khách.

III.SO SÁNH VÀ LỰA CHỌN CÔNG NGHỆ

1.So sánh công nghệ

Trang 6

Hệ thống trao đổi thông tin

ASP (Active Server Page) JSP (Java Server Page)

- Khi nhận được dữ liệu từ trình khách, Web Server xử lý trang ASP. - Khi nhận được dữ liệu từ trình khách, Web Server xử lý trang JSP.

- Dùng các lệnh

- Dùng các lệnh của Java kết hợp với kiến trúc triệu gọi thành phần Bean. CGI (Common Gateway Interface) - Khi nhận được dữ liệu từ trình khách thì Web Server sẽ triệu gọi chương trình .exe hay CGI. - Được sự hỗ trợ của trình biên dịch Perl được xây dựng bằng ngôn ngữ C, Pascal… - Chạy được trên Visual Basic kết hợp với kiến trúc triệu gọi thành phần COM/DOM. - Chỉ chạy trên nền - Chạy trên máy chủ Linux, Unix. nhiều hệ điều hành khác nhau. chủ IIS của Microsoft.

- Nhược điểm là tiêu tốn tài nguyên và hạn chế về tốc độ.

2.Lựa chọn công nghệ Qua quá trình khảo sát một số công nghệ có thể dùng để thiết kế và căn cứ vào yêu

cầu của đề tài, việc lựa chọn ngôn ngữ lập trình Java và các công nghệ mà Java cung cấp tương ứng với mô hình ba tầng là hoàn toàn phù hợp.

Tầng 1 (client tier): Các máy khách sẽ sử dụng hai trình duyệt là IE (Internet Explorer) và Netscape. Do đó đề tài sử dụng ngôn ngữ trình bày trang Web là HTML (HyperText Markup Language), JavaScript, JavaApplet. Và công nghệ giúp trang Web linh động là JSP vì JSP là cách đơn giản để người dùng tiếp cận được hướng lập trình Web về phía máy chủ hiệu quả và nhanh hơn. Tầng 2 (server tier): Yêu cầu của đề tài là chạy được trên nhiều hệ điều hành nên kĩ thuật hỗ trợ cho

Đối với Web Server thì công nghệ JRun đem lại hiệu quả cũng như các công nghệ

tầng này sẽ là JSP, JavaBean, và để hỗ trợ cho việc truy xuất dữ liệu đề tài sử dụng kĩ thuật JDBC. khác như Web Logic, Apache, Web Sphere. Tầng 3 (data tier): Dữ liệu ở tầng này được xây dựng trên mô hình dữ liệu quan hệ và được lưu trữ

quản lý dưới sự trợ giúp của hệ quản trị cơ sở dữ liệu PostgeSQL. Kiến trúc của mô hình ba tầng:

Trang 7

Hệ thống trao đổi thông tin

Internet JDBC

JSP, Servlet, JavaBean Data- base HTML, JavaScript, JSP, JavaApplet

Client tier Middle tier Data tier

IV.KHẢO SÁT CHI TIẾT VỂ CÔNG NGHỆ SỬ DỤNG

1.HTML (HyperText Markup Language)

HTML là hàng loạt các đoạn mã chuẩn với qui ước được thiết kế để tạo ra trang

HTML dùng các thẻ đã được định nghĩa sẵn để tạo trang Web. Các thẻ bắt đầu

Thuộc tính của các thẻ được kết hợp theo cặp name = value. Thuộc tính mang giá

Web, giúp tạo và chia sẻ các tài liệu điện tử tích hợp đa phương tiện qua Internet và được hiển thị bởi các trình duyệt Web. HTML cho phép áp dụng siêu liên kết cho tài liệu và trình bày tài liệu với font chữ, hình ảnh, kiểu gióng hàng phù hợp với hệ thống hiển thị văn bản. Có nhiều công cụ để tạo ra trang Web. Ví dụ có thể tạo tập tin .html bằng Microsoft Word, Note Pad trên Windows, Netscape Navigator, EditPlus...Các trình soạn thảo trên có các công cụ cho phép tạo và hiệu chỉnh tập tin .html. bằng “<” và kết thúc bằng “>”. Các thẻ gồm tên thẻ (đã được định nghĩa sẵn) và các thuộc tính (có thể có hoặc không) để bổ sung thêm vào hình thức thể hiện của thẻ. Tên thẻ chính là dấu hiệu để nhận biết loại định dạng. Các phần tử thẻ HTML bắt đầu bằng thẻ mở < > và kết thúc bằng thẻ đóng . Ngoài ra còn có các phần tử rỗng < Tên [thuộc tính] />. Giữa thẻ đóng và thẻ mở là dữ liệu cần định dạng. trị là text, giá trị của nó cũng ở dạng text được đặt trong dấu “ ”. Tên của thuộc tính là duy nhất.

Ngoài ra HTML còn có các tham chiếu thực thể được định nghĩa trước: & : & < : < " : “ ' : ‘ > : >

Các thẻ được định nghĩa trước:

• Thẻ cấu trúc: định rõ cấu trúc của tài liệu. • Thẻ hình thức văn bản: định rõ dạng hiển thị văn bản. Gồm 2 loại: thẻ vật lý và thẻ nội dung.

+Thẻ đoạn văn bản: định rõ dạng tiêu đề, đoạn và dấu ngắt dòng. +Thẻ font chữ: định rõ cỡ chữ, màu chữ. +Thẻ danh sách: định rõ danh sách theo thứ tự hoặc không theo thứ tự, danh sách định nghĩa.

Trang 8

Hệ thống trao đổi thông tin

+Thẻ bảng biểu: xác định bảng biểu. +Thẻ liên kết: định rõ các liên kết, định hướng di chuyển đến tài liệu khác. +Thẻ hình ảnh: định rõ vị trí truy cập hình ảnh và cách hiển thị hình ảnh.

Ngoài ra HTML còn có các thẻ để thể hiện các ô nhập liệu, các nút nhấn và các chọn lựa.

2. JSP (Java Server Page) JSP (Java Server Page) là một công nghệ để tạo trang HTML động về phía trình

chủ. JSP kết hợp ngôn ngữ HTML truyền thống và ngôn ngữ Java về phía máy chủ. JSP đưa lệnh Java vào các 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. Một trang JSP sẽ được bộ diễn dịch JSP (JSP Compiler) sẽ ánh xạ trực tiếp mã JSP thành servlet. Sau đó trình chủ Web Server sẽ triệu gọi servlet trả về kết xuất thuần HTML về trình khách.

JSP cung cấp các thẻ lệnh giúp tạo trang Web. Tương tự như thẻ HTML, thẻ lệnh của JSP cũng bao gồm các thẻ mở và thẻ đóng. Thực sự các thẻ JSP xây dựng theo đặc tả và chuẩn XML (Extension Markup Language) nên các thẻ của JSP có phân biệt chữ thường và chữ hoa. Mỗi thẻ có các thuộc tính quy định cách dùng thẻ.

2.1.Thẻ chỉ dẫn (directives): 2.1.1.<%@ directive {attr=”value”}%>: Thẻ này cung cấp thông tin toàn cục để dịch trang JSP.

attr :là thuộc tính. value: là giá trị ứng với thuộc tính đó, được đặt trong dấu “ ”. 2.1.2.<%@ page %>: thẻ này định nghĩa những thông tin có giá trị toàn cục trong

trang JSP. Thẻ được sử dụng trong hầu hết các trang JSP được viết. Thẻ chứa các thuộc tính chỉ ra thông tin chú thích về một trang, có thể chỉ ra ngôn ngữ kịch bản đang sử dụng trong trang, những gói của Java cần import vào để sử dụng hay triệu gọi một trang lỗi khi có lỗi hay một sự ngoại lệ xuất hiện. Thẻ thường được đặt trước thẻ mở .

2.1.3.<%@ include %>: Cú pháp: <%@ include file=”URL or FilePath”%> Thẻ này dùng để nhúng một trang html hay một tài nguyên tĩnh vào trang JSP hiện hành.

Thuộc tính file cho biết địa chỉ URL hay đường dẫn đến tập tin cần nhúng vào. 2.1.4.<%@ tablib%>: là thẻ dùng để tuyên bố rằng trang jsp sử dụng một thẻ thư viện. Cú pháp:

<%@tablib uri=”tagLibraryURI” prefix=”tagPrefix”%> Thuộc tính:

• uri: tham chiếu đến một địa chỉ URI chứa các thẻ truyền thống. • prefix: dùng để phân biệt các hành động.

Trang 9

Hệ thống trao đổi thông tin

2.2.Thẻ kịch bản (scripting): 2.2.1.<%! declaration %>: sử dụng để khai báo biến và các phương thức trong ngôn ngữ kịch bản sử dụng trong trang jsp.

2.2.2.<%= expression %>: dùng để hiển thị một biểu thức. Biểu thức sẽ được kết xuất ra bởi đối tượng JspWriter dưới dạng đối tượng String. Biểu thức trong jsp được gán giá trị khi trang jsp thực thi. Chuỗi kết quả của biểu thức sẽ được chèn vào vị trí tham chiếu của biểu thức trong tập tin jsp. 2.2.3.<% scriptlet %>: thẻ này cho phép chứa bất kì phát biểu hợp lệ nào của ngôn

ngữ được tham chiếu trong dẫn hướng của ngôn ngữ diễn dịch. Đề tài này là đặt các mã lệnh Java ở giữa cặp thẻ tương tự như một chương trình java thông thường. Sciptlet thực thi tại thời điểm gọi.

2.3.Thành phần chú thích: Trong trang jsp thì lời chú thích được đặt giữa cặp thẻ:. Trong scripting thì lời chú thích được giữa /* comment */. 2.4.Các hành động chuẩn: 2.4.1.: dùng tạo hay định vị một Bean. Hành động này liên kết đến các đối tượng của Java được định nghĩa trong một phạm vi với một định danh được định nghĩa trong trang jsp.

Cú pháp:

class =”className” type =”typeName”|

typeSpec::= class =”className” | type =”typeName” class =”className”| beanName =”beanName” type =”typeName”| type =”typeName” beanName =”beanName”| type =”typeName”. Các thuộc tính: + id: tên dùng để xác định đối tượng và cũng là tên biến được khai báo và khởi tạo với các đối tượng tham chiếu trong scripting. + scope: là phạm vi cho biết môi trường sống của đối tượng. Giá trị mặc định là “page”. + class: tên đầy đủ của lớp đã được định nghĩa trong Bean (lớp định nghĩa việc thực thi của đối tượng). + beanName: tên của Bean, như là phương thức instantiate() của lớp java.beans.Beans. + type: định nghĩa kiểu của việc định nghĩa biến scripting trong trường hợp

đặc biệt. Nếu không, giá trị giống như giá trị của thuộc tính class. 2.4.2.: là hành động dùng để đặt vào giá trị của thuộc tính trong Bean từ một HTML form.

Trang 10

Hệ thống trao đổi thông tin

Tên của thuộc tính phải được định nghĩa trước trong Bean và liên kết với tên của thành phần form. Để sử dụng được hành động này thì phải có phương thức set tương ứng trong Bean cho mỗi thuộc tính. Chú ý là hành động này chỉ đặt được một giá trị vào một thuộc tính tại một thời điểm. Cú pháp:

prop_expr::= property =”*”|

property =”propertyName”| property =”propertyName” param =”paramName”| property =”propertyName” value =”propertyValue”.

propertyValue =String hay là một expr_scriptlet. Thuộc tính: + name: là tên của thành phần Bean phải giống với tên đã được định nghĩa trước bởi thành phần .

+ property: tên của thuộc tính trong Bean cần đặt giá trị. + param: tên của tham số yêu cầu, là giá trị mà bạn muốn đặt vào thuộc tính trong Bean. Tên của tham số yêu cầu thường là tên của HTML form. + value: là giá trị để gán cho thuộc tính. Một hành động không thể có đồng

thời param và value. 2.4.3.: là hành động dùng để lấy giá trị của thuộc tính trong Bean. Tương ứng với hành động này là phương thức get trong Bean. Giá trị lấy ra được chuyển thành String và có thể thể hiện giá trị như là một output.

Cú pháp:

Thuộc tính:

+ name: tên của Bean được định nghĩa trước bởi . + property: tên của thuộc tính cần lấy giá trị.

2.4.4.: là hành động dùng để nhúng một tài nguyên tĩnh hay động vào trang jsp hiện hành. có thể có thành phần con để cung cấp giá trị cho các

tham số cho mục đích nhúng. Cú pháp:

{}

hay Thuộc tính: + page: là đường dẫn URL đến một trang cần nhúng.

Trang 11

Hệ thống trao đổi thông tin

+ flush: có giá trị là Boolean. Nếu giá trị là true thì vùng đệm bị đẩy ra. Giá

trị mặc định là false. 2.4.5.: hành động này cho phép trình dịch gởi đi một yêu cầu tại thời điểm thực thi đến tài nguyên tĩnh, JavaServlet hay đến trang jsp khác. Hành động này làm chấm dứt việc thực thi của trang hiện hành. Thường dùng như một điều kiện trong jsp để chuyển hướng xử lý.

Cú pháp:

{}

hay

Thuộc tính: page: xác định quan hệ URL của đích mà hành động jsp:forward chuyển đến. 2.4.6.: là hành động dùng để cung cấp và tạo giá trị cho tham số. Thường dùng trong các hành động jsp:include, jsp:forward, jsp:plugin. Khi làm việc với hành động jsp:include, jsp:forward thì trang được nhúng hay trang chuyển tới sẽ nhận được các tham số mới với các giá trị mới.

Cú pháp: Thuộc tính:

+ name:tên của tham số tham chiếu. + value: giá trị của tham số được tham chiếu. 2.4.7.: hành động này cho phép tạo ra trang HTML chứa đựng tính

hợp lệ của trình duyệt khách. Hành động tạo ra thẻ hay để đưa ra dòng xuất của đối tượng response. Thuộc tính của jsp:plugin cung cấp cấu hình dữ liệu để thể hiện phần tử đó.

Cú pháp: {

{} } Thuộc tính:

+ type: xác định loại cần đưa vào là Bean hay Applet. + code: tên của class được nhúng. + codebase: tham chiếu cơ sở hay đường dẫn liên hệ đến tập tin plugin.class.

2.5.Các đối tượng ẩn:(implicit object)

Trang 12

Hệ thống trao đổi thông tin

Mỗi đối tượng ẩn đều có một lớp hay giao diện được định nghĩa trong nhân java Các đối tượng ẩn luôn luôn có giá trị cho việc sử dụng trong scriptlet và biểu thức mà không cần phải khai báo trước. Hầu hết các ngôn ngữ kịch bản đòi hỏi được cung cấp việc truy cập đến đối tượng này. hay gói JavaServletAPI.

2.5.1.Đối tượng Request: Đối tượng này đại diện cho đối tượng javax.servlet.htttp. HttpServletRequest. Đối tượng request nắm giữ các tham số hay dữ liệu do trình khách gửi lên. Phương thức getParameter() nhận tên tham số và trả về giá trị chuỗi tương ứng với tên tham số đó.

2.5.2.Đối tượng Response: Là đối tượng phản hồi thông tin xử lý từ trình chủ trở về trình duyệt. Đối tượng này dùng để xuất ra trình duyệt khách dữ liệu dưới dạng HTML. Các phương thức thường dùng:

• getWriter(): dùng thực hiện kết xuất. • sendRedirect(“ .jsp”): dùng liên kết trực tiếp đến một trang jsp. • setContentType(“text/html”): định dạng xuất ra dạng văn bản hay dạng HTML. • getOutputStream(): lấy dữ liệu trong vùng đệm nhờ OutputStream.

2.5.3.Đối tượng session: Là đối tượng tham chiếu đến đối tượng javax.servlet.http.HttpSession. Đối tượng này được khởi tạo bằng phương thức pageContext.getSession() để tạo trang servlet. Khi cần một biến nào đó có giá trị toàn cục từ khi bạn mở cho đến khi kết thúc

trình duyệt đó thì đối tượng session được tạo ra. Đối tượng session tạo ra biến cục bộ cho phép lưu một giá trị nào đó từ trang jsp này sang trang jsp khác.

2.5.4.Đối tượng Application: Đối tượng này tham chiếu đến đối tượng javax.servlet.ServletContext lưu giữ cấu hình toàn cục của Servlet và JSP. Đối tượng Application có phạm vi hoạt động ở cấp ứng dụng nghĩa là có thể giữ giá

trị của tất cả các trang jsp ở những session khác nhau cho đến khi trình dịch JSP engine bị đóng lại.

2.5.5.Đối tượng Out: Đối tượng xuất phát từ lớp java.io.Writer. Đối tượng này dùng ghi kết xuất gửi về trình duyệt máy khách.

2.5.6.Đối tượng Config: Tượng trưng cho đối tượng ServletConfig. Được định nghĩa là đối tượng tạo bởi Servlet chứa các thông tin cấu hình của Servlet.

2.5.7.Đối tượng Exception: Đối tượng này chỉ tồn tại trong trang xử lý lỗi. Dùng tham chiếu đến nguyên nhân gây ra lỗi mà trang error có liên quan.

2.6.Quá trình thực thi của trang JSP: Quá trình thực thi của trang JSP được thể hiện thông qua sơ đồ sau:

Trang 13

Hệ thống trao đổi thông tin

Graphics JSP file JSP file

Component

.java file

HTTP or orther protocol

Web Browser Data store .class file

Data Store Server

Trước tiên một ứng dụng JSP là một tập hợp của các file JSP, HTML, đồ hoạ và

Client các tài nguyên khác. Khi người dùng tải trang lần đầu tiên, các file sẽ chuyển đổi với nhau mà không có dữ liệu động nào trong file nguồn java (file chứa các thành phần bean) với tên đã được định nghĩa trong file jsp thực thi. Sau đó file .java sẽ được biên dịch thành file .class. Trong quá trình thực thi, file .java là một JavaServlet được biên dịch với JavaServletAPI. Khi người dùng nhập dữ liệu từ form và nhấn Submit thì các thành phần ứng dụng nắm giữ dữ liệu hay truy cập dữ liệu động từ nơi lưu trữ và trả về dữ liệu cho file .java nơi mà nó được biên dịch thành file .class. Tập tin .class là một Java Servlet, trả lại dữ liệu đến trình duyệt của client bởi phương thức service() của nó. Ở đây người dùng sẽ thấy được kết quả dưới dạng HTML.

3.Java Servlet Servlet thực sự là một mẫu chương trình viết bằng ngôn ngữ Java, được trình chủ

Web triệu gọi, sản sinh ra kết xuất phù hợp trả về cho client. Servlet chạy trên máy ảo Java, xử lý và sinh mã HTML trả về trình khách. Servlet chỉ nạp một lần bởi Web Server và có thể duy trì các hành động giữa các yêu cầu.

3.1.Các phương thức xử lý cơ bản: Thật sự lớp GenericServlet là phần cài đặt tổng quát cho đặc tả giao tiếp (interface) mang tên Servlet. Một servlet cơ bản cần có những phương thức phục vụ cho các nhu cầu: khởi tạo (init), hoạt động và phục vụ (service), hủy (destroy), trả về thông tin cấu hình (getServletInfo). Khi tạo ra servlet mới, đơn giản chỉ nên kế thừa lại GenericServlet và xây dựng chồng (overide) các phương thức mà bạn muốn sử dụng.

3.1.1.Phương thức khởi tạo init(): Phương thức này được gọi khi lần đầu tiên trình chủ Web Server nạp mã thực thi của servlet từ tập tin .class vào bộ nhớ và bắt đầu cho phép servlet hoạt động. Có thể dựa

Trang 14

Hệ thống trao đổi thông tin

vào phương thức này để khởi tạo các biến môi trường và giá trị ban đầu cần thiết cho quá trình thực thi servlet sẽ diễn ra tiếp theo.

3.1.2.Phương thức phục vụ service(): Sau khi phương thức init() đã hoàn tất, trình chủ Web Server sẽ triệu gọi đến

phương thức service(). Phương thức này được xem là trung tâm xử lý của servlet mà bạn cần cài đặt. Khi trình chủ nạp servlet vào bộ nhớ, phương thức init() chỉ có thể được gọi duy nhất một lần, trong khi phương thức service() có thể được triệu gọi nhiều lần ứng với mỗi yêu cầu servlet phát sinh từ client.

Trong phương thức service() bạn có thể sử dụng đối tượng tham số ServletRequest, ServletResponse để tiếp nhận dữ liệu từ trình khách chuyển lên và xuất kết quả trả lại trình khách.

3.1.3.Phương thức hủy destroy(): Khi servlet không còn dùng đến nữa hay hết thời gian quy định lưu trữ trong bộ

nhớ của Web Server, nó sẽ bị trình chủ giải phóng. Trước khi servlet bị huỷ phương thức destroy() sẽ được gọi. Phương thức này có thể dùng để dọn dẹp tài nguyên mà các biến chiếm giữ, đóng các kết nối mà phương thức init() đã mở.

3.1.4.Phương thức getServletConfig() và getServletInfo(): Hai phương thức này nhằm mục đích cung cấp thông tin. Phương thức

getServletConfig() giúp người sử dụng servlet có được đối tượng servletConfig chứa các thông tin khởi tạo từ môi trường ngoài đưa vào servlet. Phương thức getServletInfo() trả về một chuỗi thông tin mô tả ý nghĩa và mục đích của servlet.

3.2.Cơ chế hoạt đông: Để cho JSP, Servlet hoạt động phải cài đặt một môi trường tức là một trình chủ

Cơ chế hoạt động:

Web Server “hiểu Java”, nghĩa là trình chủ phải có khả năng thông dịch và thực thi được các đơn thể Java theo đặc tả của Sun. Cụ thể trong đề tài này là JRun. Trình khách gởi lệnh HTTP get hay post lên máy chủ yêu cầu dịch vụ Web (HTTP Web Server) cung cấp tài nguyên. Tài nguyên mà trình khách yêu cầu có thể là một tập tin. Tài nguyên cũng có thể là dạng thông tin động do Servlet sinh ra.

Nếu bạn yêu cầu tài nguyên là tập tin thì trình chủ sẽ dùng một chương trình servlet nhỏ gọi là File Servlet đọc nội dung tập tin sau đó trả về trình khách. Nếu bạn yêu cầu một trình servlet khác (user servlet) thực thi để sinh ra thông tin động thì JRun sẽ sử dụng Invoker Servlet triệu gọi servlet mà bạn mong muốn. Kết quả sinh ra sau đó cũng sẽ được gởi về trình khách tương tự như cơ chế đọc tài nguyên trên đĩa cứng mà file Servlet thực hiện.

Trang 15

Hệ thống trao đổi thông tin

Hình vẽ minh họa cơ chế hoạt động của Servlet trên máy chủ:

GET

File

Web Browser HTTP Web Service Invoker

POST

User

HTML

JRUN

3.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 tùy biến khi nhúng lệnh

Tóm lại, kết hợp cả JSP và Servlet là cách tốt nhất khi bạn chọn phát triển ứng Java trong JSP ở trình khách. Các thẻ này kết hợp cho các lệnh hay thẻ HTML để tạo ra kết xuất cuối cùng trả về trình khách. Mặc khác bạn không cần phải biên dịch trang JSP bằng tay vì trình chủ Web Server sẽ thực hiện công việc này hộ bạn. Như vậy viết trang jsp đơn giản hơn viết servlet và có thể tận dụng mọi khả năng của servlet bên trong trang jsp. Tuy nhiên, Servlet thường được xem như là những đối tượng thành phần (component) nhúng vào trình chủ. 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 về 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. dụng Web bằng Java về phía máy chủ.

4.JavaBean 4.1.Giới thiệu: JavaBean là thành phần đối tượng xây dựng từ ngôn ngữ Java, có thể làm việc và

JavaBean cho phép thao tác các đối tượng đã được tạo hoàn chỉnh một cách trực chạy trên mọi máy ảo Java. Thành phần JavaBean là một loại lớp Java đặc biệt. quan nhờ công cụ thiết kế nào đó.

4.2.Mô hình thành phần JavaBean: Các lớp định nghĩa bean được tham chiếu với tên là JavaBean Component hay bean

component hay chỉ là component. Các lớp này phải tuân theo yêu cầu của mô hình thành phần JavaBean: • Thành phần bean phải là lớp public.

Trang 16

Hệ thống trao đổi thông tin

• Thành phần bean phải có phương thức thiết lập mặc định (phương thức khởi tạo

không có đối số) mặc dù có thể có phương thức thiết lập khác nếu cần. • Thành phần bean bắt buộc phải ứng dụng giao diện java.io.Serializable hay java.io.Externalizable để duy trì trạng thái tồn tại thường trực. Có thể dùng JavaBean trong nhiều công cụ khác như MSVisual Basic, MSWord,... Nếu sử dụng JavaBean trong các công cụ khác thì đòi hỏi thành phần bean phải tồn tại lâu dài nhằm đảm bảo công cụ có thể tái lập các thuộc tính và hành vi nhất quán đối với trạng thái công cụ trước khi chúng được lưu.

• Thành phần bean thường có những thuộc tính kèm theo các phương thức truy cập có cấu trúc thích hợp cho phép công cụ thiết kế xem và cập nhật những thuộc tính một cách trực quan. • Thành phần bean có thể có các biến cố kèm theo những phương thức đăng kí

công cộng có cấu trúc thích hợp, cho phép thành phần bean bổ sung và loại bỏ đối tượng lắng nghe. Nếu thành phần bean đóng vai trò nguồn biến cố, nó phải cung cấp phương thức để đăng kí đối tượng lắng nghe.

Ba yêu cầu đầu tiên là yêu cầu tối thiểu của thành phần Bean, buộc phải tuân theo.

Hai yêu cầu sau còn phụ thuộc vào cách thức thực thi. Có thể viết thành phần Bean mà không dùng phương thức đăng kí biến cố. 4.3.Truy xuất đối tượng: Khi nhúng JavaBean vào trong JSP có ba thẻ chuẩn được định nghĩa trong JSP để kết hợp JavaBean: • : dùng định nghĩa Bean, khai báo phạm vi và định danh (id) nhận dạng Bean.

: dùng để đặt giá trị vào thuộc tính Bean. • : dùng để lấy về các giá trị của thuộc tính trong Bean.

5.JDBC (Java Database Connectivity) 5.1.Giới thiệu: Hầu như công việc lập trình ứng dụng mà JSP và Servlet thường thực hiện nhất đó

JDBC cung cấp tập hợp các lớp và và giao diện dùng để phát triển ứng dụng Java

JDBC giúp cho Java tiếp cận với các hệ quản trị cơ sở dữ liệu một cách dễ dàng là lưu trữ và truy xuất cơ sở dữ liệu (database), cung cấp thông tin cho trình khách. Việc truy xuất cơ sở dữ liệu trong JSP và Servlet dựa vào trình truy xuất JDBC theo chuẩn Java. và ứng dụng Web liên quan đến cơ sở dữ liệu. thông qua ngôn ngữ SQL.

5.2.Các kiểu JDBC: Có 4 kiểu JDBC sau: 5.2.1.Kiểu 1: JDBC sử dụng cầu nối ODBC (JDBC-ODBC Bridge) ODBC (Open Database Connectivity) là cách kết nối tổng quát nhất đến mọi hệ cơ sở dữ liệu thông qua trình quản lý ODBC của Windows. Mỗi hệ cơ sở dữ liệu sẽ cung cấp một trình điều khiển (driver) có khả năng đọc hiểu được cơ sở dữ liệu của chúng. Trình

Trang 17

Hệ thống trao đổi thông tin

điều khiển này sẽ được đăng kí với bộ quản lý ODBC. Tất cả các lệnh truy xuất cơ sở dữ liệu đều được thực thi bằng lệnh SQL. Java cung cấp cho bạn khả năng sử dụng JDBC để gọi ODBC. Bằng cách này bạn có thể kiểm soát được nhiều hệ quản trị CSDL khác nhau.

Java Application, Applet, Servlet

Mã Java

JDBC Driver

ODBC Mã đặc thù

Database Driver

CSDL

5.2.2.Kiểu 2:JDBC kết nối trực tiếp với các trình điều khiển cơ sở dữ liệu: JDBC kết nối trực tiếp với trình điều khiển đặc thù của mỗi hệ cơ sở dữ liệu (native

Java Application, Applet, Servlet Mã Java

JDBC Driver

Database Driver

Mã đặc thù

CSDL

database driver) mà không cần phải qua trung gian ODBC của Windows. Do đó kiểu kết nối này sẽ nhanh và hiệu quả hơn kiểu 1. Tuy nhiên phải có các trình điều khiển cơ sở dữ liệu đặc thù do những nhà phát triển cơ sở dữ liệu hay bên thứ 3 (third_party) cung cấp.

Trang 18

Hệ thống trao đổi thông tin

5.2.3.Kiểu 3: JDBC kết nối thông qua các ứng dụng mạng trung gian: Theo mô hình lập trình phân tán, ứng dụng trung gian (middle_ware) trên máy chủ sẽ chịu trách nhiệm kết nối với cơ sở dữ liệu. Nhiệm vụ của trình khách là sử dụng những trình điều khiển JDBC gọn nhẹ, có khả năng giao tiếp với ứng dụng trung gian qua Internet để truy vấn dữ liệu.

Java Application, Applet, Servlet Mã Java

JDBC Driver

internet

Java Middle_Ware Mã Java

Java Native Driver

CSDL

Java Application, Applet, Servlet

Mã Java

JDBC Driver

internet

Java Native Driver Mã Java

5.2.4.Kiểu 4:JDBC kết nối thông qua các trình điều khiển đặc thù ở xa: Kiểu này cho phép máy khách sử dụng các trình điều khiển gọn nhẹ kết nối vào trình điều khiển cơ sở dữ liệu đặc thù (thuần Java) trên máy chủ từ xa thông qua mạng Internet.

CSDL

Trang 19

Hệ thống trao đổi thông tin

5.3.Truy xuất cơ sở dữ liệu: Hầu hết các ứng dụng JDBC đều theo cùng các bước cơ bản sau: 5.3.1.Kết nối với cơ sở dữ liệu: Để thiết lập kết nối, JDBC đòi hỏi 2 yếu tố là trình điều khiển (tương ứng với các

kiểu kết nối) và thông tin để kết nối (địa chỉ máy chủ, tên tài khoản đăng nhập, mật khẩu...). Đối với cơ chế truy xuất thông qua ODBC, sử dụng trình điều khiển do Sun cung cấp mang tên JdbcOdbcDriver. String drivername = “sun.jdbc.odbc.JdbcOdbcDriver”; Nạp và khởi tạo trình điều khiển: Class.forName(drivername).new Instance();

Connection con = DriverManager.getConnection(connectionURL);

Đối với trình điều khiển JDBC-ODBC thì chuỗi kết nối:jdbc:odbc String connectionURL = “jdbc:odbc:MyData”; Gọi đối tượng Connection để thực hiện kết nối đến cơ sở dữ liệu 5.3.2.Truy vấn dữ liệu: Dùng các câu lệnh truy vấn SQL (sqlQuery). JDBC truy vấn dữ liệu dựa vào đối

tượng Statement (dùng thực thi câu lệnh SQL). Truy vấn thành công thì Statement sẽ trả về kết quả là tập dữ liệu truy vấn có kiểu ResultSet.

Statement stmt = null; ResultSet rs = null; stmt = con.createStatement(); rs = stmt.excuteQuery(sqlQuery);

5.3.3.Trích xuất dữ liệu: Sau khi nhận được kết quả trả về là tập ResultSet, gọi phương thức next() để đi đến từng mẩu tin và in ra kết quả của các cột. Dùng phương thức getString(column) để lấy dữ liệu của các cột (các cột được đánh số thứ tự từ 1).

5.3.4.Đóng kết nối: Một khi bạn làm việc với các đối tượng ResultSet, Connection, Statement thì dùng phương thức close() để giải phóng tất cả các liên kết đến các nguồn.

Trang 20

Hệ thống trao đổi thông tin

CHƯƠNG III: KIẾN TRÚC HOẠT ĐỘNG VÀ THIẾT KẾ HỆ THỐNG

I.KIẾN TRÚC HỆ THỐNG

Hệ thống hoạt động trong mô hình 3 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 thể hiện như sau: Browser Web Server Data Store

Java JSP HTML JavaBean Java Object Java Object Java Object Netscape IE

Client Tier

Middle Tier

Data tier

Kiến trúc hoạt động này có tính linh động cao nên khi cần thay đổi hay nâng cấp có

thể thực hiện dễ dàng. Tính linh động thể hiện ở chỗ : các thành phần Bean có thể thêm hay thay đổi khi cần mà không ảnh hưởng đến các thành phần khác.

II.THIẾT KẾ TỔNG QUÁT

Dựa vào yêu cầu của bài toán, ta nhận thấy hệ thống xây dựng nhằm phục vụ cho 2 nhóm người sau:

• Người quản trị hệ thống (các giảng viên). • Người sử dụng (các sinh viên).

1.Quản trị hệ thống 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 hoạt

động của hệ thống. Mỗi quản trị hệ thống sẽ được cấp một username và password để thực hiện những chức năng cần thiết của mình. Tuy nhiên trong ứng dụng này quản trị có thứ bậc, cụ thể chia làm 3 nhóm: người quản trị cao nhất có quyền kiểm soát toàn bộ hệ thống, nhóm thứ 2 là người quản trị (giảng viên) chỉ được quyền kiểm soát hoạt động của ứng dụng trong phạm vi (môn học) mà mình trực tiếp giảng dạy, nhóm 3 là các trợ giảng .

Nếu quá trình đăng nhập thành công thì quản trị hệ thống có những chức năng sau:

• Chức năng của quản trị đối với quản trị: + Thay đổi những thông tin của quản trị.

Trang 21

Hệ thống trao đổi thông tin

+ Thêm quản trị. + Xoá bỏ quản trị. • Chức năng của quản trị đối với môn học:

+ Thêm vào môn học mới. + Xoá môn học. • Chức năng của quản trị đối với các chủ đề:

+ Thêm vào các chủ đề mới. + Xóa các chủ đề. + Cập nhật lại chủ đề. • Chức năng của quản trị đối với các câu hỏi và trả lời:

+ Thêm vào câu trả lời. + Xoá các câu hỏi và trả lời. + Di chuyển các câu hỏi và trả lời vào các chủ đề thích hợp.

2.Người sử dụng Người sử dụng là những người vào hệ thống để trao đổi kiến thức. Họ có thể có các

hành động sau:

• Tìm kiếm các chủ đề mà mình cần để tham khảo. • Đưa ra những câu hỏi mà mình chưa giải đáp được hay các đoạn chương trình mà mình chưa hiểu bằng cách gửi kèm theo câu hỏi.

• Trả lời các câu hỏi mà mình biết (có thể kèm theo nhiều nhất là 3 file). • Ngoài ra các câu hỏi hay trả lời của người sử dụng có thể được gởi trực tiếp đến một địa chỉ email của giảng viên.

III.CƠ CHẾ HOẠT ĐỘNG

Hệ thống có các cơ chế hoạt động như sau: • Đầu tiên bạn gõ địa chỉ URL để đến trang chủ của hệ thống (trang

Mainpage.jsp). Nơi đây bạn có thể chọn một trong các hướng để vào tham khảo các chủ đề. Đối với người quản trị họ sẽ nhấp vào liên kết Admin để thực hiện các công việc cần thiết sau khi đã được chấp nhận với username và password gõ vào ở trang Login.

• Sau khi lựa chọn được hướng cần vào bạn sẽ vào trang Topic.jsp. Ở đây bạn sẽ thấy các môn học (subject) chính của hướng. Và ở trang này bạn click chuột vào tên của từng môn học để có thể tham khảo các chủ đề hiện có trong các môn học hoặc thêm vào các đề tài thảo luận mới ứng với các chủ đề (topic) của từng môn học. Các đề tài bạn thêm vào được gọi là các question. Để xem được các câu hỏi của các chủ đề bạn chỉ việc nhấn vào tên của chủ đề và sẽ hiện ra danh sách các câu hỏi thảo luận. • Nếu muốn xem nội dung của một câu hỏi đã được mọi người thảo luận

trước đó như thế nào, bạn có thể click chuột vào tên của câu hỏi. Nội dung của câu hỏi sẽ được hiển thị ở trang Question.jsp cùng với các câu trả lời (reply) ứng các câu hỏi đó. Ở trang này bạn có thể thêm vào câu trả lời nếu bạn có giải đáp khác.

Trang 22

Hệ thống trao đổi thông tin

• Để xem nội dung của câu trả lời bạn nhấp chuột vào tên của nó và sẽ được trang Viewreply.jsp hiển thị. Đối với những file kèm theo (nếu có) bạn có thể xem bằng cách nhấn trực tiếp vào tên của file.

• Từ trang Topic.jsp và trang Question.jsp bạn có thể chọn nút “Câu hỏi mới” hay “SV trả lời” để tạo ra câu hỏi mới hay trả lời tới trang QuesOrReply.jsp. Trang này sẽ cho phép bạn nhập vào thông tin về bạn và nội dung của đề tài mà bạn muốn thêm vào. • Để tìm kiếm một đề tài xem đã có ai thảo luận chưa, bạn nhập vào một

chuỗi thông tin và nhấn nút “Tìm kiếm” ở trang Topic. Kết quả của việc tìm kiếm sẽ được hiển thị ở trang Search.jsp.

Khi một danh sách đề mục khá dài, để hiển thị sử dụng kĩ thuật phân trang (paging)

chỉ cho phép hiển thị 5 đề mục trên một trang. Ngoài ra sẽ hiển thị số trang là 3 trên màn hình, nếu còn dài hơn sẽ có nút nhấn tiếp theo hiển thị 3 trang tiếp theo. Sau khi đã tham khảo qua cách hoạt động của hệ thống thì việc tiếp theo là xây

dựng ứng dụng.Và bắt đầu với việc thiết kế bảng cơ sở dữ liệu để lưu thông tin về các đề tài thảo luận trong trang Web.

IV.THIẾT KẾ DỮ LIỆU

Quá trình thiết kế dữ liệu là quá trình phân tích các yêu cầu của người sử dụng để xây dựng cơ sở dữ liệu cho hệ thống. Kết quả của quá trình này là mô hình cơ sở dữ liệu hoàn chỉnh được dùng cho hệ thống. Hệ thống được thiết kế để phục vụ cho các đối tượng sau đây: • Người sử dụng: là những người có nhu cầu trao đổi và tìm kiếm kiến thức thông qua hệ thống. • Nhà quản trị: là những người sẽ quản lý hệ thống và sẽ cung cấp các kiến thức cần thiết tổng quát đối với các câu hỏi mà sinh viên đặt ra. Dữ liệu được lưu dưới dạng phân cấp: • Đối với các chủ đề:

- Các chuyên ngành trong khoa. - Các môn học trong từng ngành. - Các phần chính trong môn học. - Các chủ đề. - Các câu hỏi trong chủ đề. - Các câu trả lời ứng với từng câu hỏi. • Đối với quản trị:

- Root: quản trị cấp cao nhất có quyền kiểm soát toàn hệ thống. - Quản trị của từng chuyên ngành. - Quản trị của từng bộ môn (giáo viên). - Quản trị của một chủ đề nào đó(trợ giảng). Ứng với hai đối tượng trên, dữ liệu sẽ được thiết kế thành 2 bảng dữ liệu mang tên CSDL và ADMIN như sau:

Trang 23

Hệ thống trao đổi thông tin

Bảng dữ liệu CSDL:

STT GHI CHÚ MÔ TẢ

Khoá chính Khoá duy nhất cho mỗi đề mục Khác rỗng THUỘC TÍNH Id Ten KIỂU Number Text 1 2

ParentId Number Khác rỗng 3

Khác rỗng Khác rỗng Nguoigoi Ngaygoi Text Date 4 5

Khác rỗng Khác rỗng Noidung Socauhoi Text Number

6 7

Tiêu đề cần thảo luận của đề mục Khóa của đề mục cha (0 nếu là đề mục gốc) Tên của người tạo ra đề mục Ngày gởi bài (ngày tạo đối với chủ đề) Nội dung thảo luận Lớn hơn hay bằng 0 nếu là chủ đề và cũng chính là câu hỏi của chủ đề. Bằng -1 nếu là câu hỏi. Bằng -2 nếu là câu trả lời của sinh viên. Bằng -3 nếu là câu trả lời của giảng viên. Có thể rỗng Các file kèm theo câu hỏi hay 8 File Text câu trả lời Có thể rỗng Mã số sinh viên của người gởi 9 MSSV Text

Có thể rỗng Địa chỉ mail của người gởi 10 Email Text

Bảng dữ liệu ADMIN:

STT KIỂU GHI CHÚ MÔ TẢ THUỘC TÍNH

Username Password Phamvi Text Text Number 1 2 3 Khoá chính Username của người quản trị Password của người quản trị Khác rỗng Phạm vi quản lý của người Khác rỗng quản trị

Trang 24

Hệ thống trao đổi thông tin

Ví dụ về dữ liệu được lưu trữ:

Bảng CSDL:

Ten

Id 1 2 3 4 5 Toán tin ứng dụng Đại số Đồ hoạ Java Đường thẳng ParentId 0 0 1 1 3 ... ... … … … …

Bảng ADMIN:

Username AAA BBB CCC DDD Password Aaa Bbb Ccc Ddd Phamvi 0 1 2 3

Được thể hiện theo sơ đồ cây sau:

AAA

Root 0

BBB CCC

Đại số 2 Toán tin ứng dụng 1

DDD

Java 4 Đồ họa 3

Đường thẳng 5

Trang 25

Hệ thống trao đổi thông tin

Đối với quản trị AAA có Phamvi là 0 sẽ là người quản trị cao nhất có thể quản lý

Trong sơ đồ Toán tin ứng dụng và Đại số (các hướng) có ParentId là 0 nên nằmdưới nút gốc (có id là 0). Còn Java và Đồ hoạ ( các môn học) có ParentId là 1 nên nằm dưới Toán tin ứng dụng. Tương tự cho Đường thẳng (chủ đề) nằm dưới Đồ họa. toàn bộ hệ thống. BBB (trưởng khoa) có Phamvi là 1 ứng với Id của Toán tin ứng dụng nên có quyền quản lý chủ đề và các quản trị khác từ nút 1 trở xuống. Tương tự cho CCC (giáo viên bộ môn) có quyền quản lý từ nút 2 trở xuống. Còn đối với DDD (trợ giảng) chỉ có quyền quản lý chủ đề Đường thẳng.

V.THIẾT KẾ XỬ LÝ

Phần thiết kế xử lý này sẽ phân tích các hoạt động mà các đối tượng dùng để tương tác lên hệ thống. Được chia làm hai phần chính:

1. Đối với người sử dụng Tương tác của người dùng lên hệ thống ứng với các xử lý sau: 1.1.Xử lý:hiển thị danh sách các môn học trong từng ngành: Xử lý này được mô tả như sau:

• Tiếp nhận yêu cầu hiển thị danh sách các môn học của từng ngành. • Lấy id của các ngành từ yêu cầu hiển thị. • Xuất ra danh sách các môn học của ngành đã chọn. 1.2.Xử lý:hiển thị các chủ đề và câu hỏi của các môn học: Xử lý này được mô tả như sau:

• Tiếp nhận yêu cầu hiển thị các chủ đề và câu hỏi của từng môn học. • Lấy id của môn học từ yêu cầu hiển thị. • Xuất ra danh sách các chủ đề và câu hỏi của môn học đã chọn.

1.3.Xử lý:hiển thị nội dung của câu hỏi và tên của các câu trả lời của nó: Xử lý này được mô tả như sau:

• Tiếp nhận yêu cầu hiển thị nội dung của câu hỏi. • Lấy id của câu hỏi từ yêu cầu hiển thị. • Xuất ra nội dung của câu hỏi, tên của các file kèm theo nếu có và tên của các câu trả lời ứng với câu hỏi đó.

1.4.Xử lý:hiển thị nội dung của câu trả lời: Xử lý này được mô tả như sau:

• Tiếp nhận yêu cầu hiển thị nội dung của câu trả lời. • Lấy id của câu trả lời từ yêu cầu hiển thị. • Xuất ra nội dung của câu trả lời, tên của các file kèm theo nếu có.

1.5.Xử lý:hiển thị nội dung của file kèm theo:

Trang 26

Hệ thống trao đổi thông tin

Xử lý này được mô tả như sau:

• Tiếp nhận yêu cầu hiển thị nội dung của file kèm theo. • Xuất ra nội dung của file kèm theo.

1.6.Xử lý:hiển thị các chủ đề và câu hỏi trong các trang khác: Xử lý này được mô tả như sau:

• Tiếp nhận yêu cầu hiển thị các chủ đề và câu hỏi trong các trang khác. • Lấy chỉ số trang cần hiển thị. • Xuất ra danh sách của các chủ đề và câu hỏi trong đó 1.7.Xử lý:hiển thị những môn học của những ngành khác: Xử lý này được mô tả như sau:

• Tiếp nhận yêu cầu hiển thị các môn học của những ngành khác. • Lấy id của ngành cần chuyển đến. • Xuất ra danh sách của các môn học trong ngành đã chọn.

1.8.Xử lý:tìm kiếm các chủ đề và câu hỏi: Xử lý này được mô tả như sau:

• Tiếp nhận yêu cầu tìm kiếm các chủ đề và câu hỏi. • Lấy chuỗi nhập vào để tìm kiếm trong cơ sở dữ liệu. • Xuất ra danh sách của các chủ đề và câu hỏi tìm được.

1.9.Xử lý:hiển thị câu hỏi từ một số ngày trước: Xử lý này được mô tả như sau:

• Tiếp nhận yêu cầu hiển thị câu hỏi từ một số ngày trước. • Lấy số ngày trước để hiển thị. • Xuất ra danh sách của các câu hỏi.

1.10.Xử lý:tạo câu hỏi mới: Xử lý này được mô tả như sau:

• Tiếp nhận yêu cầu tạo câu hỏi. • Lấy id của chủ đề chứa câu hỏi . • Cho phép nhập vào nội dung của câu hỏi mới. • Lấy các nội dung nhập vào đưa vào cơ sở dữ liệu.

1.11.Xử lý:gởi mail: Xử lý này được mô tả như sau: • Cho phép người dùng gởi mail.

1.12.Xử lý:hiển thị nội dung các chủ đề đã xem trước đó: Xử lý này được mô tả như sau:

• Tiếp nhận yêu cầu hiển thị các chủ đề đã xem. • Lấy id của chủ đề cần xem. • Xuất ra danh sách các chủ đề con và câu hỏi của nó.

Trang 27

Hệ thống trao đổi thông tin

1.13.Xử lý:tạo câu trả lời của sinh viên: Xử lý này được mô tả như sau:

• Tiếp nhận yêu cầu tạo câu trả lời. • Lấy id của câu hỏi cần trả lời. • Cho phép nhập vào nội dung câu trả lời. • Đưa nội dung đã nhập vào cơ sở dữ liệu.

1.14.Xử lý:tạo câu trả lời của giảng viên: Xử lý này được mô tả như sau:

• Tiếp nhận yêu cầu tạo câu trả lời. • Lấy id của câu hỏi cần trả lời. • Kiểm tra sự đăng nhập của giảng viên. • Cho phép nhập vào nội dung câu trả lời. • Đưa nội dung đã nhập vào cơ sở dữ liệu.

Người sử dụng thực hiện các chức năng thông qua các trang sau:

• Mainpage: trang chủ. • Topic: hiển thị danh sách các môn học, chủ đề hay các câu hỏi. • Question: hiển thị nội dung câu hỏi và danh sách các câu trả lời. • Viewreply: hiển thị nội dung câu trả lời và danh sách các file kèm theo (nếu có).

• QuesOrReply: dùng để tạo câu hỏi và câu trả lời • Search: hiển thị danh sách tìm kiếm.

Trang 28

o e h t

n i t p ậ T

m è k

m e X

y l p e R w e i V

i ờ l ả r T

i ờ l ả r t

n ê i v h n i S

i ỏ h u â C

n o i t s e u Q

i ờ l ả r t

n ê i v g n ả i G

i ỏ h u â C

r

h c r a e S

y l p e R O s e u Q

ề đ ủ h C

c i p o T

i ỏ H

ì

m ế i k m T

Hệ thống trao đổi thông tin

: ý l

e g a p n i a

ử x ồ đ ơ S

M

Trang 29

Hệ thống trao đổi thông tin

2. Đối với quản trị Tương tác của quản trị lên hệ thống ứng với các xử lý sau: 2.1.Xử lý:đăng nhập vào quản trị: Xử lý này được mô tả như sau:

• Tiếp nhận yêu cầu đăng nhập vào quản trị.. • Lấy username và password của người nhập. • Kiểm tra và so sánh với username, password đã có trong cơ sở dữ liệu. • Định phạm vi hoạt động của người quản trị. • Hiển thị các chủ đề và câu hỏi theo dạng cây và các chức năng quản trị ứng với phạm vi cho phép.

2.2.Xử lý:thay đổi mật khẩu của quản trị: Xử lý này được mô tả như sau:

• Tiếp nhận yêu cầu thay đổi mật khẩu. • Lấy các thông tin cần thay đổi. • Cập nhật thông tin vừa thay đổi vào cơ sở dữ liệu.

2.3.Xử lý:thêm quản trị: Xử lý này được mô tả như sau:

• Tiếp nhận yêu cầu thêm quản trị.. • Yêu cầu các thông tin cần thêm vào. • Đưa thông tin vừa nhập vào cơ sở dữ liệu.

2.4.Xử lý:xoá quản trị: Xử lý này được mô tả như sau:

• Tiếp nhận yêu cầu xóa quản trị.. • Lấy danh sách các quản trị cần xóa. • Xoá các quản trị. 2.5.Xử lý:xóa các chủ đề: Xử lý này được mô tả như sau:

• Tiếp nhận yêu cầu xóa các chủ đề. • Lấy danh sách các chủ đề cần xóa. • Xoá các chủ đề.

2.6.Xử lý:chuyển các chủ đề: Xử lý này được mô tả như sau:

• Tiếp nhận yêu cầu chuyển các chủ đề. • Lấy id của chủ đề cần chuyển và chủ đề cần chuyển tới. • Cập nhật lại hai chủ đề trên.

2.7.Xử lý:thay đổi thông tin của chủ đề:

Trang 30

Hệ thống trao đổi thông tin

Xử lý này được mô tả như sau:

• Tiếp nhận yêu cầu thay đổi các chủ đề. • Lấy id, tên mới của chủ đề cần thay đổi. • Cập nhật lại chủ đề trên.

2.8.Xử lý: kết thúc việc đăng nhập của quản trị: Xử lý này được mô tả như sau

• Tiếp nhận yêu cầu kết thúc việc đăng nhập của quản trị. • Xoá các thông tin đăng nhập của quản trị.

Người quản trị thực hiện các chức năng thông qua các trang sau:

• Edit: hiển thị cây thư mục của hệ thống. • EditTopic: cho phép thêm, xóa, sửa, chuyển chủ đề. • EditAdmin: cho phép thêm, xóa, đổi mật khẩu của người quản trị.

Sơ đồ xử lý:

Thoát

Phần chủ đề EditTopic

Đăng nhập Mainpage Edit

Phần quản trị EditAdmin

Thoát

Trang 31

Hệ thống trao đổi thông tin

CHƯƠNG IV: TRIỂN KHAI CÀI ĐẶT

Tầng middle trong mô hình có nhiệm vụ là cầu nối dữ liệu giữa tầng client và tầng

I.CÁC THÀNH PHẦN JAVABEAN data. Nó giao tiếp với tầng data để truy xuất cơ sở dữ liệu cho tầng client. Công nghệ JavaBean sẽ được sử dụng để cài đặt cho tầng này. Mỗi đơn vị dữ liệu sẽ được ánh xạ thành một đối tượng Bean. Như vậy ta sẽ xây dựng được ba lớp trong đó hai lớp đầu tiên ứng với hai bảng dữ liệu, còn lớp còn lại giữ vai trò chính chứa các phương thức cần thiết để truy xuất dữ liệu. Ba lớp được xây dựng :

1.Lớp Topic Lưu các thông tin về một môn học, chủ đề, câu hỏi và câu trả lời. Gồm các thành

phần sau: Tên dữ liệu Kiểu dữ liệu String id

String String String String String String name parentId sender date content numQuestion

boolean key

boolean flagNode Mô tả Xác định id của mỗi môn học, chủ đề, câu hỏi, trả lời. Xác định tên của mỗi chủ đề. Xác định id của chủ đề cha. Xác định tên người gởi câu hỏi hay câu trả lời. Xác định ngày tháng gởi bài hay ngày tạo chủ đề. Xác định nội dung của câu hỏi hay câu trả lời. Xác định loại: chủ đề nếu >= 0 và là số câu hỏi của chủ đề, -1 là câu hỏi, -2 là câu trả lời của sinh viên, -3 là câu trả lời của giáo viên. Xác định việc xuất hiện (=true) hay không xuất hiện (=false) trên cây chủ đề. Xác định việc mở (true) hay đóng (false) của chủ đề để xuất hay không xuất các chủ đề con.

2.Lớp Admin Lưu thông tin về người quản trị và phạm vi quản lý của quản trị. Bao gồm các

thành phần sau:

Trang 32

Hệ thống trao đổi thông tin

Mô tả

Kiểu dữ liệu String String String Tên dữ liệu username password scope Xác định tên đăng nhập của quản trị. Xác định mật khẩu của quản trị. Xác định phạm vi quản lý của quản trị.

3.Lớp HelpDesk Là lớp chính chứa các thành phần và chứa các phương thức cần thiết trong việc

truy xuất cơ sở dữ liệu. Các thành phần chính:

Kiểu dữ liệu Tên dữ liệu

action title[] String String

countTitle count int int

topic[] Topic

current[] filename[] countFile numberPage Topic String int int

page flag int int

boolean login

int signAdmin

nameNode[] idNode[] flagNode[] countNode countAdmin String String String int int

admin[] Admin Mô tả Xác định các hành động trong thao tác xử lý. Mảng chứa các tiêu đề dẫn đến chủ đề hiện hành. Biến đếm số chủ đề trên tiêu đề. Biến đếm các chủ đề con của chủ đề hiện hành. Mảng chứa các chủ đề con, câu hỏi, trả lời của mục hiện hành. Đối tượng hiện hành là môn học , chủ đề, câu hỏi hay câu trả lời. Mảng chứa tên của các file kèm theo. Biến đếm số file kèm theo, nhiều nhất là = 3. Biến đếm số trang hiện có trong mục hiện hành Xác định trang hiện hành. Xác định tình trạng của mục hiện hành. Bằng 0 nếu là môn học, 1 nếu là chủ đề, 2 nếu là câu hỏi của các ngày trước đó đến nay. Thông báo cho biết việc đăng nhập vào quản trị (true) hay thoát khỏi quản trị (false). Dấu hiệu báo cho biết việc chưa thực hiện chức năng quản trị (-1), thực hiện thành công (1) hay thực hiện thất bại (0). Mảng chứa tên của các nút trên cây chủ đề. Mảng chứa id của các nút trên cây. Biến đếm số nút trên cây. Biến đếm số người quản trị thuộc quyền quản lý của người quản trị hiện hành. Mảng chứa các thông tin về các quản trị thuộc quyền quản lý của quản trị hiện hành.

Trang 33

Hệ thống trao đổi thông tin

Các phương thức trong lớp:

• connected(): xác định xem đã thực hiện kết nối với dữ liệu hay chưa. • makeConnect(): thực hiện việc kết nối với cơ sở dữ liệu. • getResultSet(String query): trả về kết quả của lệnh truy vấn dữ liệu. • • findCurrent(String idTemp): tìm mục ứng với id truyền vào. findTopic(String idTemp): tìm các mục con ứng với id truyền vào và thực hiện việc phân trang đối với dữ liệu truy vấn được. • appendQuesOrReply(String numQuestionTemp): thêm vào câu hỏi hay câu trả lời dựa vào dấu hiệu nhận biết numQuestionTemp. • updateNumQuestion(int num): cập nhật lại số câu hỏi của các chủ đề cha khi thêm vào câu hỏi mới. • search(String namesearch, String option): tìm kiếm danh sách chuỗi namesearch

• trong cơ sở dữ liệu theo option là And hay Or với danh sách tìm được là các chủ đề cao nhất. fatherSearch(String fatherId): hàm đệ quy nhằm tìm ra chủ đề cao nhất chứa chủ đề có parentId là fatherId. lastDay(): tìm các câu hỏi bắt đầu từ ngày trước (biến last) đến ngày hiện hành và thực hiện việc phân trang đối với dữ liệu tìm được.

• upload(String idTemp): trích xuất các thuộc tính để thêm vào dữ liệu và nội dung của file kèm theo (nhiều nhất là 3 file) để tạo file tải lên trình chủ ứng với mục có id là idTemp. • compareLogin(String usernameTemp, String passwordTemp): kiểm tra việc đăng

nhập của quản trị với username và password truyền vào. requestData(): truy xuất tất cả dữ liệu trong bảng CSDL.

• • openNode(String idTemp): mở chủ đề ứng với idTemp để xuất ra các mục con. • closeNode(String idTemp): đóng chủ đề ứng với idTemp để các mục con của nó không xuất hiện trên cây.

• displayTree(String idTemp, String layerTemp): hiển thị cây chủ đề với nút gốc có id là idTemp và hiển thị các nút con của nó khi các nút con có trường key bằng true. • deleteNode(String idx[]): xoá tất cả các mục ứng với danh sách được chọn để xóa idx, cập nhật lại số câu hỏi của các chủ đề cha của các mục cần xóa. • create(String newName, String fatherId): tạo ra chủ đề mới có tên newName trong chủ đề có id là fatherId.

• change(String itemId, String destinateId): chuyển mục có id là itemId sang chủ đề có id là destinateId. Trong đó chủ đề nhận chủ đề,câu hỏi còn câu hỏi thì nhận câu trả lời. • newName(String idTemp, String nameTemp): đổi tên chủ đề có id là idTemp thành

• tên mới là newName. findListAdmin(): tìm danh sách các quản trị dưới quyền quản lý của quản trị hiện hành (đang đăng nhập vào hệ thống). • addAdmin(String nameTemp, String passwdTemp, String sopeTemp): thêm vào

một quản trị mới có username là nameTemp, password là passwdTemp và phạm vi quản lý là scopeTemp.

Trang 34

Hệ thống trao đổi thông tin

• delAdmin(String idx[]): xóa các quản trị theo danh sách idx đã chọn trong phạm vi quản lý của mình. • changePassword(String userTemp, String newPwd): đổi password của quản trị có username là userTemp thành newPwd.

Tầng client được triển khai bằng tập hợp các trang jsp. Các trang này sẽ thể hiện

Ở tầng này, mỗi trang jsp sẽ được thể hiện bằng một màn hình ở Web Browser.

II.TRIỂN KHAI CÁC TRANG JSP thao tác xử lý. Nó là trung gian cho giao tiếp giữa người sử dụng và hệ thống. Chúng lấy thông tin từ người dùng, trao đổi với lớp đệm để thực hiện những chức năng cần thiết.

Triển khai trang Mainpage.jsp: Trang Mainpage.jsp thực hiện một các chức năng chính:

• Cho phép quản trị đăng nhập vào hệ thống để thực hiện chức năng quản trị. • Cho phép xem các môn học trong các hướng chính của Khoa. Trang Maipage được hiển thị ở Browser như sau:

Triển khai trang Topic.jsp: Khi lần đầu tiên vào, trang Topic.jsp sẽ hiển thị danh sách các môn học ứng với từng hướng, số câu hỏi trong môn học và ngày tạo nên nó. Được thể hiện như sau:

Trang 35

Hệ thống trao đổi thông tin

Sau khi nhấp vào liên kết của môn học sẽ hiển thị các chủ đề hay câu hỏi có trong

môn học. Được thể hiện như sau:

Trang 36

Hệ thống trao đổi thông tin

Ở trang này khi người dùng nhấp vào liên kết ở phần câu hỏi thì sẽ chuyển điều

khiển đến trang Question.jsp. Còn khi nhấn vào nút “Câu hỏi mới” sẽ chuyển hướng đến trang QuesOrReply.jsp để thêm vào câu hỏi mới trong chủ đề hiện hành. Ngoài ra hệ thống cũng dùng chức năng của OutLook để tiến hành việc gởi mail. Ngoài ra trang này cũng cung cấp chức năng để tìm kiếm các chủ đề cần thiết và

chuyển hướng điều khiển đến trang Search.jsp. Triển khai trang Question.jsp: Trang Question sẽ hiển thị nội dung của câu hỏi và danh sách các câu trả lời của

câu hỏi nếu có. Được thể hiện như sau:

Trang Question có các chức năng sau: • Khi nhấn nút “SV trả lời” sẽ cho phép sinh viên trả lời câu hỏi và chuyển đến trang QuesOrReply.jsp. • Khi nhấn nút “GV trả lời” sẽ vào trang Login.jsp để kiểm tra người sử dụng có phải là giáo viên hay không.

• Sử dụng OutLook của Microsoft để tiến hành việc gởi mail. • Khi nhấp vào danh sách câu trả lời sẽ chuyển đến trang ViewReply.jsp.

Triển khai trang ViewReply.jsp: Trang này sẽ hiển thị nội dung của câu trả lời và danh sách các tập tin kèm theo nếu có. Khi nhấn nút xem sẽ hiển thị nội dung của tập tin kèm theo. Còn khi nhấn nút Thoát sẽ quay trở lại trang Question. Trang này được thể hiện trên Browser như sau:

Trang 37

Hệ thống trao đổi thông tin

Triển khai trang QuesOrReply.jsp: Trang này cung cấp chức năng thêm vào câu hỏi mới cho chủ đề hiện hành. Khi người dùng nhấn nút “Đồng ý” sẽ nhận thông tin do người dùng nhập vào và hiển thị lại trang Topic.jsp.

Được thể hiện như sau:

Trang 38

Hệ thống trao đổi thông tin

Được thể hiện trên Browser như sau:

Trang QuesOrReply.jsp còn có chức năng hiển thị lại nội dung câu hỏi và tạo ra câu trả lời cho câu hỏi đó của sinh viên và giáo viên. Khi nhấn nút “Đồng ý” sẽ mang dữ liệu do người dùng nhập vào cơ sở dữ liệu và hiển thị ở trang Question.jsp.

Trang này được thể hiện trên Browser như sau: Triển khai trang Search.jsp: Trang Searh có chức năng hiển thị kết quả của việc tìm kiếm. Khi nhấn nút “Thoát” sẽ quay lại trang Topic.jsp. Còn khi người dùng nhấp vào liên kết của chủ đề sẽ hiển thị ở trang Topic tương ứng với chủ đề đó. Hoặc người dùng nhấp vào liên kết ở phần câu hỏi sẽ chuyển sang trang Question.jsp.

Trang 39

Hệ thống trao đổi thông tin

Triển khai trang Login.jsp: Trang Login.jsp cho phép quản trị đăng nhập và hệ thống, ghi nhận các thông tin đăng nhập và kiểm tra việc đăng nhập.

Sau khi hoàn tất công việc, trang này sẽ chuyển đến trang Admin.jsp. Triển khai trang Admin.jsp: Trang này gồm hai phần chính là phần thể hiện cây chủ đề ứng với trang Tree.jsp

và phần thực hiện các chức năng của quản trị ứng với trang Edit.jsp. Trang Tree.jsp có chức năng xóa các nút trên cây và hiển thị lại cây. Trang Edit.jsp có các nút “Quản trị” để chuyển hướng sang trang EditAdmin.jsp và

“Chủ đề” chuyển sang trang EditTopic.jsp. Khi nhấn nút “Thoát” để kết thúc việc đăng nhập của quản trị và quay trở lại trang Mainpage.jsp.

Được thể hiện trên Browser như sau:

Trang 40

Hệ thống trao đổi thông tin

Triển khai trang EditTopic.jsp Trang EditTopic.jsp có các chức năng thêm, chuyển, và đổi tên của chủ đề trên cây. Khi nhấn Submit thì các dữ liệu quản trị nhập vào sẽ được cập nhật vào cơ sở dữ liệu và sẽ thông báo quá trình thực hiện thành công hay thất bại. Nhấn liên kết “Xem cây” để xem kết quả vừa làm được trên cây.

Được thể hiện trên browser ở phía phải của trang Admin.jsp: Ngoài ra có thể chuyển sang thực hiện chức năng đối với quản trị khi nhấn nút “Quản trị” hoặc kết thúc việc đăng nhập của quản trị khi nhấn “Thoát” để trở về trang Mainpage.

Trang 41

Hệ thống trao đổi thông tin

Triển khai trang EditAdmin.jsp: Trang EditAdmin.jsp có các chức năng thêm, xóa, đổi mật khẩu của chính quản trị

Ngoài ra có thể chuyển sang thực hiện chức năng đối với các chủ đề khi nhấn nút

đó hay của các quản trị thuộc quyền quản lý của quản trị đang đăng nhập. Khi nhấn Submit thì dữ liệu nhập vào của quản trị sẽ được cập nhật vào cơ sở dữ liệu và sẽ được thông báo thành công hay thất bại. ”Chủ đề” hay kết thúc việc đăng nhập của quản trị khi nhấn “Thoát” trở lại trang Mainpage.jsp. Được thể hiện ở bên phải của trang Admin.jsp như sau:

Trang 42

Hệ thống trao đổi thông tin

III.HẠN CHẾ VÀ HƯỚNG PHÁT TRIỂN

1.Hạn chế Quá trình thiết kế hệ thống đã thành công tuy nhiên chưa hoàn thiện được tất cả các

chức năng cần thiết cho mô hình. Như vậy hệ thống còn có các hạn chế như sau:

• Việc quản lý người sử dụng chưa được chặt chẽ. • Phần thể hiện giao diện chưa hoàn chỉnh và phù hợp. • Hệ thống giúp đỡ sử dụng chưa được xây dựng. • Quá trình kiểm tra và thử nghiệm chưa được chú ý nhiều.

2.Hướng phát triển Nhìn chung các phần chính của hệ thống đã được xây dựng, hệ thống có thể áp

dụng vào thực tế. Tuy nhiên hệ thống có một số hướng phát triển sau: • Có thể tích hợp với các hệ thống hỗ trợ học tập khác để tạo thành một hệ thống hỗ trợ học tập hoàn chỉnh.

• Hệ thống dữ liệu có thể chuyển sang quản lý dưới dạng file. • Việc phân cấp của quản trị có thể cho phép một quản trị quản lý nhiều mức độ khác nhau. • Đối với người sử dụng, việc vào ra hệ thống cũng cần có sự kiểm tra chặt chẽ hơn để người quản trị dễ quản lý hệ thống.

Trang 43

Hệ thống trao đổi thông tin

TÀI LIỆU THAM KHẢO

Trong quá trình xây dựng hệ thống, các tài liệu được tham khảo gồm có:

[1] Joe Barta. Professional Web Design [2] Eduardo Pelegri-Llopart. JavaServer Pages(TM) Specification. Sun Microsoft, Inc, 2000.

[3] Karl Moss. Java Servlets. The McGraw-Hill Companies, Inc, 1999. [4] JavaServer Pages(TM) Tutorial. [5] Nguyễn Phương Lan, Hoàng Đức Hải. Lập trình ứng dụng Web với JSP/Servlet. NXB Giáo Dục, 2001.

[6] Hoàng Ngọc Giao. Lập trình Java thế nào?. NXB Thống kê-Hà Nội, 1998. [7] Văn Thị Minh Thuận-Nguyễn Thị Thanh Trang. Luận văn tốt nghiệp Virtual Shopping Center (VSC). Niên khóa 1997-2001.

Trang 44

Có thể bạn quan tâm

Tài liêu mới