Tải bản đầy đủ (.doc) (33 trang)

Tiểu luận ngôn ngữ HTML

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (277.84 KB, 33 trang )

CHƯƠNG I : CÁC KHÁI NIỆM CƠ BẢN VÀ NGÔN NGỮ HTML
I. CÁC

KHÁI NIỆM CƠ BẢN :
URL: (Uniform Resource Locators) là một thuật ngữ để chỉ ra vò trí tài nguyên
(resource) trên Internet.Các kết nối từ một tài liệu HTML đến một file hoặc một
service khác phải được viết theo dạng sau:
scheme://server [:port]/path/ dataname[#anchor].
+ Scheme: Chỉ ra loại protocol mà tài nguyên sử dụng ( hay nói cách khác là kiểu
dữ liệu mà URL chỉ tới).
+ Server: Chỉ ra server mà trên đó chứa dữ liệu user cần.
+ Port: Là điểm truy cập dòch vụ ở lớp transport chỉ ra nếu server không sử dụng
port mặc nhiên.(vd port mac nhiên của Gopher Server là 70 )
+ Path/dataname: Đường dẫn tương đối hoặc tuyệt đối đến file trên server.Được
quy bởi quy ước đặt tên chung ( Uniform Naming Convention )
+ #anchor: Chỉ ra vò trí trong một trang tài liệu HTML.
+ Đây là minh họa cho các khái niệm trên:
SCHEME

DATA TYPE

SAMPLE URL

File

Data files

file://c:/Luanan/hinhanh.txt

http


HTML Files



Gopher

Gopher server

gorher://ttdt01/localweb

*****

***********

****************

- Ngoài ra qua URLs, WWW còn cho phép sử dụng các services khác như : ftp,
finger, usenet, telnet, E-mail, wais…..
II. NGÔN NGỮ HTML :
1. Khái niệm:
HTML( HyperText Markup Language) là ngôn ngữ đònh dạng văn bản siêu liên
kết. Sự đònh dạng dựa trên các tag hoặc các đoạn mã đặc biệt để đánh dấu một văn
bản, một file ảnh, hoặc một đoạn phim..giúp cho Web Browser thông dòch và hiển thò
chúng lên màn hình của bạn. Html có những phần mở rộng rất quan trọng cho phép
những liên kết hypertext từ một tài liệu này tới một tài liệu khác (có thể là một đoạn
text, cũng có thể là một file ảnh..)
2. Cấu trúc cơ bản của một file HTML như sau:
< HTML>
<HEAD>
<TITLE></TITLE>

</HEAD>
<BODY>

1


<H1>Đây là một đầu đề</H1>
...
</BODY>
</HTML>
Theo cấu trúc đã trình bày như trên ta thấy một file HTML chia thành hai phần
cơ bản:
- Phần đầu : được bao bởi hai tag <head> ,</head> : tại đây đònh nghóa tên (hay
được gọi là tiêu đề ) của trang web. Phần này được hiển thò trên thanh tiêu đề của
trang web được khai báo giữa hai tag <title> </title>
- Phần thân : được baobởi hai tag <body> , </body>: Trình bày nội dung thể
hiện trên trang web. Các nội dung cần hiển thò hoặc xử lý trên trang web sẽ được
đònh nghóa trong phần body của file HTML.Để cho các trang web được sinh động hơn
ngôn ngữ HTML còn bao gồm rất nhiều tag dùng cho việc đònh trang, liên kết các
trang với nhau, thêm hình ảnh vào trang... (Các tag này sẽ được đònh nghóa trong phụ
lục A).
III. PHẦN MỀM MICROSOFT FRONTPAGE:
Giới thiệu: Microsoft Fontpage là một phần mềm cho phép việc tạo và quản lý các
trang Web. Microsoft Fontpage thật sự là một phần mềm mạnh,tiện ích với nhiều tính
năng, Microsoft Fontpage dễ sử dụng phù hợp với mọi đối tượng, tùy theo khả năng
của người thiết kế và yêu cầu của ứng dụng mà ta có thể tạo ra những trang web từ
đơn giản đến phức tạp. FrontPage bao gồm hai thành phần : Fontpage Explorer &
Fontpage Editor.
Fontpage Explorer: Tương tự như Explorer của Windows 95 , cho phép người thiết
kế có cái nhìn tổng quát về các trang Web đã tạo,mô hình liên kết giữa các trang với

nhau,được thể hiện dưới dạng công cụ đồ họa. Và ở đây ta có thể quyết đònh tạo trang
Web của mình như thế nào, sắp xếp các biểu tượng theo những trật tự khác nhau sao
cho trang Web của mình cho thích hợp.
Fontpage Editor: Đây là nơi mà bạn sẽ dùng để soạn thảo trang web cho ứng dụng
của bạn. Microsoft Frontpage có giao diện tương tự như MicrosoftWord, ngoài những
chức năng thông thường của một phần mềm soạn thảo Frontpage còn cho phép người
sử dụng có thể tạo các frame khác nhau trên màn hình hoặc tích hợp những phần tử
như Active Elements (video,seach form..), Database, Form Fiedl, Java Applet,
Activex Control, script… vào trang web của mình.Bên cạnh đó bạn có thể xem, và
thêm một đoạn chương trình vào source html với các chức năng cần xử lý trong trang
web của bạn.

2


Moâ hình cuûa Front Page Explore

Moâ hình cuûa Front Page Editor

3


CHƯƠNG 2: ACTIVE SERVER PAGES VÀ
NGÔN NGỮ LẬP TRÌNH TRÊN ASP
I. GIỚI

THIỆU VỀ ACTIVE SERVER PAGES :
1. Active sever pages là gì :
Microsoft Active Server Pages là một môi trường hỗ trợ cho các script chạy trên
server (Server-Side Scripting), cho phép ta dùng để tạo ra và chạy các 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 Pages chạy trên các môi trường sau đây:
- Microsoft Internet Information Server version 3.0 trên Window NT Server.
- Microsoft Peer Web Services version 3.0 trên Window NT Workstation.
- Microsoft Personal Web Server trên Windows 95.
2. Mô hình hoạt động của Active Server Page :

Mô Hình Tổng Quát Hoạt Động Của Asp
3. Cách hoạt động của ASP :
Các script của ASP được chứa trong các text file cótên mở rộng là .asp . Trong
script có chứa các lệnh của một ngôn ngữ script nào đó.
Khi một Web browser gửi request tới một file .asp thì script chứa trong file sẽ
được chạy để trả kết quả về cho browser đó. Khi Web server nhận được request tới
một file .asp thì nó sẽ đọc từ đầu tới cuối file .asp đó, thực hiện các lệnh script trong
đó và trả kết quả về cho Web brower dưới dạng của một trang Html.

