IV. TÌM HIỂU CÔNG NGHỆ ASP (Active Server Pages)
1. ASP và cấu trúc một trang ASP
1.1. ASP là gì
ASP (Active Server Page) là môi trường kịch bản trên máy chủ (Server-side Scripting Environment) dùng để tạo và chạy các ứng dụng Web động, tương tác và có hiệu quả cao. Nhờ tập các đối tượng có sẵn (Built-in Object) với nhiều tính năng phong phú và khả năng hỗ trợ các ngôn ngữ Script như VBScript, Java script cùng một số thành phần ActiveX khác kèm theo, ASP cung cấp giao diện lập trình mạnh và dễ dàng trong việc triển khai ứng dụng trên Web.
Trang ASP có thể chạy trong các môi trường sau đây:
- IIS (Internet Information Server) trên Windows NT Server, Windows 2000.
- PWS (Personal Web Server) trên Windows 95/98 và Windows NT Workstation.
Trang ASP là trang Web trong đó có sự kết hợp các thành phần HTML, ActiveX Comopnent và Scipt ASP. Có thể xem trang ASP như là một trang HTML có bổ xung các lệnh kịch bản ASP.
K IL O B O O K S .C O M
1.2. Mô hình hoạt động của ASP
Khi một Browser thông qua trình duyệt Web gửi yêu cầu đến một tập tin .asp nào đó thì kịch bản chứa trong tập tin sẽ được chạy và trả kết quả về cho Browser đó. Khi Server nhận yêu cầu tới một tập tin .asp thì nó sẽ đọc từ đầu đến cuối tập tin đó, thực hiện các câu lệnh kịch bản và trả kết quả về cho Browser. Kết quả trả về là một trang HTML
1.3. Cấu trúc một file ASP
Trang ASP đơn giản là trang văn bản với phần mở rộng .asp, gồm có các thành phần sau:
- Văn bản (text) - Thẻ HTML
- Các đoạn kịch bản ASP Ví dụ:
<HTML>
<title> ví dụ</title>
<BODY>
Ngày: <%=Now()%>.
</BODY>
</HTML>
Các đoạn kịch bản ASP có thể xuất hiện ở mọi nơi trong trang HTML.
ASP và HTML có sự gắn bó chặt chẽ với nhau. Với ASP, ta có thể chèn các kịch bản thực thi được vào trực tiếp vác tập tin HTML. Khi đó việc tạo trang HTML và xử lý kịch bản trở nên đồng thời, điều này cho phép tạo ra các tương tác của Website một cách linh hoạt, uyển chuyển. Ngoài ra còn có thể xem các thành phần HTML động vào trang Web tuỳ từng trường hợp cụ thể.
Những lệnh nằm giữa <%...> phải sử dụng ngôn ngữ viết kịch bản chính thức quy định cho trang đó. VBScript là ngôn ngữ mặc định của ASP.
Nếu muốn sử dụng một ngôn ngữ khác thì chúng ta phải định nghĩa ngôn ngữ tại đầu mỗi trang ASP như sau: %@LANGUAGE= tên ngôn ngữ %.
Các mã lệnh được chèn vào trong khắp trang Web và được xủ lý tuần tự. Mã lệnh là các kịch bản. Hiện tại ASP cho phép dùng hai mã kịch bản là VBScript và Javascipt. Lựa chọn kịch bản được đặt ngay tại dòng đầu tập tin:
K IL O B O O K S .C O M
<%@ LANGUAGE=“VBSCRIPT”%>
<%@ LANGUAGE=“JAVASCRIPT”%>
Những đoạn mã không phân biệt dài ngắn được đặt trong dấu hiệu
<%...%>.
Khi một trang ASP được trình duyệt Web yêu cầu, đầu tiên Web Server sẽ duyệt tuần tự trang ASP này và chỉ thực hiện dịch những câu kịch bản ASP, kết quả là một trang thuần HTML sẽ được đưa ra trình duyệt (Browser). Tuỳ theo người xây dựng trang Web quy định, mà kết quả do Web Server dịch sẽ trả về lần lượt cho trình duyệt của người dùng hoặc chỉ trả về sau khi đã dịch xong tất cả các kịch bản. Người duyệt sẽ không thấy những lệnh kịch bản ASP, bởi vì nó đã được thay thế bằng các giá trị kết quả của quá trình thực thi trên Server.
1.4. Các đối tượng trong ASP
ASP đưa ra một số đối tượng xây dựng sẵn với những tính năng phong phú giúp cho nhà quản lý mọi thứ từ các biến cho tới mẫu đệ trình. 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 Built-in Object.
Đối tượng Session
Đối tượng Session dùng để lưu trữ những thông tin cần thiết trong phiên làm việc của user. Những thông tin lưu trữ trong Session không bị mất đi khi user di chuyển qua các trang của ứng dụng.
Bởi vì các chương trình ứng dụng, các nhà phát triển thường ít khi dùng dữ liệu liên kết với một người riêng biệt, nên đối với đối tượng của session các nhà phát triển có thể tạo ra các biến dành cho người dùng đơn, đồng thời nó cho phép bạn tao ra các biến phiên làm việc để sử dụng cho những mục đích riêng...
Các thuộc tính và phương thức của đối tượng session:
Thuộc tính Mô tả
SessionID Trả về giá trị định danh cho phiên bản làm việc hiện thời
K IL O B O O K S .C O M
Timeout Đặt hoặc trả về thời gian sống của phiên làm việc tính
Theo phút
Phương thức mô tả
Abandon Ngay lập tức kết thúc phiên làm việc
Những thông tin lữu trữ trong Session không bị mất đi khi user di chuyển qua các trang của ứng dụng.
Đối tượng Request:
Đối tượng Request cho phép lấy thông tin thông qua một yêu cầu HTTP.
Chúng ta có thể dùng đối tượng Request để đọc URL, truy cập thông tin từ một form, lấy giá trị cookies lưu trữ trên máy Client.
Những thông tin này gồm có các tham số của Form khi được Submit dùng phương thức POST hay GET, hay các tham số được ghi cùng với các trang ASP trong lời gọi đến trang đó. Dùng đối tượng Request có thể chia sẻ thông tin qua lại giữa các trang ASP trong một ứng dụng. Ngoài ra Request còn dùng để lấy các giá trị Coockie được lưu giữ trên máy Client.
Các thuộc tính của đối tượng Request:
Thuộc tính Mô tả
ClientCertificate Các giá trị lưu trữ trong chứng nhận của máy Client
Coockie Các giá trị cookckie được lưu trữ trên máy client
Form Các tham số của form
QueryString Các tham số được ghi trong lời gọi đến trang ASP
K IL O B O O K S .C O M
ServerVariables Một tập các biến môi trường của server
Đối tượng Response
Khác với đối tượng Request, Response là chìa khóa để gửi thông tin tới user, là đại diện cho phần thông tin do Server trả về cho Web browser.
Đối tượng Response được dùng để gửi thông tin ra người sử dụng, gồm có các thông tin ghi trực tiếp ra Browse, chỉ dẫn Browse của máy Client đến một URL khác và/hoặc thiết lập các cookie trên máy client.
K IL O B O O K S .C O M
Các thuộc tính của đối tượng Reponse:
Thuộc tính Mô tả
Buffer Xác định nếu trang xuất ra có cùng đệm
ContentType Chỉ rã nội dung của HTTP cho
Expires Đặt lượng thời gian trước khi trang đệm hết hiệu lực
ExpriesAbsolute Đặt ngày và giờ kgi có mổttang đệm hết hiệu lực
Stanus Đặt dòng trnạg thái trả về bởi máy chủ. Có thể dùng để đặt
Thông báo
Các phương thức của đối tượng Response:
Phương thức Mô tả
AddHeader Cho phép thêm đầu đề tự tạo cho trang Web
AppendTolog Cho phép thêm thông tin vào đề mục log của Web server cho
yêu cầu này
BinaryWrite Viết dữ liệu nhị phân vào để sử dụng bởi các đối tượng máy
khách
Clear Xoá vùng đệm xuất của trang ASP
End Dừng sử lý ASP và gửi kết quả sang máy khách
K IL O B O O K S .C O M
Flush Làm rỗng vùng đệm và gửi kết quả sang máy khách
Redirect Chỉ dẫn máy khách liên kết đến một URL khác
Write Viết vào trang HTML Đối tượng Server:
Đối tượng Server cung cấp phương tiện truy cập đến những phương thức và thuộc tính trên server. Thường sử dụng phương thức Server.CreateObject để khởi tạo instance của một ActiveX Object trên trang ASP.
Có lẽ phương thức quan trọng nhất trong tất cả các phương thức của đối tượng Server là phương thức CreateObject, nó tạo ra một phiên bản của một thành phần ActiveX giao tiếp khách đòi hỏi phải theo phương thức trên.
Các thuộc tính và phương thức của đối tượng Server:
Thuộc tính Mô tả
SciptTimeout Đặt thời gian để một kịch bản chạy trước khi một thông
Báo xuất hiện trên máy khách
CreateObject Tạo một phiên bản của một thành phần ActiveX để sử trong ASP
HTMLEncode Cung cấp mã hoá HTML của một chuỗi đã cho
Mappath Trả về cấu trúc thư mục đầy đủ của một thư mục ảo
URLENcode Cung cấp mã hoá URL của một chuỗi đã cho
K IL O B O O K S .C O M
31 Đối tượng Object Context
Sử dụng Object Context để chấp nhận hoặc huỷ bỏ transaction được khởi tạo bởi ASP Seript.
1.5.Các Component của ASP (ActiveX component):
Đây là thành phần đặc biệt được thiết kế để thực thi các tác vụ hữu dụng, tổng quát cho các Website, bao gồm cả truy xuất dữ liệu. bạn tạo những thành phần này trong trang Web của bạn bằng cách sử dụnh phương thức Create Object của đối tượng Server. Một khi chúng đã được tạo bạn của thể truy nhập các thuộc tính vạ phương thức của chúng để thực thi các chức năng trong Website của bạn.
a)Thành phần truy nhập cơ sở dữ liệu ADO (Database Access Component):
Thành phần hữu ích nhất trong tất cả các thành phần ASP là thành phần truy nhập cơ sở dữ liệu ADO. Đây là một thành phần trong bộ Microsoft Data Access Component (MDAC - gồm ADO, OLEDB và ODBC). ADO cung cấp giao diện lập trình quên thuộc tính và phương thức theo mô hình đối tượng để tạo sự dễ dàng cho các lập trình viên, nhất là những người đã quen với DAO và ADO.
Application
ADO
OLE DB
K IL O B O O K S .C O M
Ở mức hệ thống, các chức năng tương tác dữ liệu thật sự với DBMS sẽ do thành phần OLE DB (gọi là OLE DB Provider) dảm nhận, thành phần này do nhà sản xuất CSDL cung cấp cùng với sản phẩm của họ. Hiện nay, do đa số hệ DBMS dùng ODBC làm giao diện CSDL nên Microsoft có kèm theo một thành phần gọi là OLE DB Provider for ODBC để ADO có thể làm việc trên hệ thống cơ sở dữ liệu hiện tại dùng giao tiếp ODBC.
Đối tượng Connection được tạo bằng phương thức CreateObject của đối tượng Server và sử dụng một biến để nhận đối tượng trả về. Khi đối tượng Connection đã được tạo, nó có thể được sử dụng để mở một liên kết với bất kỳ nguồn dữ liệu ODBC nào.
Các đối tượng của ADO:
Đối tượng Mô tả
Command Thực thi một tác tử tương tác với một nguồn dữ liệu ODBC. Toán tử có thể là một phát biểu SQL hay là một
thủ tục lưu trữ.
K IL O B O O K S .C O M
Cnnection Thiết lập một liên kết với một nguồn dữ liệu ODBC Error Trả về các lỗi của trình điề khiển ODBC
Field Cho phép truy nhập một trường cụ thể trong một tập các
bản ghi.
Parameter Cho phép định giá để chuyển đến một đối tượng Command
Recordset Miêu tả một tập các bản ghi trả về từ một đối tượng Command
b)Thành phần truy nhập tập tin ( File Access Component):
Thành phần này sử dụng hai đối tượng FileSytem và đối tượng TextStream để thu nhập và thay đổi các thông tin được lưu trữ trong các file trên Server.
Nếu muốn mở một file để truy nhập, trước tiên tạo một đối tượng FileSystem bằng phương thức CreateObject của đối tượng Server. Khi đối tượng FileSystem có một phiên bản cụ thể, bạn có thể sử dụng phương thức CreateTextfile để tạo một File mới hoặc phương thức open TextFile để mở một file đang tồn tại. Trong trường hợp này, kết quả trả về là một đới tượng TextStream cho phép đọc và ghi.
c) Thành phần năng lực trình duyệt (Browse Capabilities Component):
Thành phần này được dùng để đem lại cho lập trình viên những thông tin hữu ích về năng lực của Web Browser trên máy Client, từ đó có thể biến đổi trang Web phù hợp với mỗi trình duyệt cụ thể.
Khi Browse kết nối với Web Server, nó tự động gửi tới những thông tin người sử dụng. Những thông tin này là một chuỗi ký tự ASCII được sử dụng để nhận biết loại Browse và phiên bản của nó. Thành phần năng lực trình duyệt sẽ so sánh những thông tin này đối với những đầu mục trong tệp Browsecap.ini. Nếu tìm thấy nó sẽ thừa nhận những thuộc tính này của
K IL O B O O K S .C O M
34
Browse. Nếu không tìm thấy trong tệp Browsecap.ini, các thuộc tính của trình duyệt sẽ được thiết lập về giá trị mặc định (được định nghĩa trong tệp Browsecap.ini). Như vậy, chúng ta có thể thêm thuọcc tính hay các loại Browser mới vào để thành phần này có thể nhân biết được đơn giản bằng cách nâng cấp tệp Browsecap.ini
d) Thành phần quay vòng quảng cáo (Ad Rotator Object):
Thành phần này được thiết kế đặc biệt để tự động quay vòng các hình ảnh quảng cáo trên trang Web. Nó đọc thông tin về việc quản cáo từ một file văn bản đặc biệt điều khiển quảng cáo nào được hiện và trong bao lâu được gọi là Rotator Schedule File.
Mỗi khi người sử dụng mở hoặc nạp lại một trang Web, thành phần Ad Rotator sẽ hiển thị một quảng cáo mới dựa trên những thông tin mà ta thiết lập trong Rotator Schedule File.
e) Thành phần liên kết nội dung (Content Linhking Component):
Thành phần cung cấp cho lập trình viên sự quản lý một danh sách các địa chỉ URL để có thể biến các trang Web trên Web Site trở nên giống như các trang sách trong một quyển sách.
Giống như thành phần xoay vòng quản cáo, thành phần liên kết nội dung tuỳ thuộc vào một file văn bản. File này được biết như là danh mục liên kết nội dung (Content LinKing List File), cung cấp tự động một danh mục các trrang Web được liên kết và được mô tả trong từng trang. Đây là ý tưởng được sủ dụng trong các ứng dụng nư là báo điện tử trên mạng hay liệt kê các bài viết trên diễn đàn thông tin.