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 (2.35 MB, 125 trang )
Ví dụ:
5.7.4.4. Các sự kiện
Đối tượng Application chỉ có hai sự kiện là
+ Application_OnStart
+ Application_OnEnd
Đây là hai sự kiện được xử lý trong file cấu hình Global.asa đã được đề cập ở Bài 3
5.7.4.5. Vấn đề lưu trữ dữ liệu bằng đối tượng Application
Về bản chất, đối tượng Application cũng là một biến nằm trong bộ nhớ của máy chủ, ta
không nên lưu trữ dữ liệu lâu dài trong đối tượng Application. Dữ liệu trên biến Application
sẽ bị mất sau khi sự kiện Application_OnEnd xảy ra.
Nếu ta muốn lưu trữ lại những dữ liệu nào đó của Application thì ta cần viết các mã
lệnh xử lý lưu trữ (đưa các giá trị biến này vào trong những dữ liệu chắc chắn nằm trên bộ
nhớ ngoài như file, cơ sở dữ liệu...) trong thủ tục đáp ứng sự kiện Application_OnEnd. Đến
khi ứng dụng được khởi động lại, ta cần đọc lại các giá trị đã lưu vào bộ nhớ trong thủ tục đáp
ứng sự kiện Application.OnStart
5.7.5. ĐỐI TƯỢNG SESSION
Đối tượng Session được sử dụng để lưu trữ thông tin về một phiên làm việc của người
sử dụng hay những thay đổi về phiên làm việc đó. Những biến nằm trong đối tượng Session
giữ toàn bộ thông tin về người sử dụng và nó có thể sử dụng ở trên một máy trạm và có hiệu
lực trên tất cả các trang trong một web.
Máy phục vụ web tìm ra người sử dụng bằng một giá trị SessionID duy nhất, biến
Session này được gán cho người sử dụng kể từ khi người đó bắt đầu phiên làm việc của mình
trên web browser. SessionID được lưu trên máy khách bằng cách viết một Cookie chứa
SessionID trên máy người sử dụng. Cookie này sẽ được gửi về phía server mỗi khi người sử
dụng đưa ra yêu cầu, để nhận ra sự tồn tại của người sử dụng này máy chủ phải đi tìm
SessionID trong bộ nhớ và so sánh nó với SessionID trong Cookie vừa nhận được.
5.7.5.1. Các tập hợp của đối tượng Session.
Tương tự đối tượng Application, đối tượng Session có hai tập hợp đó là Contents và
StaticObjects. Phương pháp sử dụng và truy cập tương tự như đối với Application tuy nhiên
với đối tượng Session ta có thể thêm, bớt, thay đổi các giá trị của Session từ bất kì vị trí nào
và các Session với từng người sử dụng là khác nhau.
5.7.5.2. Các thuộc tính
a. SessionID
SessionID trả lại số định danh của Session. Số này là duy nhất cho mỗi Session. Ta có
thể xem qua ví dụ sau:
113
Kết quả
Nếu ta mở một cửa sổ trình duyệt mới rồi mở trang này ta sẽ nhận được một SessionID
mới.
b. CodePage
Thiết đặt trang mã để hiển thị các nội dung động trong script hiện thời.
c. TimeOut
Thiết đặt thời gian hết hạn của một Session (đơn vị thời gian được tính là phút) mặc
định là 20 phút.
Cú pháp: Session.TimeOut = .
5.7.5.4. Các phương thức
Phương thức trực tiếp trong đối tượng Session là phương thức Abandon.
Chức năng: hủy bỏ toàn bộ các đối tượng trong đối tượng Session giải phóng bộ nhớ
cho web server. Chỉ có phiên làm việc nào thực hiện Abandon thì dữ liệu về phiên làm việc ấy
mới bị giải phóng, các phiên làm việc khác giữ nguyên.
5.7.5.5. Các sự kiện
Đối tượng Session có hai sự kiện đó là
+ Session_OnStart
+ Session_OnEnd
Đây là hai sự kiện được xử lý trong file cấu hình Global.asa đã được đề cập ở Bài 3
5.7.5.6. Ví dụ
Trong ví dụ ở mục 2 bài 4 về Login.Asp sẽ xảy ra trường hợp người dùng biết được địa
chỉ của trang default.asp và gõ thẳng địa chỉ trang này vào cửa sổ trình duyệt khi đó form
login sẽ bị bỏ qua. Ta sẽ kiểm soát vấn đề này bằng biến Session như sau
File LOGIN.ASP
114
Phần đầu File DEFAULT.ASP
5.7.6. ĐỐI TƯỢNG SERVER
Đối tượng Server cung cấp một vài chức năng hỗn hợp mà chúng ta có thể sử dụng
trong các ứng dụng ASP. Mặc dù hầu hết các chức năng của đối tượng này đều khó hiểu và ít
khi được sử dụng nhưng có một phương thức CreateObject và thuộc tính ScriptTimeOut của
đối tượng Server là vô giá. Chúng ta sẽ sử dụng các phương thức và thuộc tính này trong
script của mình.
Đối tượng Server như tên của nó ngụ ý như đại diện cho chính máy phục vụ web và
nhiều chức năng mà nó cung cấp hoàn toàn là chức năng của bản thân máy phục vụ web sử
dụng khi xử lý các yêu cầu từ máy khách và trả lời từ máy phục vụ.
5.7.6.1. Thuộc tính ScriptTimeOut
Chức năng: Khoảng thời gian tối đa cho phép một script chạy trên Server.
Cú pháp: Server.ScriptTimeOut =
Khoảng thời gian được tính bằng giây, giá trị mặc định là 90 và đây cũng chính là
khoảng thời gian tối thiểu.
Ví dụ:
Server.ScriptTimeOut = 120
5.7.6.2. Các phương thức
a. Phương thức CreateObject
Chức năng: Tạo ra một đối tượng hoạt động trên Server.
Cú pháp: Server.CreateObject(ProgID)
Trong đó ProgID là định danh của mỗi đối tượng
Chú ý: Khi gán một biến cho một đối tượng ta cần phải dùng từ khóa Set
Ví dụ:
115
b. Phương thức HTMLEncode
Chức năng: Mã hóa kí tự. Do trong ASP có một vài kí tự có ý nghĩa đặc biệy như <, >, ',
", &,... do đó trong HTML cũng như ASP muốn sử dụng các kí tự này phải mã hóa chúng.
Ngoài ra, một số ngôn ngữ ngoài sử dụng các kí tự cơ bản còn sử dụng thêm một số bộ kí tự
mở rộng như tiếng Việt, Pháp,... Các kí tự này phải được mã hóa trong các trang HTML, ASP
thì các chương trình mới có thể hiển thị đúng đắn. Việc mã hóa này được thực hiện bởi
HTMLEncode do Server cung cấp.
Ví dụ:
HTMLENCO.ASP
Kết quả:
Đoạn mã HTML được tạo ra khi xem nguồn trên trình duyệt:
c. Phương thức MapPath
116
Chức năng: Chuyển đường dẫn logic thành đường dẫn vật lý trên ổ đĩa server. Chức
năng này thường được dùng trong các thao tác truy nhập trực tiếp file.
Cú pháp: Server.MapPath(<đường dẫn logic>)
Ví dụ: nếu ta có file MAPPATH.ASP nằm trên thư mục gốc của web server và đường
dẫn đến thư mục gốc của web server là E:\Inetpub\wwwroot\ thì khi đó
Server.MapPath("MapPath.asp") sẽ là E:\Inetpub\wwwroot\MapPath.asp. Điều đó thể hiện
cụ thể qua chương trình dưới đây:
Mã lệnh MAPPATH.ASP
Kết quả
d. Phương thức URLEncode:
Chức năng: Mã hóa các chuỗi URL (Tương tự như HTMLEncode nhưng ở đây là mã
hóa các chuỗi URL).
Cú pháp. Server.URLEncode(url)
Ví dụ: URLENCO.ASP
Kết quả
117
5.8. COOKIES
5.8.1. Khái niệm COOKIES
Cookies là những mẩu thông tin nhỏ được ghi trên các máy trạm. Khả năng tạo Cookies
phụ thuộc vào tính năng của trình duyệt. Cookies được dùng để xác định user.
Nếu sử dụng IE chúng ta có thể xem thấy các files Cookies được ghi trong thư mục tạm
thời của IE, mặc định là C:\WINDOWS\Temporary Internet Files
5.8.2. Thiết lập COOKIES
5.8.2.1. Đặt giá trị cho Cookies
Để đặt giá trị cho Cookies ta sử dụng tạp hợp Cookies của đối tượng Response. Cú pháp
như sau:
Response.Cookies("
Nếu tên Cookie chưa tồn tại thì một tên mới sẽ được tạo ra và lấy giá trị ngược
lại sẽ đổi giá trị của Cookie thành giá trị mới.
Trong các phiên bản web Server cũ, việc viết các Cookies phải được đặt trước bất cứ
một lệnh xuất kết quả ra client nào, trái điều này script sẽ bị lỗi.
Ví dụ:
5.8.2.1. Đặt thời hạn cho cookies
Theo mặc định, các Cookies sẽ hết hạn và tự động xóa khỏi máy trạm khi người dùng
đóng trình duyệt. Nhưng chúng ta có thể chỉ ra ngày tháng hết hạn cho mỗi cookies
Để đặt giờ hết hạn cho Cookies ta sử dụng:
Response.Cookies("
Ví dụ:
5.8.3. Lấy giá trị của COOKIES
Để lấy giá trị của Cookies ta sử dụng tập hợp Cookies của đối tượng Request. Cú pháp
như sau:
Request.Cookies("
Ví dụ:
5.8.4. Thư mục COOKIES
Là một nhóm các Cookies có cùng tên nhưng được phân biệt nhau bởi khóa. Sử dụng
khóa cùng Cookies tương tự như sử dụng mảng hai chiều Array[n, m] nhưng n=1 và m≥1
118
* Cú pháp:
- Thiết lập: Response.Cookies("
- Đọc: Request.Cookies("
* Ví dụ thiết lập Cookies
5.8.5. Kiểm tra xem COOKIES có dùng khóa không
Ta có thể kiểm tra xem một Cookie có sử dụng khóa không bằng hàm HasKeys của đối
tượng Cookies với cú pháp như sau
Request.Cookies("
Phương thức này trả ra giá trị true nếu Cookies có dùng khóa và false trong trường hợp
ngược lại.
5.9 Giới thiệu ADO và các kết nối cơ sở dữ liệu
5.9.1 Giới thiệu
ADO là kỹ thuật mới do Microsoft phát triển để làm việc với cơ sở dữ liệu (CSDL), được
dùng để cung cấp các khả năng kết nối và xử lý trên CSDL.
Việc xử dụng ADO để truy xuất và xử lý CSDL trong trang ASP có thể chia làm các bước
chính sau:
•
Kết nối với CSDL thông qua OLEDB hoặc ODBC
•
Xây dựng truy vấn dữ liệu và yêu cầu thực hiện câu truy vấn để thực hiện thao tác xử
lý trên CSDL
•
Xử lý các kết quả trả về từ câu truy vấn
•
Ngắt kết nối với CSDL, giải phóng các tài nguyên của hệ thống đã dùng
5.9.2 Kế nối với cơ sở dữ liệu
5.9.2.1 Tạo kết nối thông qua OLEDB và ODBC
Connection String là một chuỗi kí tự được dùng để lưu trữ thông tin về dữ liệu như sau:
•
Thông tin về hệ quản trị CSDL
•
Thông tin về vị trí đặt CSDL
•
Mô hình kết nối CSDL: ADO cho phép thông qua OLEDB hoặc ODBC
Bảng liệt kê kết nối OLEDB và ODBC
Data source
Microsoft Access
OLEDB
Provider=Microsoft.Jet.OLEDB4.0;Data source = path đến .mdb
119