4


ISAPI
Application
Internet
Information
Server

The Internet Or
Intranet

CGI
Application


Perl Awk etc
CGI Script

Server Side
Inludes (SSI)

Active Server Pages interface DLLs

Jscript
Interpretor

VBScript
Interpretor

Active Server
Components

Active Database
Compenents(ADO)

Custom
Componen
ts

ODBC Driver

DATA

Active Server Pages (.asp files)

5


Mô Hình Chi Tiết Hoạt Động của ASP
4. Cấu trúc của một 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ư :
- Text
- HTML tags
- Script Commands
5. Các tính chất của 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 ra trang 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 Web site một cách linh hoạt uyển chuyển , có thể chen các thành
phần HTML động vào trang Web tùy vào từng trường hợp cụ thể.
ASP cho ta các tính chất sau :
- Có thể kết hợp với file HTML.
- Dễ sử dụng tạo, các script dễ viết, 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.
- Hoạt động theo hướng đối tượng, với các build-in Object rất tiện dụng :
Request, Response, Server, Apllication, Session.
- Có khả năng mở rộng các thành phần ActiveX server (ActiveX server
components).
Môi trường của ASP sẽ được cài đặt trên 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 có phần tên mở rộng là.Asp,
các file này được đặt trong một thư mục ảo( Virtual Dirrectory) của Web Server.
Các ứng dụng ASP dễ tạo vì 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ỳ một ngôn ngữ script nào , chỉ cần có scripting
engine tương ứng của ngôn ngữ đó mà thôi. ASP cung cấp sẵn cho ta hai scripting
engine là Visual Basic Script(VBScript) và Java Script (Jscript). Ngoà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 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 thương thích với các Web browser
chuẩn.
II. NGÔN NGỮ LẬP TRÌNH SỬ DỤNG VỚI ASP:
1. Các Script Commands 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 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 hàm(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ó chen vào các lệnh của một ngôn ngữ script nào đó. Thực ra nó
là một file text nhưng trong các text đó có những vùng mà khi Web server đọc tới thì

6


nó hiểu đó là những vùng script chứa các 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 đó.
ASP qui đònh một vùng script nằm giữa hai dấu <% và %> hoặc trong vùng của 2
Tag <SCRIPT> và </SCRIPT>.
Script là đoạn chương trình thể hiện các yêu cầu của người lập trình đối với ASP,
nó chứa các câu lệnh mà người lập trình muốn ASP thực hiện và nội dung người đó
muốn tạo ra trên trang HTML kết quả trả về cho Web browser gọi đến ứng dụng.
Tóm lại 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ư các chương trình trong mọi ngôn
ngữ lập trình khác như C, Pascal, Java . . ., chỉ có điểm 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, Unix, ...); còn script thì không phải biên
dòch trước ra dạng thực thi được mà đem dạng text chạy thẳng trong môi trường của
ASP.

Ví dụ minh họa:
<% Myname= " Chau Quoc Dat "
If Time >=#12:00:00AM # and Time<#12:00:00 PM# then %>
color="#FF0000"> Chào buổi sáng "&
Myname"
<%Else%>
Xin chào
<%End If%>
2. Script language và Script Engine:
Script của ASP được cấu thành từ các lệnh của một ngôn ngữ script (scripting
language) nào đó, xen lẫn vào đó là các nội dung dạng HTML, để trả về kết quả cuối
cùng ở dạng HTML.
Scripting language nằm ở khoảng ngôn ngữ siêu văn bản (HTML) và các ngôn
ngữ lập trình như Java, C++, Visual Basic, . . . Ta biết HTML dùng để đònh dạng và
liên kết các văn bản , còn các ngon ngữ lâp trình có khả năng tạo ra một chuỗi các
lệnh phức tạp cho máy tính thực hiện. Đối với scripting 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 scripting language và các ngôn ngữ lập trình là ở chỗ các
luật và cú pháp của scripting language linh hoạt và dễ hiểu hơn các ngôn ngữ lập
trình.
Scripting 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 scripting engine và phân phối các script rong các file .asp cho
các engine này để xử lý. Để sử dụng được một scripting language cùng với ASP ta
phải cài đặt scripting engine tương ứng vào Web server. Ví dụ như Visual Basic Script
(VBScript) là scripting language mặc đònh của ASP , do đó ta phải có VBScript engine
được cài sẵn và ASP có thể truy xuất tới được, nhờ thế nó có thể xử lý được các script

7



viết bằng VBScript. Tương tự , ASP có thể cung cấp môi trường scripting cho một số
các scripting language như Jscript, REXX, Perl , . . .
ASP cho phép người lập trình dùng nhiều scripting language cùng lúc để tạo các
thủ tục phức tạp mà không cần phải bận tâm các browser có trợ giúp các scripting
language hay không. Vì tất cả các script đều được thực thi ở server Không những thế
ta có thể dùng nhiều scripting language trong cùng một file .asp chỉ cần bằng cách
một HTML tag để khai báo ngôn ngữ script nào được dùng.
ASP mặc đònh sử dụng scripting language chính (Primary scripting language) là
VBScript. Tuy nhiên ta vẫn có thể đònh lại scripting language chính trong cả hai phạm
vi là : toàn bộ môi trường ASP, hay chỉ trong một file .asp nào đó.
Để thay đổi scripting language chính cho toàn bộ môi trường ASP ta phải thay đổi tên
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ư trò mặc đònh là VBScript , ta có thể đổi lại là hay
JScript , . . .
Để thay đổi scripting language chính chỉ trong một file .asp nào đó, ta chỉ cần đặt ở
đầu file một tag đặc biệt có dạng :
<%@ LANGUAGE = ScriptingLanguage %>
với ScriptingLanguage là tên scripting language muốn đặt làm scripting language
chính như VBScript, Jscript, . . .
3. Viết các procedure với nhiều ngôn ngữ:
Như ta đã nói , một trong các đặc tính mạnh của ASP là khả năng kết hợp nhiều
scripting language trong cùng 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 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 procedure để dùng nhiều lần trong các script. Có thể đònh nghóa
các procedure bên trong các delimeter (dấu phân cách) nếu như nó được viết bằng
scripting language chính. Nếu không thì có thể dùng trong các tag .
Ta có thể đònh nghóa các procedure trong các file .asp có gọi đến nó hay trong các
file riêng chỉ chứa các procedure rồi include file đó vào khi cần gọi procedure đó.

