Mặc định, tất cả các biến đều có kiểu variant kiểu biến thể Triệu gọi thủ tục: Call Tên thủ tục Thủ tục không thể trả về một giá trị, khi nó được triệu gọi, giá trị của nó không được sử
Trang 1Response write rs.fields(“name”)
Rs.moveNext
Wend
%>
v Do loop
<%
Do While điều kiện
Các câu lệnh
Loop
%>
Ví dụ:
<%
Do While not rs.eof
esponse write rs.fields(“name”)
Loop
%>
3 Khai báo hàm và thủ tục
a Thủ tục (Subroutines)
Sử dụng cú pháp Sub End sub để khai báo thủ tục.Ví dụ:
<%
Sub Chao
Response.write “Chào b ạn”
End sub
%>
Ngoài ra, thủ tục còn cho phép truyền tham biến Ví dụ:
<%
Sub Chao(ten)
Response.write “Chào b ạn” & ten
End sub
%>
Biến sử dụng không cần khai báo mà tự xác định khi gán giá trị Mặc định, tất cả các biến đều có kiểu variant (kiểu biến thể)
Triệu gọi thủ tục: Call Tên thủ tục
Thủ tục không thể trả về một giá trị, khi nó được triệu gọi, giá trị của nó không được sử dụng Để trả về giá trị khi gọi chương trình, bạn sử dụng Hàm (function)
b Hàm (function)
Sử dụng cú pháp Function End function để khai báo hàm.Ví dụ:
<%
Function Tong(a,b)
Tong = a + b
End Function
%>
Trang 2Trong ví dụ trên, hàm Tong trả về kết quả tổng của hai số Cách gọi hàm như
sau:
<%
Response.write Tong(2,3)
%>
4 Trộn lẫn mã VBScript, ASP và HTML
Ngoài việc sử dụng phương thức write của đối tượng Response, bạn có thể trộn lẫn và sử dụng kết hợp thẻ HTML với các lệnh điều khiển của VBScript
Ví dụ: Viết đoạn mã của trang chao.asp
<html>
<h1> Chao </h1>
<%
Response.write “<font size=’1’>Chào các bạn </font><br>” Response.write “<font size=’2’>Chào các bạn </font><br>”
%>
</html>
Có thể viết lại tương đương như sau:
<html>
<h1> Chao </h1>
<% for i=1 to 2 %>
<font size=<%=i %>>Chào các bạn </font><br>”
<% Next%>
</html>
Trang 3CHƯƠNG 3
THAM CHIẾU ĐỐI TƯỢNG
Đối tượng là những đoạn chương trình có khả năng thực hiện một số công việc
cơ bản nào đó Mỗi đối tượng là một kết hợp giữa lập trình và dữ liệu ASP cung cấp sẵn 5 đối tượng (object), những đối tượng này đã có sẵn, chỉ cần biết cách sử dụng Mỗi đối tượng thực hiện một số chức năng riêng khác nhau Các đối tượng
này được gọi là các Built-in-Object, bao gồm:
q Request: lấy thông tin từ người duyệt web (user)
q Response: gửi thông tin tới người duyệt web (user)
q Server: điều khiển môi trường hoạt động của ASP
q Session: lưu giữ thông tin về 1 session của user
q Application: chia sẻ thông tin giữa các user trong cùng một ứng dụng
Sơ đồ mối quan hệ giữa các đối tượng ASP trong ứng dụng ASP
Cú pháp của các đối tượng
§ Cú pháp của các đối tượng không phụ thuộc vào ngôn ngữ kịch bản mà người lập trình sử dụng
§ Ðể truy xuất thông tin của một đối tượng ta dùng các phương thức (method)
và các thuộc tính (property)
Sử dụng các phương thức (method)
Một phương thức là một thủ tục hoạt động trên một đối tượng nào đó Cú pháp tổng quát của phương thức là:
Object.Method [parameters]
+ parameter: có thể là biến, dữ liệu, một chuỗi hoặc một URL phụ thuộc vào
phương thức
Đối tượng Application Ứng dụng ASP
Đối tượng Session
(1 user)
Đọc thông tin từ Application Cập nhật thông tin từ Application
Đối tượng Session (1 user) Liên lạc qua IIS, chia sẻ thông tin giữa các người sử dụng Quản lý quá trình và tài nguyên của ứng dụng Internet Information Server I/O: Đối tượng Request và Response
Browser Liên lạc với browser qua Internet
Trang 4Sử dụng các thuộc tính (Property)
Một thuộc tính là một tính chất được đặt tên của một đối tượng Chúng định nghĩa các tính chất của đối tượng như kích thước, màu, vị trí trên màn hình hay thể hiện các trạng thái của đối tượng như được phép (enable) hay không được phép (disable) Cú pháp tổng quát của thuộc tính là:
Object.Property [parameters]
+ parameter: có thể là các biến, dữ liệu, chuỗi ký tự, hoặc là một URL
1 Đối tượng Request
Đối tượng Request được sử dụng để lấy tất cả các thông tin từ người sử dụng khi yêu cầu một trang hay đệ trình (submit) một biểu mẫu (form) Điều này bao gồm các biến HTTP chỉ định trình duyệt và người dùng, các cookies được lưu trên trình duyệt và các giá trị bất kỳ được gắn vào URL với vai trò chuỗi truy vấn (query string), hay xác lập trong các điều khiển HTML trong một phân đoạn <Form> trong một trang
Cú pháp:
Request [.collection/ property/ method] (variable)
a Các tập hợp
ð ClientCertificate: một tập các giá trị của tất cả các trường hay mục trong
Client Certificate mà người dùng trình cho Server khi truy xuất một trang hay tài nguyên Các thành phần của tập hợp này đều là giá trị chỉ đọc
Cú pháp: Request.ClientCertificate(key[item])
+ Item: biểu thị giá trị của một phần tử cụ thể trong tập hợp
+ key: biểu thị một tên của một phần tử cụ thể trong tập hợp
ClientCertificate
ð Cookie: được sử dụng để thiết lập hoặc lấy giá trị Cookie, gởi kèm trong
HTTP Request
Cú pháp: Request.Cookie(cookie)[(key) | attribute]
+ cookie: chỉ định cookie để nhận giá trị
+ key: tham số tùy chọn dùng để nhận các khoản mục có trong cookie
+ attribute: chỉ định thông tin về bản thân cookie Tham số thuộc tính này có thể là Name hoặc Haskey
ð Form: tập hợp này nhận giá trị của những thành phần trong form được gởi
bằng phương thức POST thông qua một HTTP Request
Cú pháp: request.form(element)[(index) |.count]
+ element: tên của một thành phần trong form
+ Index: tham số tùy chọn cho phép truy cập một trong những giá trị của một tham số
+ Tập hợp Form được chỉ mục theo tên của các tham số trong request, chúng
ta có thể biết có bao nhiêu tham số trong tập hợp form bằng cách gọi request.form().count
Ví dụ:
Holot=Request.Form(“firstname”)
Trang 5ð QueryString: Tập hợp này nhận tất cả giá trị trong chuỗi vấn tin Chuỗi vấn
tin HTTP được chỉ định bởi những giá trị theo sau dấu “?” trong câu lệnh Request
Cú pháp: request.queryString(element)[(key)|.count]
+ element: biểu thị giá trị cụ thể trong tập hợp
+ key: biểu thị tên của phần tử cụ thể trong tập hợp
+ count: là số phần tử trong tập hợp
Ví dụ:
Request.queryString(“firstName”)
Tương đương với Request.queryString.Item(“firstName”)
ð ServerVariable: một tập các giá trị của tất cả các header HTTP được gởi từ
client cùng với Request, cùng với giá trị một số biến môi trường định sẵn của web Server
Một số biến môi trường thường được sử dụng:
+ LOCAL_ADDR: Địa chỉ TCP/IP của máy chủ Web đang chấp nhận yêu cầu HTTP của máy khách
+ LOGON_USER: Bảng kê người sử dụng WindowsNT là bảng kê người
sử dụng đã ghi vào hệ thống Điều này luôn đúng bất kể loại an toàn bạn đã thiết lập cho máy chủ Web
+PATH_INFO: Đường truyền ảo của trang Web mà từ đó khách hàng đưa ra yêu cầu HTTP
+ QUERY_STRING: Các giá trị máy khách gởi đến đằng sau dấu chấm hỏi (?) ở phần cuối URL yêu cầu HTTP Phần tử này chứa thông tin gởi tới máy chủ Web bằng phương thức HTTP GET
+ REMOTE_ADDR: Địa chỉ TCP/IP của máy khách
+ REMOTE_HOST: Địa chỉ Ip mà từ đó máy chủ Web nhận được yêu cầu HTTP của máy khách
+ REQUEST_METHOD: Phương thức khách hàng đưa ra yêu cầu
+ SERVER_NAME: Địa chỉ TCP/IP của máy chủ Web
+ SERVER_PORT: Cổng máy chủ mà từ đó yêu cầu HTTP của khách hàng được gởi, thường là cổng 80 hoặc 8080 đối vớí hầu hết các máy chủ
Ví dụ: Đoạn mã sau được sử dụng để xác định máy khách
<%
dim strUserName strUserName=request.ServerVariable(“LOGON_USER”)
%>
b Thuộc tính
Đối tượng Request chỉ có một thuộc tính cung cấp thông tin về số byte dữ liệu
mà người dùng chuyển lên trình chủ Thuộc tính này ít được sử dụng
ð TotalBytes: trả lại tổng số byte trong đối tượng Request được gởi lên từ
trình khách
Trang 6c Phương thức
Đối tượng Request chỉ có một phương thức là BinaryRead, cho phép truy xuất
toàn bộ nội dung của yêu cầu của người dùng được đẩy lên Server qua phân đoạn
<FORM> của một trang web
@ Chú ý: Tất cả các biến có thể truy xuất ngay bằng cách gọi Request(biến) (ví dụ: Request(“name”))mà không cần tên tập hợp Trong trường hợp này, Web Server tìm kiếm tập hợp theo thứ tự sau:
o QueryString
o Form
o Cookies
o ClientCertificate
o ServerVariables
Biến bạn đang sử dụng sẽ nhận được giá trị ngay từ cặp thẻ name/ value đầu tiên mà tên của nó so khớp với chuỗi được yêu cầu
2 Đối tượng Response
Khác với đối tượng Request, đối tượng Response gởi tất cả các thông tin vừa xử
lý cho các client yêu cầu Chúng ta có thể sử dụng đối tượng này để giao tiếp với người dùng, điều khiển việc chia sẻ dữ liệu, viết thông tin tiêu đề HTTP, cũng như điều khiển các cookie trên trình duyệt của máy khách
Cú pháp:
Response.collectio | property | method
a Tập hợp
ð Cookie: Tập hợp này sử dụng để thiết lập giá trị cho biến cookies Nếu
cookie không tồn tại thì web Server sẽ tạo một cookie mới trên máy client Ngược lại, giá trị của cookies là giá trị mới thiết lập Giá trị Cookie phải là những thông tin được gởi về đầu tiên cho trình duyệt của client
Cú pháp: Response.Cookie.Item(key)[(SubKey) | attribute]=strCookieValue + Item: trả lại giá trị của một phần tử cụ thể trong tập hợp
+ Key: Trả lại tên của một phần tử cụ thể trong tập hợp
+ Count: biểu thị số cookie hiện thời trong tập hợp
Mỗi phần tử trong tập hợp Cookie cũng có các thuộc tính sau:
- Domain: Thuộc tính chỉ ghi, cho biết vùng tạo cookie này
Ví dụ: giả sử muốn gán vùng “mycrop.com” tới cookie lastsearch
<% response.cookie (“lastSearch”).Domain=”mycrop.com”%>
- Expires: Thuộc tính chỉ ghi, quy định ngày cookie hết hạn, nếu không quy định thuộc tính này, cookie sẽ hết hạn khi phiên làm việc kết thúc
Ví dụ: Giả sử muốn cookie hết hạn ngày 19/1/2002
<%Response.cookie(“lastSearch”).Expires=#1/19/2002# %>
- Haskeys: Thuộc tính chỉ đọc, cho biết cookie có các khóa phụ hay không
- Path: Thuộc tính chỉ ghi, nếu giá trị này được chỉ định thì client chỉ gởi cookie cho server có đường dẫn này