MỤC LỤC
Lời nĩi đầu -c- S1 SH SH nh nh nh như nh re 5 Chương 1: Giới thiệu đề tài - c5 2< +< s2 7 I Mơ tả đỀ tài Q2 2n nnn nh ch 7 II Khảo sát sơ bộ c2 22222222121 11x xxy 8 TH Cấu trúc đồ án 2c 22s se 8 IV Phương pháp nghiên cứu - 9 Chương 2: Các vấn đề về mạng máy tính 9 TL Internet 18 Si ieee eeescseceeeseeseeeesececseeeeseeseeseesesseeeeeeeeaees 9 TT Iintramet 18 in o 10
IH Internet Information Server là gì ? - -«- «+ «5ss+s<x+ 10 Chương 3: Ngơn ngữ lập trình ASP và chuỗi kết nối ADO 19
I Giới thiệu ASP SH HH nh như 19 1 Active Server Page là gì nhe 19 2 Hoạt động của Active Server Page -.-«- 19 3 Các hoạt động của ASP c2 se, 20 4 Cấu trúc các File ASP c2 Sen 22 5 Các tính chất của ASP -cc-scS Sen 22
II Ngơn ngữ sử dụng lập trình với ASP - 23
Trang 2II Những vấn đề liên quan đến xây dựng ứng dung ASP 27
1 Eile Global.aSa - cành ni, 27 2 Khai báo đối tượng và biến cố -. - 29
IV Các đối tượng trong ASP c2 cày 32 1 Đối tượng Redquest -. . << << 33 2 Đối tượng Response << <+2 34 3 Đối tượng Session cc cà se 35 4 Đối tượng Application -‹-‹ - + + + ss + sxes 36 5 Đối tượng S€TV€T - c2 Sen 37 V._ ADO (ActiveX Data ObJect) - <5 38 A Thanh phần truy cập cơ sở dữ liệu -: - 38
B Giao diện ADO - S22 SH SH nh nh nh re 38 C Các đối tượng trong ADO -. c c2 ss+ 39 1 Đối tượng Connection -‹ sc + scss se 39 2 Đối tượng Command -‹ < + sx+s>s+ 43 3 Đối tượng RecordSet -. - c2 cc c2 S22 sè 46 Chương 4: Phân tích và thiết kế hệ thong Website 51
1 Sơ đồ phân cấp chức năng -. -: 51
2 Định nghĩa các chức năng -.‹ - 52
2.1 Chức năng trang phổ biến kiến thức - 52
Trang 32.3 Chức năng đăng nhập -. - <<: 53
2.4 Chức năng quản trị hệ thống - 54
2.4.1 Chức năng quản lý người dùng - 54
2.4.2 Chức năng quản lý bài học - 55
2.4.3 Chức năng quản lý trang tin ‹ - 56
3 Thiết kế cơ sở dữ liệu -c<c<c<c<css + 57 SN: á::IỤIIỤAIiiiiiiiẳäậắ 57 3.2 Bảng phân quyền -< s22 2+3 s*x 57 3.3 Bảng mơn học c c2 2222233222131 x+ 57 3.4 Bảng bài hỌC - c2 22222222122 vn cv se 58 3.5 Bảng cấu hình c2 c2 21211323133 sx2 58 3.6 Bảng chủ để tin - cc c2 2222122121121 31x32 58 3.7 Bảng nội dung tỉn -c-c + ccssssss+xsx+ 58 3.8 Các quan hệ cơ bản giữa các bảng trong cơ sở dữ liệu 59
Chương 5: Cài đặt và sử dụng Website 60
1 Bảo mật Password đối với hệ thống website 60
1.1 Quá trình xử lý Password khi tạo người dùng mới 60
1.2 Quá trình kiểm tra Password khi người dùng đăng nhập 60
1.3 Bảo mật từng trang c-cccccsssxsx> 61
Trang 42.1 Trang ADO.asp SH nhớ 63
2.2 Các modul phần trang báo điện tử - - 63
2.3 Các trang web được xuất ra để truy cập - 64
3 Các trang mơ tả chức năng quản trị người dùng 66
3.1 Trang mơ tả chức năng thêm người dùng mới 66
3.2 Trang tìm kiếm, update và xố user - 67
4 Các trang mơ tả chức năng quản trị mơn học - 68
4.1 Trang mơ tả chức năng thêm mơn học mới 68
4.2 Trang mơ tả chức năng tìm kiếm, update và xố mơn học 69
5 Các trang mơ tả chức năng quản trị bài học 70
5.1 Trang mơ tả chức năng thêm bài học mới 70
5.2 Trang mơ tả chức năng tìm kiếm, update và xố bài học 71
6 Các trang mơ tả chức năng quan tri trang báo 72
6.1 Trang mơ tả chức năng soạn tin bài mới 72
Trang 5Trong thời đại ngày nay, khi mà chúng ta đang sống trong kỷ nguyên tin học với sự phát triển vượt bậc của ngành cơng nghệ thơng tin và sự bùng nổ của mạng Internet tồn cầu Cơng nghệ thơng tin khơng chỉ dừng lại ở
mục đích phục vụ cho khoa học kỹ thuật mà nĩ đi sâu vào đời sống xã hội
và trở thành cần thiết với những lợi ích mà nĩ mang lại Trong sự nghiệp
giáo dục và đào tạo của nước nhà, cơng nghệ thơng tin cũng mang lại những đĩng gĩp quan trọng Những ứng dụng đầu tiên của cơng nghệ thơng tin vào ngành giáo dục là quản lý đào tạo, xây dựng bài giảng trên
máy vi tính, xây dựng website trợ giúp giảng dạy v.v
Với ngành giáo dục , trang web hỗ trợ rất nhiều cho cơng tác giáo dục
và đào tạo tại các trường đại học, các khoa ngành Khi cĩ trang web, mọi thơng tin luơn được cập nhật, mọi sinh viên và giáo viên của một
trường hay một khoa cĩ thể vào trang web để cập nhật về tình hình hoạt động, trao đổi về các nhiệm vụ học tập Giáo viên cĩ thể thơng báo tới sinh viên của mình về tiến trình giảng dạy, cĩ thể đưa lên trang web các bài giảng và giáo trình của mình, cịn sinh viên cĩ thể vào trang web đĩ để trao đổi với nhau về các vấn đề học tập, đồng thời cĩ thể cập nhật các bài giảng giáo trình trên mạng để cĩ thể tự học
Em là sinh viên Khoa Sư Phạm Kỹ Thuật, em được giao nhiệm vụ làm
đơ án tốt nghiệp với dé tài: “Thiết kế trang web động hỗ trợ dạy học”,
trang web này được thiết kế nhằm phục vụ cho cơng tác học tập và nghiên
cứu của thầy và trị khoa Sư Phạm Kỹ Thuật-ĐHBKHN, em mong rằng trang web sẽ giúp được cơng tác dạy và học của khoa, đĩ cũng là thành quả mà em đạt đựơc trong suốt quá trình học tập của minh
Trang 6I Mơ tả đề tài
Khoa Sư Phạm Kỹ Thuật là khoa mới thành lập của trường Đại Học Bách Khoa Hà Nội Khoa nhằm mục đích đào tạo giáo viên dạy mơn kỹ thuật cơng nghiệp cho các trường dạy nghề, các trường trung học chuyên
nghiệp, các trường cao đẳng nghề Mọi thơng tin về khoa sư phạm kỹ
thuật cịn đang chưa thực sự rõ ràng đến sinh viên, nên việc cập nhật thơng
tin của khoa đến sinh viên và những người quan tâm đến khoa là rất cần thiết Cơng tác dạy và học của khoa hiện tại là những giờ trên giảng đường, sinh viên cịn vấp phải thụ động trong quá trình học tập bởi những giờ giảng trên lớp Việc cĩ một trang web giới thiệu về khoa là hết sức cần
thiết, mọi thơng tin về khoa luơn được cập nhật, các thơng tin cơ cấu tổ
chức, lịch sử phát triển, tương lai phát triển, những dự án và kế hoạch học tập luơn cập nhật tới sinh viên, để họ cĩ thể dễ dàng vào trang web đĩ để
cập nhật thơng tin về khoa các tình hình hoạt động và lịch học tập Quan trọng hơn, trang web hỗ trợ cơng tác đào tạo dạy học của khoa, ở trang
web cung cấp các giáo trình bài giảng của từng bộ mơn của từng thầy giáo của bộ mơn đĩ Người thầy giáo cĩ thể đưa bài giảng và giáo trình của mình lên Website thơng qua một hệ thống upload và cĩ thể tải chính bài giảng của mình về để chỉnh sửa, update và thêm vào trong cơ sở đữ liệu những bài giảng và giáo trình mới Là sinh viên cĩ thể vào trang web để
xem thơng tin,cập nhật bài giảng và giáo trình và cũng cho phép download
các bài giảng về để tự học
Ngồi ra trang web cũng cung cấp một forum để thầy và trị trong khoa
cĩ thể trao đổi với nhau các nhiệm vụ học tập và nghiệp vụ sư phạm thơng qua hệ thống đăng ký thành viên diễn đàn
Trang 7H Khảo sát sơ bộ
1 Mục tiêu xây dựng
- Website xây dựng hỗ trợ 3 lớp người sử dụng : admin, thầy giáo và
viewer
- Những người quản trị cĩ thể thực hiện các thao tác trên cơ sở dữ liệu như : thêm, xố, chỉnh sửa, thay đổi
2 Các yêu câu đặt ra với hệ thống
- Đối với người quản trị hệ thống (admin) cĩ các quyền sau: cĩ thể thêm, sửa, xố user, quản lý trang tin, quản lý thành viên, quản lý bài học, quản lý forum
- Đối với thầy giáo (user) cĩ các quyền: thêm, xố bài giảng của mình và cĩ thể download về chỉnh sửa và update bài học mới
- Đối với thành viên (sinh viên) chỉ cĩ quyền vào xem các thơng tin và
đăng ký tham gia diễn đàn, và khơng cĩ quyền sửa đổi các cơ sở dữ liệu III Cấu trúc của đồ án
Đồ án cĩ cấu trúc gồm các chương : Chương 1: Giới thiệu đề tài
Chương 2: Các vấn đề về mạng máy tính Internet và Intranet Chương 3: Ngơn ngữ lập trình ASP và chuỗi kết nối ADO Chương 4: Phân tích và thiết kế hệ thống
Trang 8Để thực hiện tốt đồ án với các yêu cầu đĩ, em đã sử dụng các phương pháp nghiên cứu :
> Phương pháp phân tích và tổng hợp lý thuyết > Phương pháp nghiên cứu tài liệu
> Phuong phap lay y kién chuyén gia
> Phuong pháp điều tra (phỏng vấn, lấy ý kiến, yêu cầu)
Chương 2 : Các vấn đề về mạng máy tính Internet va
Intranet
1 Internet là gì ?
Internet là một mạng máy tính tồn cầu sử dụng một ngơn ngữ truyền thơng chung nĩ tương tự như một hệ thống điện thoại quốc tế và được kết nối theo cách làm việc của một mạng lớn
World Wide Web cho ta một hình ảnh dễ dàng giao tiếp và tìm kiếm dữ
liệu trên Internet Các dữ liệu này được liên kết với nhau thơng qua một
trang web Các file, các trang được nối kết với nhau thơng qua các mối liên kết là text hoặc hình ảnh được gọi là Hyperlink
Các trang web cĩ thể chứa văn bản, hình ảnh, âm thanh Các trang này
cĩ thể được đặt trên một máy tính ở một vị trí nào đĩ trên mạng(server)
Khi ta nối kết tới Internet ta cĩ thể truy xuất thơng tin trên tồn cầu
Hyperlink là các text hay hình ảnh mà được gắn địa chỉ Web trên đĩ, bằng cách click vào hyperlink ta cĩ thể nhảy tới một trang thành phần của cả website Mỗi một website cĩ một trang chủ của Website đĩ và cĩ một
Trang 9Il Intranet 1a gi ?
Intranet dựa vào TCP/IP Network nhưng khơng nối kết tới Internet mà
chỉ sử dụng chuẩn truyền thơng Internet và các cơng cụ của nĩ dùng để
cung cấp thơng tin tới người sử dụng trên một mạng riêng Ví dụ một cơng ty cĩ thể cài đặt một Web server chỉ cho các thành viên của cơng ty trao đổi thư từ tin tức và thơng tin thương mại Các thành viên truy xuất thơng
tin bằng cách dùng các web browser
Til Internet Information Server (IIS) la gi ?
Internet Information Server là một Web server cho phép ta cơng bố
thơng tin trên mạng Intranet hay Internet Internet Information Server(IIS)
truyền tải thơng tin bằng cách ding Hyperlink Transfer Protocol(HTTP), Internet Information Server cũng cĩ thể dùng phương thức FPT(File Transfer Protocol) hoac Gopher
Internet Information Server 14m việc như thế nào ?
Web là một hệ thống yêu cầu ( Request ) và đáp ứng ( Response ) Web
browser yêu cầu thơng tin bằng cách gửi một URL tới Web Server, Web
Trang 10Internet và Intranet Web Web server browser Client ver
HTML cé thé 1a mot trang web tinh duoc luu sin 6 trén Web server hoac cĩ thể là một trang động mà server tạo ra khi đáp ứng yêu cầu của người sử
dụng hoặc là một trang ở thư mục nào đĩ trên server Web Browser URL Request
Mỗi trang Web trên mạng Intranet hoặc Internet cĩ cé mot URL duy
nhất Web browser yêu cầu một trang bằng cách gửi một URL tới một Web server Web server sử dụng thơng tin trong URL để xác định và cho hiển thị trang Web theo yêu cầu của Web browser
Cú pháp URL là một chuỗi văn bản tuần tự gồm cĩ : Protocol, Domain Name, và đường dẫn (Path) tới thơng tin yêu cầu Protocol là chuẩn truyền thơng dùng để truyền tải thơng tin như là : HTP, FTP, và Gopher Domain
NĐame chính là Domain Name System (DNS) của máy tính chứa thơng tin
Trang 11Phương Tên Domain Đường dẫn (Path) thức Http:// www.microsoft.com /backoffice Https: www.truongthi.com /catalog/orders.htm (sourse HTTP) Gopher:// Gopher.university.edu Research/astronnmy /index.htm ftp:// Orion.bureau.gov /stars/alpha quadrant/starlist.txt
Trang 12Internet http://www.microsoft.com/feedback/input.idc Database Connector Gateway Common http://www.company.com/calculator/add.p1?2.2 Interface(CG]) script
Web Server Response
Web server đáp ứng yêu cầu của Web browser bằng cách trả lại một trang HTML Trang trả lại cĩ thể là trang HTML tính, trang HTML động hoặc là trang trong danh sách thư mục
Trang HTML tinh(Static Page)
Một trang HTML fnh là trang đã được chuẩn bị sẵn cho các yêu cầu nhất định và được đặt sẵn trên Web server Người sử dụng yêu cầu một
trang HTML tĩnh bằng cách gõ trực tiếp URL hoặc là click vào Hyperlink
Trang 13Web browser http://www.company.com/ Web server home.htm Home.htm serv Internet hoac Intranet er client www.copany.com
Trang HTML dong ( Dynamic Page)
Các trang động được tạo ra trong quá trình đáp ứng cho yêu cầu của
người sử dụng Một Web browser thu thập thơng tin bằng cách thực hiên một trang cĩ các Text box, Menu, Checkbox cho phép người sử dụng
điền vào hoặc lựa chọn Khi sử dụng click vào một nút (Button) trên Form, dữ liệu từ form được gửi tới Web server Server đưa dữ liệu này tới một
script hoặc một trình ứng dụng để xử lý Sau đĩ server gửi lại kết quả cho browser bằng một trang HTML Ví dụ sau đây cho phép người sử dụng gửi yêu cầu tới một Internet Server API (ISAPI), ứng dụng này dùng để cộng 2 số Người sử dụng nhập 2 số được cộng sau đĩ click một button để gửi 2 số
đĩ tới web server Web server gọi một ISAPI để cộng 2 số, sau đĩ trả lại
Trang 14Add.dIl Web server http:/www.company.com/ Web dI1.d1122.2 browser The answer to your problem is 2+2=4 client ser ver www.company.com
Minh hoa sau day cho phép người sử dụng truy cập vao database bang cách dùng Internet Database Conector Người sử dụng hồn thành một Form sau đĩ click vào một button để gửi đữ liệu tới server Server nạp dữ
Trang 15Sử dụng Internet Information Server(HS) như thế nào ?
Internet Information Server đủ khả năng đáp ứng các chức năng quan trọng cho các tổ chức khác nhau Chúng ta cĩ thể sử dụng một Server cho một Website hoặc cũng cĩ thể sử dụng nhiều server cho một website Một
trong những nhân tố để xác định cấu hình IIS là nĩ được sử dụng bên trong nội bộ của một mạng Intranet hay nĩ được nối kết với Internet
Các kịch bản sau đây giúp ta hiểu thêm phạm vi và khả năng sử dụng của Internet Information Server
Kich ban Intranet :
Trang 16Trong một mạng thương mại lớn cĩ nhiều bộ phận (workgroup), mỗi bộ
phận chạy IIS trên server của mình Một server trung tâm dùng để phối hợp và quản lý tất cả các thơng tin trên mạng ——¬ Sale Win NT Win Server Engineerin NT runnin ` —— Server e IIS running Win NT Server running IIS Central Finan me an Các kịch bản Internet :
Internet Information Server cĩ thể là một Web server đơn giản trên
Trang 17Win NT Server running IIS
Trong các site lớn hơn ta cĩ thể cho phép các thành viên trong mạng truy suất tới Web server và sử dụng các cơng cụ chế tác như Eronpage để chế tác nội dung cho Web server ye SQL server Client running Internet Assitant for Microsoft Window
Trang 18dùng IIS để truyền thơng giữa các site này với nhau, và ta cũng cĩ thể dùng RAS để cho phép truy cập tới Intranet hoặc Internet
Chương 3: Ngơn ngữ lập trình ASP và chuỗi kết nối ADO
I Giới thiệu về ASP
1 Active Server Page là gì ?
Microsoft ActiverServer Page là một trường hỗ trợ cho các script chạy
trên máy chủ (Server), cho phép chúng ta tạo ra và chạy cácứng dụng Web
Server động ASP hoạt động dựa vào các Script do người lập trình tạo ra Active Server Page chạy trên các mơi trường :
> Microsoft Internet Information Server trén window NT Workstation
> Microsoft Peer Web Services trén Window NT Workstation
> Microsoft Personal Web Server trén Window 95, Window 98
Trang 19Web Server Active Server Pages HTTP Request ———2 HTTP Response Browser
3 Cách hoạt động của ASP :
Các Script của ASP được chứa trong các File văn bản (Eile Text) cĩ tên mở rộng là ASP Trong các Script cĩ chứa các lệnh của một số ngơn
ngữ nào đĩ
Khi một Web Browser gửi một yêu cầu (Request) tới một File ASP thì Script chứa trong file sẽ chạy để trả kết quả về cho trình duyệt
(Browser) đĩ Khi Web Server nhận được yêu cầu (Request) tới một file ASP thì nĩ sẽ đọc từ đầu đến cuối File ASP đĩ, thực hiện các lệnh Script
Trang 20TSAPI Application vane 0 Internet
tant r Information CGI
ntranet Server Application
Perl awk etc
CGI Script
- - Server Side
Giao dién DLL cho ASP Includes(SSI)
VBscript Jscript Active Database
Interpretor Interpretor Compenents(ADO)
Trang 214 Cấu trúc của File ASP :
Một File ASP cĩ tên mở rộng là ASP, nĩ bao gồm các thành phần như : > Van ban (Text)
> Thẻ HTML (HTML Tags) > Lénh Script (Script commands) 5 Cac tinh chat cua ASP :
Với ASP ta cĩ thể chèn các Script thực thi được vào trực tiếp các file
HTML Khi đĩ việc tạo rat rang HTML và xử lý Script trở nên đồng thời,
điều này cho phép ta tạo ra các hoạt động của Website một cách linh hoạt
uyển chuyển, cĩ thể chèn các thành phần HTML động vào các Web tuỳ vào từng trường hợp cụ thể
ASP cho ta các tính chất sau :
v Cĩ thể kết hợp với file HTML
v Dễ sử dụng, dễ tạo các script, khơng cần phải biên dịch (Compiling) hay kết nối (Linking) các chương trình được tạo ra
v Hoạt động theo hướng đối tượng, với các đối tượng được cài đặt
sin (build — inobject) rat tién dung : Request, Response, Server, Application, Session
v Cĩ khả năng mở rộng các thanh phan Activex Server (ActiveX
Server Components)
Mơi trường của ASP sẽ được cài đặt trên máy chủ (Server) cùng với Web Server Một ứng dụng viết bằng ASP là một File hay nhiều File văn bản (File text) cĩ phần mở rộng là ASP, các File này được đặt trong một thư
Trang 22Các ứng dụng ASP dễ tạo vì chúng ta dùng các ASP script để viết các ứng dụng Khi tạo các script của ASP ta cĩ thể dùng bất kỳ ngơn ngữ nào,
chỉ cần cĩ script Engine là Visual Basic Script (VBscript) và Java Script (Iscript) Ngồi ra ASP cịn cung cấp sắn các ActiveX Component rất hữu dụng, ta cĩ thể dùng chúng để thực hiện các cơng việc phức tạp như truy
xuất cơ sở dữ liệu, truy xuất file, khơng những thế mà ta cịn cĩ thể tự mình tạo ra các thành phần (component) của riêng mình và thêm vào để sử
dụng trong ASP ASP tạo ra các trang HTML tương thích với Web Browser
chuẩn
H Ngơn ngữ lập trình sử dụng với ASP
1 Các lệnh Script (Sript Command) của ASP :
Một script là một chuỗi các lệnh gán biến, các lệnh yêu cầu Web Server
gửi thơng tin đến một trình duyệt (Browser) (Như giá trị biến) Các lệnh này kết hợp lại thành thủ tục (Procedure) hay (Function) để thực hiện một cơng việc cụ thể Mỗi script của ASP được chứa trong một file ASP Mỗi file của ASP cĩ thể coi như một file HTML cĩ thể chèn vào các lệnh của
ngơn ngữ Script nào đĩ Thực ra nĩ là một file văn bản (File text) nhưng
các văn bản (Text) đĩ cĩ những vùng mà khi Web Server đọc tới thì nĩ
hiểu đĩ là những vùng script chứa những lệnh của một ngơn ngữ script nào đĩ, Web Server sẽ gọi tới các Script Engine để thực thi các lệnh Script
trong khi đĩ
ASP quy định một vùng script nằm giữa hai dấu <% và %> hoặc trong vùng của hai thẻ <script> và </script>
Trang 23nội dung người đĩ muốn tạo ra trên các trang HTML kết quả trả về cho Web Browser goi dén ting dung
Ta thấy Script giống như một chương trình được người lập trình viết ra để thực thi trên mơi trường hoạt động của ASP, cũng giống như mọi ngơn
ngữ lập trình khác như C, Pascal , chỉ cĩ điều khác là chương trình của
ngơn ngữ khác phải biên dịch ra dạng thực thi được và dùng dạng thực thi được để chạy trên một mơi trường cụ thể (DOS, Windows, );Cịn script thi khơng phải biên dịch trước ra dạng thực thi được mà đem dạng văn bản (Text) chạy thẳng trên mơi trường của ASP
Ví dụ minh hoa :
<%
myname=”tang thanh cao”
If Time >=#12:00:00 am # AND time < #12:00:00 pm # then %> <font face = “vntime” color = “#ff0000”> Goodmorning “&myname” <% else %> Chào bạn <% end if %>
2 Ngon ngit Script (Script language) va Script Engine :
Script cla ASP được cấu thành từ các lệnh của ngơn ngữ Script (Script Language) nào đĩ, xen lẫn vào đĩ là nội dung dạng HTML, để trả về kết quả cuối cùng ở dạng HTML
Ngơn ngữ (Script Languague) nằm ở khoảng ngơn ngữ siêu văn
Trang 24biết HTML dùng để định dạng và liên kết các văn bản, cịn các ngơn ngữ lập trình cĩ khả năng tạo ra chuỗi các lệnh phức tạp cho máy tính thực hiện Đối với script language, nĩ nằm ở giữa, tuy nhiên nĩ gần với ngơn
ngữ lập trình hơn là HTML
Khác nhau cơ bản giữa ngơn ngữ Script(Script Language) và các ngơn ngữ lập trình là ở chỗ các luật và cú pháp của ngơn ngữ Script (Scripting
Language) linh hoạt và hiểu hơn ngơn ngữ lập trình
Script Engine là các đối tượng cĩ nhiệm vụ xử lý các Script ASP cung
cấp một mơi trường chủ cho các script Engine và phân phối các script
trong các file ASP cho các máy (Engine) này để xử lý Để sử dụng được
một ngơn ngữ lập trình Script (Script Language) cùng với ASP ta phải cài đặt Script Engine tương ứng với Web Server Ví dụ như Visual Basic Script
(VBscript) là Script Language mặc định của ASP, do đĩ ta phải cĩ VBscript Tương tự ASP cĩ thể cung cấp mơi trường Script cho các ngơn
ngit script (Scripting Language) nhu Jscript, Rexx, Perl,
ASP cho phép nhà lập trình dùng nhiều ngơn ngữ script (Scripting Language) cùng lúc để tạo các thủ tục phức tạp mà khơng phải bận tâm các
Browser cĩ trợ giúp các ngơn ngữ script (Scripting Language) hay khơng Vì tất cả các Script đều được thực thi ở máy chủ (Server) Khơng
những thế ta cịn cĩ thể dùng nhiều ngơn ngữ script (Scripting Language)
trong cùng một file ASP chỉ cần bằng cách một thẻ HTML (HTML Tag) để khai báo ngơn ngữ Script nào được dùng
ASP mặc định sử dụng ngơn ngữ script (Scripting Language) chính
Trang 25Để thay đổi ngơn ngữ script (Scripting Language) chính trong tồn bộ mơi trường ASP ta phải thay đổi tên ngơn ngữ script (Scripting Language) trong giá trị của một Registry Entry của hệ thống cĩ tên là Default Script Language Ví dụ như mặc định là VBscript, ta cĩ thể thay đổi lại hay
Jscript,
Để thay đổi ngơn ngữ script (Script Language) chính chỉ trong một file ASP nào đĩ, ta chỉ cần đặt ở đầu File một thẻ đặc biệt cĩ dạng :
<% LANGUAGE = Scripting language %>
vé6i mot ngon ngit script (Scripting Language) là tên ngơn ngữ script
(Scripting Language) mu6n dat lam ng6n ngif script (Scripting Language)
chinh nhu VBscript, Jscript,
3 Viết các thủ tục và ngơn ngữ :
Một trong các đặc tính mạnh của ASP là khả năng kết hợp nhiều ngơn ngữ script (Scripting Language) trong một file ASP Nếu biết tận dụng khả
năng này ta cĩ được một cơng cụ rất mạnh để thực hiện những cơng việc phức tạp
Một thủ tục (Procedure) là một nhĩm các dịng lệnh Script thực hiện
một tác vụ nhất định Ta cĩ thể tạo ra các thủ tục (Procedure) để dùng nhiều lần trong các script Cĩ thể định nghĩa các thủ tục (Procedure) bên trong các dấu phân cách (Delimeter) nếu như cĩ được viết bằng ngơn ngữ
script (Scripting Language) chính Nếu khơng thì cĩ dùng trong các thẻ
(Tag)
Ta cĩ định nghĩa các thủ tục (Procedure) trong các file ASP cĩ gọi
đến nĩ trong các file riêng chỉ chứa các thủ tục (Procedure) rồi Include File đĩ vào khi cần gọi thủ tục (Procedure) đĩ Thường các file Include trong
Trang 26IH Những vấn để liên quan tới việc xây dựng ứng dụng ASP :
Khi xây dựng một ứng dụng trên mơi trường ASP để chương trình sinh động ta cần lưu ý : > _ Xây dựng file Global.asa Viết mã script Thêm các đối tượng (Object) cĩ sắn vào trong chương trình Sử dụng các ActiveX Component VV V WV Lấy thơng tin người sử dung (User), gui thong tin ngudi str dung 1 File Global.asa :
File global.asa là một file tuỳ chọn, trong đĩ bạn cĩ thể khai báo các
Script đáp ứng biến cố, các biến cĩ tầm hoạt động là Application hay Session (Phiên) Đây khơng phải là file nhìn thấy bởi người sử dụng (User), trái lại nĩ chứa thơng tin được sử dụng bởi ứng dụng một cách tồn cục Eile này phải cài đặt tên là Global.asa duy nhất Một file global.asa cĩ thể chứa các thành phần sau : Application Event, Session Event, định nghĩa các đối tượng
Nếu bạn viết các Script khơng được bao bởi thẻ (tag) <script>, hoặc định nghĩa các đối tượng khơng cĩ tầm hoạt động Application hay Session thì máy chủ (Server) sẽ trả về lỗi Server sẽ bỏ qua những script cĩ chứa những thành phần HTML mà các biến cố Application và Session khơng thể xử lý
như trong một file HTML thơng thường
Trang 27Khi ta thay đổi file global.asa và ghi lại thì server hồn tất việc xử lý những nhu cầu ứng dụng hiện thời trước khi nĩ biên dịch lại file global.asa,
trong khoảng thời gian này server từ chối và ra thơng báo : “The request cannot be processed while the application is being restarted”, sau khi yêu
cầu được xử lý xong server xố bỏ tất cả các phiên (session) đang chạy, gọi biến cố Session_Onend tương đương phiên mà nĩ đã xố, tiếp theo gọi biến cố Application_Onend File global.asa được biên dịch lại, yêu cầu của người sử dụng tiếp theo sẽ khởi động ứng dụng trở lại (gọi biến cố Application_Onstart va Session_Onstart)
Tuy nhiên khi lưu lại những file duoc Include trong file global.asa thi khơng gây nên biến cố này, muốn khởi động lại phải ghi lại file global.asa
Các thủ tục trong file global.asa chỉ cĩ thể được gọi trong từ các script
trong biến cố : Application_Onstart, Application_Onend, Session_ Onstart,
Session_Onend Các thủ tục này khơng thể gọi trong các trang ASP trong
ứng dụng dựa trên ASP
Để share (chia sẻ) các thủ tục giữa các file ASP khác nhau trong một ứng dụng, cần định nghĩa chúng trong một file riêng rồi dùng Include để chèn chúng vào các trang ASP cĩ gọi thủ tục đĩ Những Eile Include thường cĩ phần mở rộng INC
Trang 28Application_Onstart : Xảy ra trước khi Session đầu tiên được tạo, nghĩa là trước biến cố Session_Onstart, khi cĩ yêu cầu đầu tiên đến trang ASP của ứng dụng Chỉ cĩ các đối tượng ứng dụng (Application) và các đối tượng cài đặt trong server là cĩ thể sử dụng Các tham khảo đến đối tượng Session, Request, Response sẽ gây ra lỗi Cú pháp : <Script language = Scriptlanguage Runat = Server> Sub Application_Onstart End Sub </script>
Tham số Script Language : chỉ định ngơn ngữ Script dùng để viết Script Thường sử dụng biến cố để khởi động một số biến tồn cục, thơng tin hệ
thơng
Trang 29Tham số script language chỉ định ngơn ngữ script dùng để viết Script Thường sử dụng biến cố này để xố, cập nhật lại thơng tin của hệ thống
Biến cố Session : Web Server tự động tạo một session cho một người sử
dụng cho một trang Web tương ứng khi được yêu cầu Máy chủ (Server) sẽ
xố bỏ một session khi nĩ vượt thời gian (Time-Out) hoặc phương thức
(Method) được gọi
Những biến cố của phién (Session) :
Session_Onstart : Xảy ra khi máy chủ (Server) tạo một session mới Bạn
phải khai báo biến cố tầm hoạt động trong biến cố Ta cĩ thể tham khảo tất cả các đối tượng được cài đặt (Buil-In) trong biến cố này Cú pháp : <Script language = Scriptlanguage Ranat = Server> Sub Session_Onstart End Sub </Script>
Tham so : Script Language chi định ngơn ngữ Script Ta cĩ gọi phương thức Redirect trong biến cố Session_Onstart, chẳng hạn để bảo đảm người sử dụng muốn mở ngay sang một trang khác trang được chỉ định, thì Redirect sang trang chỉ định Tuy nhiên cần chú ý là những Browser khơng hỗ trợ Cookies thì nĩ sẽ khơng lưu lại Session ID của nĩ nên bất cứ khi nào
mở một trang mới thì server lại tạo một trang Session mới Ví dụ :
Trang 30Application.lock
Application (“accessnumber”) = Application (“accessnumber”) + 1
Application.unlock
End sub
Session_Onend : Xay ra khi một session được đĩng hoặc vượt quá thời
gian (Timeout) Dùng biến cố để xố các biến đã đặt trong quá trình sử dụng của người sử dụng (User) Cú pháp : <Script language = Scriptlanguage Runat = Server> Sub Session_Onend End Sub </Script>
e Khdi bdo déi tuong <Object>
Ta cĩ thể tạo các đối tượng tầm hoạt động 1a session hay application trong các file global.asa Đối tượng này thực sự được tạo ra khi server xử lý
một Script cĩ tham khảo đến đĩ
Cú pháp :
<Object Runat = Server Scope = Scope ID = Indentifier
{ progid = proid | classid = “classid’’/>
Trang 31- Scope : chỉ định tâm hoạt động của đối tượng, là “Session” hay “Application”
- Identifiler : Tén Instance của đối tượng
- ProgID : Một định danh được kết hợp với định danh Class, ProgramID
hay classID phải được chỉ định trong khai báo <Object>
- ClassID : Định danh duy nhất cho một đối tượng lớp OLE, ProsramID
hay classID phải được chỉ định trong khai báo <Object> Ví dụ : <Object> ClassID = “clsid : 79076FBO-B72” ID = “spntest’” codebase = “http://activeX microsoft.com.control”> </Object>
IV Các đối tượng trong ASP
Khi viết các Script ta thường cĩ nhu cầu thực hiện một số tác vụ nào
đĩ theo một quy tắc cơ bản nào đĩ Khi đĩ thường xuất hiện những cơng
việc lặp đi lặp lại nhiều lần, từ đĩ xuất hiện những nhu cầu tạo ra những đối tượng cĩ khả năng thực hiện những cơng việc cơ bản đĩ Mỗi đối tượng là một liên kết hợp giữa lập trình và dữ liệu mà cĩ thể xử lý thống nhất
Đối với phần lớn các đối tượng, để sử dụng được nĩ ta phải tạo ra các Instance cho nĩ Tuy nhiên ASP cĩ sẵn năm đối tượng mà ta cĩ thể dùng được mà khơng phải tạo Instance Chúng ta gọi là các đối tượng được cài đặt sẵn (Build-In Object), bao gồm :
Trang 32v Response : là đối tượng chứa thơng tin từ server gửi cho Web Browser vé Server : là mơi trường server nới ASP đang chạy, chứa các thơng tin về tác vụ và hệ thống _ Application : đại diện cho ứng dụng Web của ASP, chứa Script hiện hành
vé Session : là một biến đại diện cho người sử dụng (User) 1 Doi tuong Request :
Dinh nghĩa : với đối tượng Request, các ứng dụng ASP cĩ thể lấy dễ
dàng các thơng tin gửi tới từ người sử dụng (User) Ví dụ khi sử dụng gửi (User submit) từ một Form
Đối tượng Request cho phép truy xuất tới bất kỳ thơng tin nào do người sử dụng (User) gửi tới bằng giao thức HTTP như sau :
Các thơng tin chuẩn nằm trong các biến Server
Các tham số gửi tới bằng phương thức POST Các tham số gửi tới bằng phương thức GET
Cac Cookies
Cac Client Certificates
Cú pháp tổng quát : request.(collectionname)(variable)
e - Đối tượng Request : cĩ 5 Collection
Trang 33- Query string : Nhận giá trị của các biến trong HTML Query String Đây là một giá trị được gửi lên theo sau dấu hỏi (?) trong HTML Request
- Form : Nhận giá trị của các phần tử trên Form sử dụng phương thức POST
- Cookies : Cho phép nhận những giá trị của cookies trong HTML Request
- Server Variable : Nhận giá trị của các biến trong mơi trường 2 Đối tượng Response :
e - Định nghĩa : việc gửi thơng tin tới người dùng sẽ được thể hiện nhờ
đối tượng Response
e Cú pháp tổng quát : Response.collectionpropertywnethod
e Collection ctia d6i tugng Response: Cookies : xác định giá trị biến
Cookies Nếu Cookies được ¡n ra khơng tồn tại, nĩ sẽ được tạo ra, nếu cĩ
tồn tại thì nĩ nhận giá trị mới
e Cac thudc tinh (Properties):
- Buffer: chi ra Web Output dugc giữ lại đệm Buffer hay khơng Khi một trang được đệm lại, máy chủ sé khơng gửi một đáp ứng nào cho trình duyệt cho đến khi tất cả các Script trên trang hiện tại đã được thực thi xong hay phương thức FLUSH hay END được gọi
- Content Type: chỉ ra HTML Contenttype cho đáp ứng (Response) Nếu khơng cĩ Contenttype được chỉ ra, chỉ mặc định là “Text/HTML”
Trang 34- ExpiresAbsolute: chỉ ra ngày giờ của một trang được đệm (Cached) trên trình duyệt (Browser) hết hạn
- Sfatus: chỉ ra trạng thái của máy chủ Giá trị trạng thái được định nghĩa trong đặc tả HTTP
e - Các phương thức (Methods):
- — AddHeader (Tên, Nội dung): tạo ra một phần đầu (Header) HTTP tuỳ biến sử dụng các giá trị tên và nội dung và thêm nĩ vào đáp ứng Khơng thể thay đổi một phần tử đầu (Header) đã tồn tại cĩ cùng tên Một khi đã thêm một phần đầu (Header), khơng thể thu hồi nĩ Cần phải sử dụng trước khi gửi bất cứ trang nội dung nào (text hay html) dén may
khách (client)
- Binarywite: xuất thơng tin Output HTML dạng nhị phân (binary) - Clear : xố đệm Output HTML Tuy nhiên, phương thức này chỉ
xố đáp ứng phần thân (Response Body) mà khơng xố đáp ứng phần đầu (Response header) Phương thức này sẽ lỗi nếu như đáp ứng (Response) chưa thiết lập thành true
- End dừng xử lý file asp và trả kết quả hiện tại
- Flush: gtti thong tin trong Buffer cho client Phuong thức này sẽ
sinh 16i néu Response.Buffer chua thiét lap thanh true
- Redirect: gti m6t thơng báo cho trình duyét (Browser) định hướng lại cho đến một URL khác
- _ Ghi một biến ra HTML Output như là một chuỗi
3 Đối tượng Session:
Trang 35Những biến được lưu trữ trong đối tượng (Object) vẫn tồn tại khi người sử dụng nhảy từ trang này sang trang khác trong ứng dụng Web Server tự động tạo đối tượng phiên khi người sử dụng chưa cĩ phiên yêu cầu một trang Web Khi session này kết thúc thì các biến trong nĩ được xố để giải phĩng tài nguyên Các biến session cĩ tầm hoạt động trong session đĩ mà thơi
- Cú pháp tổng quát: Session.Property | Method - _ Các thuộc tính (Property):
e _ SessionID: trả về SessionID cho người sử dụng (User) Mỗi phiên
(Session) sẽ được cho một định danh duy nhất khi nĩ tạo ra
e _ Timeout: khoảng thời gian tồn tại của một session, tính bằng phút, mặc định 20 phút
- Các phương thức (Method):
+ Abandom: xĩa bỏ một đối tượng phiên, trả về tài nguyên hệ thống + Session (“Login”): cho biết người yêu cầu truy xuất đến trang cĩ
login chưa Session (“Username”): tên của Account tạo ra session hiện tại + Session (“Selectedtopic”): tên chủ đề đang được chọn để thực hiện một thao tác nào đĩ
4 Đối tượng Applicafion:
eĐịnh nghĩa: ta cĩ thể sử dụng đối tượng ứng dụng (Object Application)
để cho phép nhiều người sử dụng một ứng dụng chia sẻ thơng tin với nhau
Trang 36(Object) này, các biến ứng dụng (Application) là tồn cục, cĩ tác dụng trên tồn ứng dụng
eCú pháp tổng quát: Application.Method
eCác phương thức (Method):
- Lock: phương thức này cấm khơng cho client khác thay đổi thuộc tính của đối tượng ứng dụng
- — Unlock: phương thức này cho phép máy khách (client) khác nhau thay đổi thuộc tính property của đối tượng ứng dụng
- Events: gồm cĩ hai event được khai báo trong file blobal.asa Ngồi ra chúng ta cĩ thể đặt các biến trong đối tượng Application để lưu những thơng tin tồn cục, hay các tờ báo hiệu
- — Application_Onstart: xảy ra khi khởi động ứng dung
- — Application_Onend: xảy ra khi ứng dụng đĩng, sau đĩ khi máy chủ
tắt (Server Shutdown)
% Đối tượng Server:
- Định nghĩa: cho phép truy xuất đến các thuộc tính và phương thức
của server như những hàm tiện ích - Cú pháp tổng quát: server.method
- Cac thudc tinh (Properties):
eCreatobject: tao Instance cla server Component eHTML Encode: ma hoa chuỗi theo dạng HTML
Trang 37eURLEncode: mã hố một chuỗi (cả Escape) theo quy tác mã hố URL
V Activex Data Object (ADO)
A Thanh phan truy cập cơ sở dữ liệu (Data Access
Component)
Một ứng dụng Wcb cơ sở dữ liệu (Web Database) viét bang ASP cĩ
thể truy xuất đữ liệu trong một cơ sở đữ liệu (Database), bằng cách sử dụng
Component Data Access của ActiveX mạnh nhất của ASP trong việc phát triển ứng dụng Web Database
Các đối tượng của ADO cung cấp cĩ thể tạo ra các kết nối với hầu hết
các kiểu cơ sở đữ liệu (Database), cũng như việc truy xuất, cập nhật các cơ
sở dữ liệu này Hiện nay thư viện ADO là cơng cụ mạnh nhất trong việc phát triển các ứng dụng cơ sở dữ liệu trên Internet
Trong phần này ta sẽ xem xét các thành phần trong thư viện cơng cụ này
B Giao diện của ADO:
ADO được thiết kế một cách đơn giản nhất, nĩ giao tiếp với các cơ sở dữ liệu thơng qua phương thức ODBC (Open Database Connectivity), chúng ta cĩ thể sử dụng chúng với bất kỳ loại cơ sở dữ liệu nào nếu như ODBC cĩ driver hỗ trợ
Sự giao tiếp giữa ADO và các thành phần khác trong hệ thống cĩ thể
Trang 38Active Server Pages DATA Active Database MN Component Active Data Object ODBC Driver | Data Provider Interface
Hình : Quy trình truy xuất dữ liệu qua ODBC
C Cac déi tuong (Object) trong ADO:
Các đối tượng chính trong đĩ 1a: Connection, Recordset, Command, ngồi ra đối tượng chính cịn cĩ các đối tượng, tham số, thuộc tính,
phương thức sử dụng con Sử dụng Connection ta cĩ thể thiết lập sự liên kết với cơ sở dữ liệu, thơng qua đĩ ta cĩ thể thực hiện các Query để lấy ra các
Record hoặc tập hợp các Record bằng cách sử dụng Command Object Kết quả thực hiện trên cơ sở dữ liệu (Database) sẽ được lưu vào Recordset, trên
đối tượng này ta cĩ thể duyệt và lấy ra một hay nhiều Record Sau đây ta sẽ xem xét cụ thể cách sử dụng của từng đối tượng (Object)
1 Đối tugng Connection:
Để sử dụng đối tượng Connection, trước tiên ta phải tạo ra một Instance cho nĩ, đây thực sự là một thể hiện của đối tượng này trong ASP
Trang 39%>
Thơng thường trong một ứng dụng nếu ta cần cĩ một liên kết với DataSource cố định cho tất cả các trang thì khi đĩ ta sẽ đặt Instance của
Connection cĩ mức hoạt động ở mức độ Application, bằng cách phát biểu
Instance ở trên vào các thủ tục Application_OnstartQ) <%
Sub Application_ Onstart ()
Set Connection_ name = Server.Creatobject (“ADODB.Connection”) End Sub
%>
hoặc thiết lập cho Connection ở mức độ Session như sau:
<%
Sub Session_ Onstart ()
Set Connection_ name = Server.Creatobject (“ADODB.Connection”) End Sub
%>
Hoặc tạo File sử dụng chung Tuy nhiên cĩ thể xem xét thêm việc tối ưu cho các Connection trong một ứng dụng cĩ nhiều người sử dụng (Úser) truy xuất tới cơ sở dữ liệu (Database), đĩ là khả năng Connectionpooling
của ODBC
Connection Pooling: Cac ting dung co so dif liéu truyén thong đều tạo một
liên kết cơ sở dữ liệu (Database) mà nĩ sử dụng, cịn các ứng dụng cơ sở dữ liệu (Database) trên Web lại mở và đĩng các liên kết, các liên kết này ở
Trang 40là tạo ra một sự liên kết liên tục với cơ sở dữ liệu của từng người sử dụng và lưu trữ trong đối tượng Session Tuy nhiên phương pháp này cĩ thể làm gia tăng số lượng các người sử dụng kết nối tới cơ sở dữ liệu mà khơng làm việc và chỉ đạt được độ tin cậy đối với các Website cĩ sự lưu thơng dữ liệu thấp
Connection pooling được kích hoạt mặc nhiên trong ASP, ta cĩ thể loại
bỏ bằng cách thiết lập giá trị Register Entry Start Connection về giá trị 0 Các phương thức của đối tượng Connection
Open Method: sir dung để mở một kết nối với cơ sở dữ liệu (Database)
Sau khi tạo một Instance cho đối tượng liên kết dữ liệu (Connectionobject),
ta cĩ thể mở kết nối với Data Source để cĩ thể truy xuất dữ liệu, cú pháp
cho phương thức trong VBscript như sau:
Connection.Open connecstring User Password
Trong đĩ Connecstring là chuỗi định nghia Data Source
Execute Method: Phương thức này cho phép thực thi một câu lệnh, tác động lên DataSource Theo trình tự sau khi đã cĩ một kết nối tới
DataSource, ta cĩ thể sử dụng nĩ với phương thức Execute với cú pháp trong VBscript như sau
Connection.Execute Command, Recordaffected,Option