Thường các file include trong ASP qui ước có đuôi là .inc .
III. VISUALBASIC SCRIPT LANGUAGE (VBSCRIPT)
1. Giới thiệu về VBScript:
VBScript là một thành phần mới nhất trong họ ngôn ngữ lập trình Visual Basic,
cho phép tạo ra những script sử dụng được trên nhiều môi trường khác nhau như các
script chạy trên Browser của client (Ms Internet Explorer 3.0) hay trên Web server
(Ms Internet Information Server 3.0).
Cách viết VBScript tương tự như cách viết các ứng dụng trên Visual Basic hay
Visual Basic for Application. VBScript giao tiếp với các ứng dụng chủ (host
application) bằng cách sử dụng các ActiveX Scripting.
2. Các kiểu dữ liệu của VBScript :

8


VBScript chỉ có một loại dữ liệu được gọi là Variant. Variant là một kiểu dữ liệu
đặc biệt có thể chứa đựng những loại thông tin khác nhau tùy theo cách sử dụng. Dó
nhiên nó cũng là kiểu dữ liệu được trả về bởi tất cả các hàm. Ở đây đơn giản nhất
một Variant có thể chứa thông tin số hoặc chuỗi tùy theo văn cảnh sử dụng. Các loại
dữ liệu (subtype) mà Variant có thể biểu diễn là: Empty, null, boolean, byte,
currency, date, time, string, object, error...
VBScript có sẳn một số hàm để chuyển từ subtype này sang subtype khác.
3. Biến trong VBScript:
Một biến là một tên tham khảo đến một vùng nhớ, là nơi chứa thông tin của
chương trình mà thông tin này có thể được thay đổi trong thời gian script chạy.Ví dụ:
có thể đặt một biến tên là ClickCount để đếm số lần user click vào một object trên
một trang Web nào đó. Vò trí của biến trong bộ nhớ không quan trọng, ta chỉ truy xuất
đến nó thông qua tên mà thôi. Trong VBScript biến luôn có kiểu là Variant.
Khai báo biến: dùng phát biểu Dim, Public (cho biến toàn cục) hay Private (cho biến
cục bộ).

Ví dụ:
Dim ClickCount
Tên Biến phải bắt đầu bằng một kí tự chữ, trong tên biến không chứa dấu chấm,
chiều dài tối đa là 255 kí tự và 1 biến là duy nhất trong tầm vực mà nó được đònh
nghóa.
Tầm vực và thời gian sống của một biến: có 2 loại biến là procedure-level và
script-level tương ứng với 2 cấp tầm vực là local và script-level. Thời gian sống của
một biến script-level được tính từ khi nó được khai báo đến khi script kết thúc, đối với
biến local là từ khi nó được khai báo đến khi procedure chứa nó kết thúc.
Biến trong VBScript có thể là biến đơn hay là dãy. Khi khai báo Dim A(10) thì
VBScript tạo ra một dãy có 11 phần tử (vì phần tử đầu có chỉ số là 0). Một biến dãy
có thể mở rộng tối đa đến 60 chiều, nhưng thường dùng từ 2 đến 4 chiều. Có thể thay
đổi kích thước một dãy trong thời gian chạy bằng cách dùng phát biểu ReDim.
Ví dụ:
Dim MyArray(25)
...
ReDim MyArray(30) hay
ReDim Preserve MyArray(30) ‘giữ lại các giá trò trong dãy cũ.
4. Hằng trong VBScript:
Hằng là một tên có nghóa đại diện cho 1 số hay chuỗi và không thể thay đổi trong
quá trình chạy. Tạo một hằng bằng phát biểu Const.
Ví dụ:
Const MyString = “This is my string “
5. Các toán tử trong VBScript:

9


VBScript có các toán tử khác nhau như số học, luận lý, só sánh. Nếu muốn chỉ
đònh thứ tự ưu tiên của toán tử một cách rõ ràng thì dùng dấu ngoặc ( ), còn không thì

thứ tự ưu tiên như sau (từ trên xuống dưới, từ trái sang phải):
- Số học: ^ , -(âm) , * , / , mod , + , - , &, \ (chia lấynguyên)
- So sánh: = , <> , < , > , <= , >= , Is.
-Luận lý: Not , And , Or , Xor , Eqv , Imp.
Toán tử * và / , + và - có cùng độ ưu tiên và được thực hiện từ trái sang phải.
6. Các cấu trúc điều khiển:
If ... Then ... Else ... End IF
Do ... Loop
While ... Wend
For ... Next
7. Procedure trong VBScript:
Có 2 loại procedure là Sub và Function.
- Sub procedure: là một chuỗi các phát biểu VBScript nằm trong phát biểu Sub và
EndSub, thực hiện một số công việc và không trả về giá trò.
- Function procedure: tương tự như Sub, nhưng trả về giá trò.
Ngoài những kiểu dữ liệu, toán tử và cấu trúc điều khiển như đã giới thiệu ở bên trên
ngôn ngữ Script còn rất nhiều hàm tạo nên sự sinh động cho chương trình( sẽ được
giới thiệu trong phụ lục B).
IV. Những vấn đề liên quan đến việc xây dựng một ứng dụng trên 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 ý khi :
- Xây dựng file Global.asa.
- Viết mã VBScript.
- Thêm các Object có sẵn vào chương trình.
- Sử dụng các ActiveX Server Component.
- Lấy thông tin từ user, gởi thông tin đến user.
1. File Global.asa:
File Global là một file tùy chọn, trong đó bạn có thể khai báo các script đáp ứng
biến cố, các đối tượng có tầm vực mức application (ứng dụng) hay session. Đây không
phải là một file được nhìn thấy bởi các user, trái lại nó chứa những thông tin được sử

dụng bởi ứng dụng một cách toàn cục. File này phải được đặt tên là Global.asa và
được đặt trong thư mục gốc của ứng dụng. Mỗi ứng dụng chỉ có một file Global.asa
duy nhất. Một file Global.asa có thể chứa các thành phần sau: Application events,
Session events, đònh nghóa các đối tượng.
Nếu bạn viết những script không được bao bởi tag <SCRIPT>, hoặc đònh nghóa các
đối tượng không có tầm vực application hay session thì server sẽ trả về lỗi. Server bỏ

10


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.
Những script trong file Global.asa có thể được viết bởi bất cứ ngôn ngữ nào có hổ
trợ script. Nếu các đoạn script được viết bởi cùng một ngôn ngữ thì có thể kết hợp
chúng trong một tag <SCRIPT> duy nhất.
Khi bạn thay đổi file Global.asa và ghi lại nó thì server hoàn tất việc xử lý những
yêu 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 các yêu cầu khác và ra thông báo: "The request cannot be
processed while the application is being restarted". Sau khi những request hiện tại
được xử lý xong, server xóa bỏ tất cả các session đang chạy, gọi biến cố
Session_OnEnd tương ứng với mỗi session mà nó xóa, tiếp theo gọi biến cố
Application_OnEnd. File Global.asa được biên dòch lại. Request của user tiếp theo sẽ
khởi động ứng dụng trở lại (gọi biến cố Application_OnStart và Session_OnStart).
Tuy nhiên khi lưu lại những file được include trong Global.asa thì không gây nên
biến cố này, muốn khởi động lại ứng dụng phải lưu lại file Global.asa.Những thủ tục
đònh nghóa trong Global.asa chỉ có thể gọi từ các script trong các biến cố:
Application_OnStart, Application_OnEnd, Session_OnStart, Session_OnEnd. Các
thủ tục này không thể gọi từ các trang ASP trong ứng dụng dựa trên ASP.
Để "share" 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 lệnh Include để chèn chúng vào trong trang

