NGÔN NGỮ LẬP TRÌNH ASP
4. CÁC ĐỐI TƯỢNG CƠ BẢN TRONG ASP
4.1.1. Các tập hợp (Collection) của đối tượng Request
Đối tượng Request cung cấp năm collection cho phép chúng ta truy xuất tất cả các loại thông tin về yêu cầu của
browser đối với server. Các collection của đối tượng Request bao gồm:
Client Cirtificate
Một tập các giá trịcủa tất cảcác trường (field) hay các mục (entry) trong Client certificatemà browser chuyển đi để 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đều là giá trịchỉđọc (read-only).
Cookies
Cookieslà một file văn bản có kích thước nhỏ được lưu trữ trên máy client. Mỗi khi người dùng thăm một website, ta có thểbí mật gắn một tập tin chứa các thông tin mà mình muốn lên đĩa cứng của họ, chẳng hạn như thông tin về user, thông tin về số lần truy cập website,... Tuy nhiên các Cookies không phải được truy cập ngẫu nhiên bởi các website mà chúng được truy cập bởi các domain tạo ra chúng.
Các cookies trong đối tượng Request đều là thuộc tính chỉ đọc (read-only) do đó ta chỉ có thể xem các giá trị cookies mà không thể sửađổi giá trị của chúng. Để lấy giá trị của cookies ta sửdụng cú pháp sau:
Request.Cookies(name)[(key)|.attribute trongđó:
name: tên của cookie (kiểu chuỗi)
key: khóa của cookie cần lấy giá trị(kiểu chuỗi)
attribute: thông tin của cookie, là một trong các thông sốsau:
+ Domain: (chỉ đọc – read only) cookie chỉ được gởi chođối tượng Request của domain này.
+ Expires: (chỉ ghi - write only) chỉ định ngày mà Cookieshết hiệu lực (expires), nếu không chỉ định ngày thì cookie sẽexpires khi kết thúc phiên làm việc.
+ HasKeys: (chỉ đọc – read only) xác định khóa của cookie có tồn tại không.
+ Path: (chỉ ghi- write only) nếu thuộc tính này được xác lập thì chỉ cookie chỉ được gởi cho những Request của đường dẫn này, nếu không thì cookie chỉ được gởi cho những Request thuộcđường dẫn củaứng dụng.
+ Secure (chỉ ghi-write only) xác định cookie có bảo mật hay không.
Mộtcookiecó thểchứađựng một tập hợp các giá trị. Ta nói cookieđó có nhiều khóa.
Ví dụ:
<HTML>
<BODY>
<%
Dim x,y
For each x in Request.Cookies Response.write("<P>")
If Request.Cookies(x).HasKeys Then For each y in Request.Cookies(x)
Response.write(x & ":" & y & "=" &
Request.Cookies(x)(y)) Response.write("<br>") Next
Else
Response.Write(x & "=" & Request.Cookies(x) &
"<BR>") End If
Response.write "</p>"
Next
%>
</BODY>
</HTML>
Form
CácFormcho phép người dùng nhập vào dữliệu thông qua các control HTML như edit, radio button, check box, ... Khi người dùng submit một biểu mẫu thì tất cả các giá trị của các control trong phân đoạn <FORM> sẽđược gởi lên Web Server khiđặt giá trịcủa thuộc tính METHOD trong tag <FORM> làPOST.
Các thành phần của đối tượng này đều là giá trị chỉ đọc (read only).
Để truy xuất các giá trị của các control HTML mà người dùngsubmitbằng phương thứcPOSTta sửdụng cú pháp sau:
Request.Form(controlname)
trongđócontrolnamelà tên của control mà ta cần lấy giá trị.
Ví dụ:
<HTML>
<BODY>
Chao ban:
<%
Response.Write (Request.Form(“Ho_Lot”)) Response.Write (” ” & Request.Form(“Ten”))
%>
</BODY>
</HTML>
QueryString
Khi người dùng yêu cầu một trang hay đệ trình (submit) một biểu mẫu với phương thức GET thì tất cả các control HTML trong phân đoạn <FORM> của biểu mẫu sẽ được Browser gắn vào URL theo từng cặp tên/giá trị.
QueryStringđược dùngđểlấy vềcác giá trịtrong một biểu mẫu với phương thức làGET. Tất cảcác thông tin được gởi từ biểu mẫu với phương thức GET sẽ được gắn vào URL trên thanh address của browser và dođó mọi người có thểthấyđược các thông tin này, tuy nhiên lượng thông tin được gởi này có giới hạn. Các thành phần của tập đều là giá trị chỉ đọc (read- only).
Để truy xuất các giá trị của các control HTML mà người dùng submit bằng phương thứcGETta sửdụng cú pháp sau:
Request.QueryString (controlname) Ví dụ:
<HTML>
Chào bạn:
<BODY>
Response.Write (Request.QueryString(”Ho_Lot”)) Response.Write (” ” & Request.QueryString(”Ten”))
</BODY>
</HTML>
ServerVariables
Khi cần lấy giá trị các biến môi trường của server ta dùng tậpServerVariables.
Cú pháp:
Request.ServerVariables (variable)
vớivariablechỉ định giá trịgì ta cần lấy. Sau đây là một sốgiá trịtiêu biểu củavariable
Biến Mô tả
ALL_HTTP Trả về tất cả các header mà
client đã gởi, luôn luôn theo sau HTTP_ và viết hoa
AL_RAW Trả về tất cả các header ở dạng thô
APPL_MD_PATH Trả về đường dẫn cho ứng
dụng dùng cho DLL ISAPI APPL_PHYSICAL_PATH Trảvềđường dẫn vật lý tương
ứng củađường dẫn
AUTH_PASSWORD Trảvềgiá trịđã nhập vào trên hộp thoại xác nhận của client
AUTH_TYPE Cách thức mà server dùng để
kiểm tra xác nhận người dùng
AUTH_USER Trả về tên của người dùng
(username)
CERT_COOKIE TrảvềID duy nhất của client CONTENT_LENGTH Trả vềkích thước của dữliệu
mà client gởi CONTENT_TYPE Trảvềkiểu dữliệu GATEWAY_INTERFACE
HTTP_ <headername> Trả về giá trị chứa trong headerheadername
HTTP_USER_AGENT Trả về một chuỗi mô tả
browser gởi yêu cầu
LOCAL_ADDR Trả về địa chỉ của server mà browser gởi yêu cầu tới
Ví dụ: Bạn có thể dùng vòng lặp để xem tất cả các biến của server nhưsau:
<%
For each x in Request.ServerVariables Response.Write (x & ”<BR>”) Next
%>