ASP có gọi thủ tục đó. Những file include thường có phần mở rộng là .inc.
Các ví dụ về file Global.asa trong phần này dùng VBScript như là ngôn ngữ Script
chính, mặc dù như đã nói các script có thể viết bằng nhiều ngôn ngữ khác (ví dụ
Jscript…).
2. Khai Báo Đối Tượng Và Các Biến Cố:
° Biến cố Application :
Application_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 một trang ASP của ứng dụng.
Chỉ có các đối tượng Application hay Server Build-in 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ố ScriptLanguage: chỉ đònh ngôn ngữ Script dùng để viết cript.Thường
sử dụng biến cố này để khởi động một số biến toàn cục, thông tin hệ thống.
Application_OnEnd: Xảy ra trước khi đóng ứng dụng, sau khi biến cố
Session_OnEnd cuối cùng xảy ra. Chỉ có các đối tượng Application hay Server Buildin là có thể sử dụng.
11


- Cú pháp:
<SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server>
Sub Application_OnEnd

End Sub
</SCRIPT >
- Tham số: ScriptLanguage chỉ đònh ngôn ngữ Script dùng để viết

script.Thường sử dụng biến cố này để xóa, cập nhật lại các thông tin hệ thống.
° Biến cố Session: Web server tự động tạo một session cho một người sư dụng
khi một trang Web trong ứng dụng được yêu cầu. Server sẽ xóa bỏ một session khi nó
Time-out hoặc method Abandon được gọi.
Những biến cố Session : Session_OnStart, Session_OnEnd.
Session_OnStart: Xảy ra khi server tạo một session mới. Bạn phải khai báo các
biến có tầm vực session trong biến cố. Ta có thể tham khảo tất cả những đối tượng
Build-In trong biến cố này.
- Cú pháp:
<SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server>
Sub Session_OnStart

End Sub
</SCRIPT >
- Tham số: ScriptLanguage chỉ đònh ngôn ngữ Script dùng để viết script.Ta có
thể gọi phương thức Redirect trong biến cố Session_OnStart, chẳng hạn để bảo đảm
rằng NSD luôn bắt đầu từ một trang duy nhất. Khi NSD muốn mở ngay một trang
khác nhau trang được chỉ đònh thì redirect sang đã 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 sessionID 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 session mới.
Ví dụ:
Sub Session_OnStart
Application.Lock
Application("AccessNumber")=Application("AccessNumber")+1
Application.Unlock
End Sub
Session_OnEnd: Xảy ra khi một session được đóng hoặc TimeOut. Dùng biến
cố này để xóa các biến đã đặt trong quá trình sử dụng của User
Cú pháp:
<SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server>

Sub Session_OnEnd

End Sub

12


</SCRIPT >
° Khai báo các <OBJECT>:
Bạn có thể tạo các đối tượng có tầm vực session hay application trong 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 nó.
- Cú pháp:
< OBJECT RUNAT=Server SCOPE=Scope ID=Identifier {PROGID=progID |
CLASSID=" ClassID"}>
….
</OBJECT>
- Tham số:
Scope: chỉ đònh tầm vực của đối tượng, là "session" hay "application"
Identifier: tên instance của đối tượng.
ProgID: một danh đònh được kết hợp với danh đònh class. ProgID hay ClassID
phải được chỉ đònh trong khai báo <OBJECT>
ClassID: danh đònh duy nhất cho một đối tượng lớp OLE. ProgID hay ClassID
phải được chỉ đònh trong khai báo <OBJECT>.
Vd:
<OBJECT>
CLASSCID=”Clsid:79176FBO-B7F2-11EF-00AA006D2776”ID=”spnTest”
CODEBASE =”http:// activeX.microsoft.com/controls/mspert10.cab”>
</OBJECT>
V. CÁC ĐỐI TƯNG (OBJECT) 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 qui
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 nhu cầu tạo ra các đố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 kết hợp giữa lập trình và dữ liệu mà có thể xử lý như
một đơn vò 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 cần phải
tạo các instance. Chúng được gọi là các build-in object, bao gồm :
° Request : Là đối tượng chứa các thông tin ở Web browser gửi yêu cầu tới Web
server.
° Response : Là đối tượng chứa thông tin từ server gửi về cho Web browser.
° Server : Là môi trường máy server nơi ASP đang chạy, chứa các thông tin và
tác vụ về hệ thống.
°Apllication : Đại diện cho ứng dụng Web của ASP, chứa script hiện hành.
° Session : là một biến đại diện cho user.
1. Đối tượng Request:
• Đònh nghóa:

13


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ừ user.
Ví dụ khi user submit thông tin 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 user gởi tới
bằng giao thức HTTP như:
- 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
- Các Cookies .

- Các Client Certificates.
• Cú pháp tổng quát: Request.(CollectionName)(Variable)
• Đối tượng Request: Có 5 Collection .
-Client Certificate: Nhận Certtification Fields từ Request của Web Browser. Nếu
Web Browser sử dụng http:// để connect với server, browser sẽ gởi certification
fields.
- Query String: Nhận giá trò của các biến trong HTML query string. Đây là giá trò
được gởi lên theo sau dấu chấm hỏi(?) trong HTML Request.
- Form: Nhận các 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 một HTML Request.
- Server Variable: nhận các giá trò của các biến môi trường.
° Một ví dụ lấy thông tin từ form:
HTML form là cách thức thông thường để trao đổi thông tin giữa Web Server và
user. HTML form cung cấp nhiều cách nhập thông tin của user như thông qua:
textboxes, Radio button, Check boxes… và hai phương thức gởi thông tin là POST và
GET.
Ứng dụng Asp có thể sử dụng form để tạo ra sự liên lạc dữ liệu giữa các trang
theo một trong 3 cách:
File .html chứa các form và gởi giá trò của nó tới một file . asp.
File .asp có thể tạo form và gởi giá trò của nó tới một file .asp.
File .asp có thể tạo form và gởi thông tin tới ngay chính nó.
Khi lấy thông tin từ form đối tượng Request có thể lấy các loại thông tin khác
nhau bằng cách " Sử dụng Query String". Việc sử dụng QueryString Collection làm
cho việc truy xuất thông tin trở nên dễ dàng hơn. Nếu phương thức gởi từ form là
GET, thì QueryString chứa toàn bộ thông tin gởi tới như các tham số đi đằng sau dấu
chấm hỏi(?) trong address box. Nếu phương thức gởi là POST thì thông tin gửi đi sẽ
dấu đi.
Gởi thông tin trong cùng một file.asp:Asp cho phép một file.asp chứa form, khi
user điền các giá trò vào formrồi gởi thì chính file .asp đó sẽ nhận các thông tin này và
xử lý.

Ví dụ: File " Example.asp" có nội dung như sau:
14


<Html>
<Head>
<Title>Login user</Title>
</Head>
<Body>
<%
If IsEmpty(Request("Email") ) = 0 then
Msg= " Vui lòng đánh đòa chỉ của bạn"
Else If InStr(Request("Email"),"@") = 0 then
Msg="Vui lòng đánh đòa chỉ trong Servername@location"
Else
Msg=" Giá trò ở đòa chỉ sẽ được thực thi"
End if
%>
<Form method="POST" Action="Example.asp>
<Pre>
E.mail:
<%=MSg%>


<input type="Submit" Value="Submit">
<Pre>
</Form>
</Body>
</Html>
Khi user điền vào form đòa chỉ Email và Submit thì file example.asp này sẽ nhận
thông tin bằng phát biểu: Value="<%Request("Email")%>


Đoạn script này sẽ tùy thuộc vào giá trò chuỗi ký tự nhận được có chứa ký tự @ hay
không để trả lời với user cũng chính bằng văn bản HTML nhúng trong example.asp.
2. Đối tượng Response:
• Đònh nghóa : Việc gởi thông tin tới cho user sẽ được thực hiện nhờ đối tượng
Response.
• Cú pháp tổng quát: Response.Collection| property| method
• Collection của đối tượng Response :
Cookies: Xác đònh giá trò biến Cookies.Nếu Cookies được chỉ ra không tồn tại,
nó sẽ được tạo ra. Nếu nó tồn tại thì nó được nhận giá trò mới.
• Các Properties:
- Buffer: Chỉ ra trang Web output được giữ lại đệm buffer hay không. Khi một
trang được đệm lại, Server sẽ không gởi một đáp ứng nào cho Browser cho
đến khi tất cả các script trên trang hiện tại đã được thực thi xong hay phương
pháp FLUSH or END được gọi.

15


- ContentType: Chỉ ra HTML content type cho response. Nếu không có
ContentType nào được chỉ ra, trò mặc nhiên là “text/HTML”.
- Expires: Chỉ đònh số thời gian trước khi một trang được cached trên một
browser hết hạn.
- ExpiresAbsolute: Chỉ ra ngày giờ của một trang được cache trên browser hết
hạn.
- Status: Chỉ ra giá trò trạng thái được Server. Giá trò trạng thái được đònh nghóa
trong đặc tả HTTP.
• Các Methods:
- AddHeader: Thêm một HTML headervới một giá trò được chỉ đònh. Phương
thức này luôn luôn thêm mới một header vào response. Nó sẽ không thay thế
những header có sẵn cùng tên với header mới.

- AppendToLog: Thêm một chuỗi vào cuối file Log của Web server cho request
này.
- BinaryWrite: Xuất thông tin ra output HTML dạng binary.
- Clear: Xóa đệm output HTML.Tuy nhiên , phương thức này chỉ xoá response
body mà không xoá response header.Phương này sẽ sinh lỗi nếu như
Response.Buffer chưa set thành TRUE.
- End: Dừng xử lý file .asp và trả về kết quả hiện tại.
- Flush: Gởi thông tin trong buffer cho client. Phương thức này sẽ sinh lỗi nếu
Response.Buffer chưa set thành TRUE.
- Redirect: Gởi một thông báo cho browser đònh hướng lại đến một URL khác.
- Write: Ghi một biến ra HTML output như là một chuỗi.
Ví dụ:
- Đặt Response.Buffer = True cho phép đệm output cho đến khi xử lý xong hết
trang.
- Response.Write "Đây là thông báo xuất ra bằng Response"
sẽ xuất ra chuỗi ký tự giữa hai dấu nháy kép.
- Response.Clear : xóa hết nội dung của Buffer (chỉ sử dụng được khi
Response.Buffer = True)
- Response.Redirect "WebPage1.Html" sẽ xóa trang hiện tại và thay bằng trang
WebPage1.Html tại Web Browser trên máy Client.
3. Đối tượng session:
• Đònh nghóa: Chúng ta có thể sử dụng 1 object Session để lưu trữ thông tin cần
thiết cho 1 user. Những biến được lưu trữ trong object vẫn tồn tại khi user nhảy từ
trang này sang trang khác trong ứng dụng.Web server tự động tạo object session
khi user chưa có session 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óa để giải phóng tài nguyên. Các biến session có tầm vực
trong session đó mà thôi.
• Cú pháp tổng quát: Session.property | method
• Các Properties:
16



- SessionID: Trả về SessionID cho user. Mỗi session sẽ được server cho một số
đònh danh duy nhấtkhi nó được tạo ra.
- Timeout: Khoảng thời gian tồn tại của session, tính bằng phút. Mặc đònh 20
phút
• Các Methods:
- Abandon: Xóa bỏ một object session, trả lại tài nguyên cho hệ thống.
- Ví dụ:Ta có thể tạo các biến trong đối tượng Session để lưu thông tin cho mỗi
kết nối đến Server.
+ 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 sesion 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 Application:
• Đònh nghóa: Ta có thể sử dụng object Application để cho phép nhiều người
cùng sử dụng một ứng dụng chia sẻ thông tin với nhau.Bởi vì object Application
được dùng chung bởi nhiều người sử dụng, do đó object có 2 method Lock và
Unlock để cấm không cho nhiều user đồng thời thay đổi property của object này,
các biến Application là toàn cục, có tác dụng trên toàn ứng dụng.
• Cú pháp tổng quát: Application.Method
• Các Methods:
- Lock: Phương pháp này cấm không cho client khác thay đổi property của đối
tượng Application .
- Unlock: Phương pháp này cho phép client khác thay đổi property của đối
tượng Application .
- Events: gồm có hai event được khai báo trong file Global.asa. Ngoài ra
chúng ta có thể đặt các biến trong đối tượng Application để lưu những thông
tin toàn cục, hay các cờ báo hiệu.
Application_OnStart: Xảy ra khi khởi động ứng dụng.

Application_OnEnd: Xảy ra khi ứng dụng đóng, hay Server shutdown.
- Ví dụ:
Application("DatabaseAccessFlag"): cờ cho biết có ai đang truy xuất Database
không.
Application("AccessNumber"): số lần truy xuất đến ứng dụng. Khi khởi động/
đóng ứng dụng giá trò này được cập nhật vào Database.
Application("arrayTopicName"): biến dãy lưu danh sách các chủ đề hiện có
của hệ thống.
Trước khi thay đổi giá trò các biến Application nên Lock lại và sau khi thay đổi
nhớ Unlock.
5. Đối tượng Server:

17


• Đònh nghóa: Cho phép truy xuất đến các method và property của server như là
những hàm tiện ích.
• Cú pháp tổng quát: Server.Method
• Các Properties:
ScriptTimeout: Khoảng thời gian dành cho script chạy. Mặc đònh 90 giây.
• Các Methods:
- CreateObject: Tạo một instance của server component.
- HTMLEncode: Mã hóa một chuỗi theo dạng HTML
- MapPath: nh xạ đường dẫn ảo (là đường dẫn tuyệt đối trên server hiện hành
hoặc đường dẫn tương đối đến trang hiện tại) thành đường dẫn vật lý (physical
path).
- URLencode: mã hóa một chuỗi (kể cả kí tự escape) theo qui tắc mã
hóa
URL
- Ví dụ: <% Server. ScriptTimeout = 30 %> : Xác đònh thời gian chạy tối đa của

một Scriprt là 30 giây.
VI. CÁC COMPONENT CỦA ASP:
• Khái niệm: ActiveX Server Component (trước đây được gọi là Automation
Server) được thiết kế để chạy trên Web server như là một phần của ứng dụng
trên Web. Component chứa đựng những đặc trưng chung mà chúng ta không cần
phải tạo lại những đặc trưng này.Component thường được gọi từ những file .asp.
Tuy nhiên, chúng ta có thể gọi những component này từ các source khác nhau
như là: một ứng dụng ISAPI, một server component hoặc một ngôn ngữ tương
thích OLE (OLE-compatible language).
ASP cung cấp sẵn 5 ActiveX Server Component, bao gồm:
- Advertisement Rotator Component.
- Browser Capabilities Component.
- Database Access Component.
- Content Linking Component.
- TextStream Component.

• Tạo một instance của component:
Bạn có thể tạo một instance của một ActiveX Server Component với một câu lệnh
đơn giản. Khi bạn đã tạo được một instance của một component, bạn có thể sử dụng
những phương pháp (method) liên quan đến component đó hoặc gán (set) và đọc
(read) những thuộc tính (property) của nó.
Sau đây là một script sử dụng method: Server.CreateObject để tạo một instance
của Browser Capabilities Component và gán vào biến bc:
<% Set bc=Server.CreateObject("MSWC.BrowserType") %>

18


Ta cũng có thể sử dụng <OBJECT> tag để tạo một instance component. Ví dụ sau
tạo ra một instance của Ad Rotator Component :

<OBJECT RUNAT=Server ID=MyAd ROGID = "MSWC.AdRotator">
</OBJECT>
1. Advertisement Rotator Component:
Advertisement Rotator Component cho phép ta thực hiện chuỗi các hình ảnh kế
tiếp nhau thay đổi trên màn hình một cách tự động, nó còn cho phép tạo các link từ
các hình ảnh này. Component này rất hữu dụng trong các ứng dụng có tính chất quảng
cáo, giới thiệu.
Ví dụ :
<% Set Ad = Server.CreateObject("MSWC.Adrotator")%>
<%= Ad.GetAdvertisement("/ads/adrot.txt") %>
Advertisement Rotator Component sẽ hiển thò một quảng cáo dựa trên thông tin
được đặc tả trong Rotator Schedule file. Các file của component bao gồm:
Adrot.dll: The Advertisement Rotator Component.
RedirectionFile: Một file tùy chọn cho phép Advertisement Rotator component
ghi nhận có bao nhiêu user click mỗi Ad.
Rotator Schedule File: Một text file chứa bảng danh mục và những thông tin
hiển thò cho các bảng quảng cáo. File này nằm trong một thư mục ảo trên server.
Các thuộc tính của Ad Rotator Component:
Border: Chỉ đònh kích thước của đường viền xung quanh bảng quảng cáo.
Clickable: Chỉ đònh bảng quảng cáo có phải là một hyperlink hay không.
Targetframe: Chỉ đònh tên của frame hiển thò bảng quảng cáo.
Advertisement Rotator component có phương pháp GetAdvertisement để lấy sự
đặc tả của bảng quảng cáo từ file dữ liệu Rotator Schedule file và đònh dạng nó thành
một HTML.
2. Browser Capabilities Component:
Browser Capabilities Component cung cấp cho script sự mô tả về khả năng
(Capability) của Web browser ở client. Khi một browser nối với một Web server, nó
tự động gởi User Agent HTTP header. Header này là một chuỗi ASCII mà chỉ ra loại
browser và số version của nó. Browser Capabilities Component so sánh header này
với những entry trong file Browscap.ini. Nếu thấy phù hợp thì Browser Capabilities

Component thừa nhận những thuộc tính của browser mà chúng phù hợp với User
Agent header. Nếu component không tìm thấy header trong Browscap.ini, nó sẽ lấy
những thuộc tính của browser mặc đònh. Nếu component không tìm thấy header phù
hợp và browser mặc đònh không được chỉ ra trong file Browserscap.ini, thì nó đặt mọi
thuộc tính bằng chuỗi "UNKNOWN". Ta có thể thêm những thuộc tính mới cho
component này đơn giản bằng cách cập nhật file Browscap.ini.
Các file được sử dụng cho Component:
Browscap . dll : The Browser Capabilities Component.

19


Browscap . ini : Một text file chứa các thông tin về các loại Browser. File này phải
nằm cùng thư mục với file Browscap.dll.
3. Data Access Component:
Chúng ta có thể sử dụng Data Access Component để truy xuất đến Database từ
một ứng dụng của Web. Chúng ta có thể hiển thò toàn bộ nội dung của một bảng
(table), cho phép người sử dụng xây dựng những Query, thực hiện những thao tác trên
database từ trong trang Web.
Database Access Component của ActiveX hay còn gọi là thư viện ADO( Active
Data Object). Đây là một điểm mạnh của ASP trong việc phát triển các ứng dụng
Web Database.Các Object của ADO cung cấp cơ chế tạo ra kết nối (connection) với
hầu hết các kiểu Database,cũng như việc truy xuất , cập nhật các Database này. Hiện
nay thư viện ADO là một công cụ mạnh trong việc phát triển các ứng dụng database
trên internet.
Một phương pháp để tạo một connection lâu dài đến Database là tạo một
connection đến Database cho mỗi user và lưu trữ connection này trong Session Object.
Tuy nhiên, vì phương pháp này tăng số idle connection đến Database nên nó chỉ được
sử dụng ở những Web Site có lưu lượng thông tin thấp (low-traffic).
ADO được thiết kế một cách đơn giản, nó giao tiếp với database thông qua phương

thức ODBC chúng ta có thể sử dụng chúng với bất kỳ loại databasenào nếu như
ODBC có driver hỗ trợ. Hiện nay tồn tại driver cho hầu hết các database như :
Foxpro, Access, SQL Server, ORACLE, v.v
Các Object chính trong ADO đó là: Connection, RecordSet, Command,ngoài ba
object chính này còn có các object con của nó cùng với các tham số , thuộc tính,
phương thức bên trong. Ta hãy xem xét từng đối tượng cụ thể ở phần sau:
Một phương pháp hữu hiệu hơn để quản lý những connection đến Database dựa
trên Web là sử dụng connection pooling của ODBC 3.0. Connection pooling duy trì
việc mở, đóng connection đến Database và quản lý connection chung cho nhiều yêu
cầu của những người sử dụng khác nhau để đảm bảo hiệu suất và giảm số idle
connection. Đối với mỗi yêu cầu connection, connection pool đầu tiên xác đònh idle
connection ở trong pool không. Nếu có connection pool trả về connection đó thay vì
tạo một connection đến Database. Connection không còn nối với Database và ra khỏi
connection pool nếu nó ở trạng thái idle hơn 60 giây. Connection pooling mặc đònh
được cho phép trong ASP. Chúng ta có thể cấm connection pooling bằng cách đặt
Start Connection Pool = 0 trong Registry entry.
Để sử dụng tốt nhất Connection pooling, ta nên mở và đóng Connection đến
database trong mỗi trang Asp.tuy nhiên ta nên đặt những trang property của
Connection một lần và sử dụng lại chúng ở mỗi trang sau.
Ví dụ:
Chúng ta có thể sử dụng "ConnectionString " trong file Global.asa để chỉ ra
property của Connection trong biến cố Session_OnStart như scrip sau:

20


Session ("ConnectionString") ="DSN=Database; UID= Database"
Sau đó trong mỗi file.asp mà có truy xuất database chúng ta có thể viết:
<Object Runat=Server ID=Conn PROGID="ADODB.Connection">
</Object>

hay để tạo một instance của đối tượng Connection cho trang đó ta có thể viết
như sau:
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open Session("ConnectionString")
Sau khi sử dụng xong, ta đóng bằng Script sau:
Conn.Close
Giá trò TimeOut mặc đònh cho Connection pooling là 60 giây. Ta có thể thay đổi
giá trò này cho một ODBC Driver bằng cách đặt Registry key như sau:
\HKEY_LOCAL_MACHINE
\SOFTWARE
\ODBCINST.INI
\driver-name\Cptimeout = timeout
(REG_SZ. Đơn vò là giây)
4. Content Linking Component:
Content Linking Component quản lí danh sách các URL để chúng ta có thể xử lí
các trang trong Web Site như là các trang trong một quyển sách. chúng ta có thể sử
dụng Content Linking Component để tạo và cập nhật tự động mục lục, đường liên kết
của những trang Web trước và sau. Điều này thật là lý tưởng cho những ứng dụng như
là Online Newspaper.
Content Linking Component tham khảo đến file content linking list, file này chứa
danh sách các trang Web được liên kết với nhau. Danh sách này được lưu trữ tại Web
server .
Các file được sử dụng cho Content Linking Component:
Nextlink.dll: The Content Linking component.
Content Linking List: Một file text liệt kê danh sách các trang Web với thứ tự mà
chúng sẽ được hiển thò. File này phải được để trên thư mục ảo của server.
Các phương thức của Content Linking component:
GetListCount: Đếm số item trong content linking list file.
GetNextURL: Lấy URL của trang kế tiếp được liệt kê trong Content Linking List
file.

GetPreviousDescription: Lấy phần mô tả của trang trước được liệt kê trong
Content Linking List file.
GetListindex: Lấy index của trang hiện tại trong Content Linking List file.
GetNthDesciption: Lấy phần mô tả của trang thứ N được liệt kê trong Content
Linking List file.
GetPreviousURL: Lấy URL của trang trước được liệt kê trong Content Linking
List file.

21


GetNextDescription: Lấy phần mô tả của trang kế tiếp được liệt kê trong Content
Linking List file.
GetNthURL: Lấy URL của trang thứ N được liệt kê trong Content Linking List
file.
5. File Acess Component:
Conponent này giúp ta vaò việc truy xuất vào hệ thống file của server. Nó có hai
đối tượng giúp ta thực hiện điều này là FileSystemObject và TextStream.

CHƯƠNG 3 : TRUY XUẤT CƠ SỞ DỮ LIỆU TRONG ACTIVE
SERVER PAGE
Ở phần trên chúng ta đã biết về các khái niệm tổng quát về Active Server Page và
các thành phần cần có khi xây dựng một ứng dụng.Trong chương này sẽ trình bày
kỹ hơn về Active Data Object, đây chính là ưu điểm mạnh nhất cho việc phát triển
ứng dụng cơ sở dữ liệu trên web (Web Database).
Database Access Component
Một ứng dụng Web databse viết bằng ASP có thể truy xuất dữ liệu trong một
database, bằng cách sử dụng Component Database Access của ActiveX hay còn gọi là
thư viện ADO (Active DataObject).Đây cũng chính là điểm mạnh nhất của ASP trong
việc phát triển ứng dụng Web Database.

Các Object của ADO cung cấp có thể tạo ra các kết nối(Connection) với hầu hết
các kiểu Database, cũng như việc truy xuất, cập nhật các Database 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 database 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.
ADO interface:
ADO được thiết kế một cách đơn giản nhất, nó giao tiếp với database 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 database nào nếu như ODBC có driver hỗ trợ. Hiện nay tồn tại driver
cho hầ
u hết Server
các loạiPages
database như Foxpro, Access, Oraccle, SQl server…
Active
DATA
Sự giao tiếp giữa ADO và các thành phần khác trong hệ thống có thể được mô tả
theo hình vẽ sau:
Active Database
Component

Active Data Object

22

ODBC Driver

Data Provider
Interface



Quá trình truy xuất cơ sở dữ liệu thông qua ODBC
Các Object trong ADO
Các Object chính trong đó là: Connection, RecordSet và Command, ngoài ba
Object chính này còn có các Object, tham số, thuộc tính,phương thức con.Sử dụng
Connection ta 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 cập nhật một record bằng cách sử dụng
Command object. Kết quả thực hiện các query trên database sẽ được lưu vào đối
tượng RecordSet, trên đối tượng này ta có duyệt và lấy ra một hay nhiều Record. Sau
đậy ta xem xet cụ thể cấu tạo cũng như cách sử dụng của từng của từng Object.
Tạo các custom component sử dụng trong ASP:
Ta có thể tạo một component để sử dụng trong môi trường Active Server Pages,
bằng bất cứ ngôn ngữ lập trình nào hổ trợ cho việc tạo Automation Server. Các ngôn
ngữ có hổ trợ kỹ thuật này hiện nay là Visual Basic, Visual C++ từ các version 4.0 trở
về sau. Việc chọn ngôn ngữ nào để hiện thực là tùy thuộc vào người lập trình, phụ
thuộc vào sự thân thiện với ngôn ngữ đó, các công cụ hổ trợ, các kỹ thuật lập trình
cũng như các kích thước của ứng dụng sau khi biên dòch.
Hiện nay trong các tài liệu có liên quan đến các kỹ thuật lập trình theo cộng nghệ
ActiveX của Microsoft hầu hết đều đưa ra các công thức để hiện thực các component
này bằng Visual Basic 4.0 và 5.0. tuy nhiên trong việc lập trình hướng tới đối tượng
thật sự thì Visual C++ là một môi trường điển hình hơn, với cấu trúc thừa kế của các
thư viện chứa trong nó. Mặc dù việc hiện một code Component chạy trên server, sử
dụng trong ASP không là một công việc mới lạ trong Visual Basic, nhưng việc hiện
thực các component bằng Visual C++ lại gần như không thấy tài liệu nào hướng dẫn
một cách cụ thể, trong phấn này em xin trình bày các bước để hiệb thực một
component bằng môi trường Visual C++ như là một cách hiện thực khác hơn trong đó
sử dụng các khả năng của công cụ ATL (Active Template Library).
Automation Server & Activex Component:
Automation Server có thể được coi là một thư viện các Object (Class), mà khi nó
đã được đăng ký trên server, nó có khả năng cho phép các ứng dụng khác nhìn thấy


23


và sử dựng các Class của mình. Bên trong của một component như thế, có thể chứa
một hay nhiều các Class, với Interface của nó, nhờ vào các Interface này các ứng
dụng khác có thể giao tiếp với các Object bên trong. Thông thường các Interface này
là Idispatch hoặc User Interface.
Automation Server có thể được thực hiện ở dạng in_process, thi hành trong vùng
hoạt động của controller, hoặc có thể ở dạng local, chỉ thực thi trong không gian họat
động của nó. Automation Server còn có thể thực hiện ở dạng remote, sẽ thưcj thi
trong vùng hoạt động của máy khác. Dạng biên dòch của Automation Server có thể là
DLL (Dynamic Link Library) hoặc EXE (Excutable). dạng EXE nó chỉ có thể thực
thi ở dạng local hoặc remote
Bằng Visual C++ ta có thể xây dựng các Component bằng cách viết thẳng với C
API và thiết lập bằng tay các Interface, dựa trên việc tạo và dòch các file IDL
(Interface Definition Language). Thật may là Visual C++ đã cung cấp cho ta cộng cụ
ATL, dùng để tạo ra các thư viện liên kết động, trong đó chứa các Interface cho phép
những ứng dụng khác sử dụng được các object của nó.
1. Đối tượng 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 Object này trong trang ASP. Phát biểu tạo inStance cho
Connection có cú pháp như sau:
<%
Connection_name=Server.CreatObject(“ADODB.Connection”)
%>
Thông thường trong một ứng dụng nếu ta cần có một liên kết với Data Source cố
đònh cho tất cả các trang thì khi đó ta sẽ đặt instance của Connection có tầm vực ở
mức Application bằng cách đưa phát biểu tạo instance ở trên vào các thủ tục
Application_onStart():
<%

Sub Application_onStart()
Set Connection_name = Server.CreateObject(“ADODB.Connection”)
End Sub
%>
Hoặc thiết lập tầm vực cho Connection ở mức session như sau:
<%
Sub Session_onStart()
Set Connection_name= Server.CreateObject(“ADODB.Connection”)
End Sub
%>
Tuy nhiên ta 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 user truy xuất tới database, đó là khả năng Connection pooling của
ODBC 3.0

24


Connection pooling
Các ứng dụng cơ sở dữ liệu truyền thống đều tạo một mối liên kết tới database mà
nó sử dụng, còn các ứng dụng Database trên web lại mở và đóng các liên kết này ở
mỗi trang web.Một phương pháp cho các ứng dụng Database trên web là tạo một sự
liên kết liên tục với cơ sở dữ liệu của từng user 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 user kết nối tới
cơ sở dữ liệu mà không làm việc và nó chỉ đạt được độ tin cậy đối với các web site có
sự lưu thông dữ liệu thấp(low-traffic)
Phương pháp tiện lợi hơn trong việc quản lý các kết nối với cơ sở dữ liệu của ứng
dụng web là quản lý bằng Connection Pool của ODBC 3.0 nhằm giảm bớt số lượng
liên kết rảnh rỗi.ODBC sẽ mở các kết nối và quản lý các kết nối này.Mỗi khi có một
yêu cầu kết nối mới thì thực hiện việc kiểm tra xem có liên kết nào rảnh không, nếu
không có thì sẽ tạo kết nối mới, ngược lại sẽ lấy liên kết rảnh này mà không tạo liên

kết mới.Nếu có một liên kết rảnh nào trong Connection Pool tồn tại quá 60s thì nósẽ
tự động hủy bỏ.
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 ConnectionPool về giá trò 0.
Các phương thức của đối tượng Connection
- Open method: Sử dụng để mở một kết nối với Database.Sau khi tạo một
instance cho Connection Object, ta có thể mở một 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 ConnectionString User Password
Trong đó ConnectionString là chuỗi đònh nghóa tên của data Source (DNS),tên này
được khai báo trong ODBC. User và Password, Sẽ thực hiện việc mở 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
data Source.
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 Execite với cú pháp trong VBScript như sau:
Connection.Execute Commantext, RecordAffected, options
Trong đó thông số option có các giá trò khác nhau tương ứng với mỗi loại
CommanText.Các giá trò của Option theo bảng sau:
Giá trò
0

Danh hiệu hằng tương ứng
adCmdUnknown

1

adCmdText

2


adCmdTable

25

Mô tả CommanText
Giá trò này mặc đònh khi đònh
nghóa
CommandText là một câu lệnh
(ví dụ như SQL)
Tên của Table mà tasẽ tạo một
RecordSet từ đó


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×