Active Server Pages Trung tâm phát triển phần mềm - ĐHĐN - 25 - 6. Đối tượng Session Đối tượng Session dùng lưu trữ các thông tin chỉ có tác dụng đối với kết nối của một người dùng trong khoảng thời gian nào đó. Đối tượng Session được web Server tự tạo khi người dùng gọi trang web đầu tiên trong ứng dụng. Session rất tiện lợi cho người phát triển web trong việc lưu lại thông tin của các người dùng. Các giá trị lưu trữ trong session sẽ không bị loại bỏ đi khi người dùng chuyển từ trang này sang trang khác trong một ứng dụng, đối tượng Session sẽ tồn tại cho đến khi phiên làm việc (Session) bị huỷ bỏ hoặc hết hiệu lực (time out). Thông tin lưu trữ trong phiên làm việc với từng người dùng xác định là duy nhất và không thể chia sẻ hay truy xuất với những người dùng khác nhau. Cú pháp: Session.Collection | Properties | Method a. Tập hợp(Collection) ð Contents: chứa tất cả những khoản mục do chúng ta thiết lập cho đối tượng Session mà không dùng thẻ <Object> Cú pháp: Session.Contents(Key) Key: tên thuộc tính cần nhận về Ví dụ: Biến mức độ của phiên làm việc được tạo lập <% dim strvar1 strvar1= “Session Variable 1” session.Content(“sessionVar1”)= strvar1 %> b. Thuộc tính(Property) ð SessionID: trả về số định danh session cho user. Mỗi session sẽ được server cho một số định danh duy nhất khi nó được tạo ra. Khi web Server ngừng hoạt động rồi khởi động lại thì những SessionID lần sau phát sinh có thể sẽ trùng với lần phát sinh trước đó. Vì vậy không thể dùng SessionID làm khoá chính cho một ứng dụng cơ sở dữ liệu (CSDL) Cú pháp: Session.SessionID Ví dụ: <% dim usersesionID usersesionID = session.SessionID %> ð Timeout: Thời gian đối tượng Session còn tồn tại. Giá trị này tính bằng phút. Nếu người dùng không cập nhật hoặc yêu cầu lại một trang web của ứng dụng trong khoảng thời gian lớn hơn thời gian timeout thì phiên làm việc sẽ kết thúc. Giá trị mặc định là 20 phút. Cú pháp: Session.Timeout[=số phút] Ví dụ: <% session.Timeout=10 %> Chú ý: thuộc tính Timeout ảnh hưởng tới toàn bộ phiên làm việc người sử dụng chứ không chỉ phiên làm việc hiện thời Active Server Pages Trung tâm phát triển phần mềm - ĐHĐN - 26 - c. Phương thức(Method ) ð Abandon: hủy bỏ một session và giải phóng tài nguyên. Web Server sẽ tự động thực hiện phương thức này khi phiên làm việc hết hiệu lực. Cú pháp: Session.Abandon d. Sự kiện(event) ð Session_OnStart: biến cố xảy ra khi Server tạo một phiên làm việc. Server xử lý kịch bản này lúc thực thi yêu cầu một trang. ð Session_OnEnd: Biến cố xảy ta khi phiên làm việc bị huỷ bỏ bởi lệnh Abandon hoặc timeout. Cú pháp: <SCRITP LANGUAGE=Scriptlaguage RUNAT=Server > Sub Session_OnEnd End Sub Sub Session_OnStart End Sub </SCRITP> Cả phương thức Session_OnStart và Session_OnEnd phải được đặt trong tập tin global.asa 7. Đối tượng Application Trong ASP, ứng dụng (application) được định nghĩa là một tập hợp các file và tài nguyên (như .asp, .html, .gif ) kết hợp với nhau để xử lý hoặc phục vụ cho một mục đích nào đó. ASP sử dụng đối tượng Application để biểu diễn cho ứng dụng, chia sẻ thông tin cho mọi người dùng. Do thông tin trong đối tượng Application được mọi người dùng chung nên có cần một phương thức để đảm bảo tính thống nhất của dữ liệu. Các thành phần trong đối tượng Application là những biến toàn cục cần cho tất cả người dùng trong ứng dụng. Cú pháp: Application.Method a. Collection ð Contents: Chứa tất cả các khoản mục do chúng ta thiết lập trong đối tượng Application mà không dùng thẻ <Object> Cú pháp: Application.contents(tên thuộc tính) ð Lock: Phương thức này ngăn chặn các client khác thay đổi giá trị của biến dùng chung trong đối tượng Application. Nếu phương thức Unlock không được gọi thì Server tự động hiện hiện lệnh này khi xử lý script hoặc timeout. Cú pháp: Application.Lock ð Unlock: Phương thức này cho phép client thay đổi giá trị của những biến lưu trong đối tương Application đã bị khoá trước kia Cú pháp: Application.UnLock Active Server Pages Trung tâm phát triển phần mềm - ĐHĐN - 27 - b. Sự kiện (event) ð Application_Onstart: Biến cố này xảy ra trước khi phiên làm việc đầu tiên được tạo, nghĩa là nó xảy ra trước biến cố Session_OnStart. Trong biến cố này chỉ tồn tại đối tượng Application và Session. ð Application_OnEnd: Biến cố này xảy ra khi thoát ứng dụng. Nó xảy ra sau biến cố Session_onEnd Cả phương thức Session_OnStart và Session_OnEnd phải được đặt trong tập tin global.asa 8. Chèn tập tin (Include) Khi tạo một ứng dụng Web bao gồm nhiều trang ASP, nếu như các trang đều sử dụng thông tin chung nào đó, chẳng hạn là các hằng giá trị, để tránh việc định nghĩa lại thông tin, ta có thể sử dụng cơ chế Include của ASP. Server-side includes là một cơ chế giúp ta có thể chèn thông tin vào một file trước khi xử lí. ASP chỉ thực hiện chỉ dẫn tiền xử lí #INCLUDE của cơ chế này. Ta có thể sử dụng chỉ dẫn này để chèn nội dung của một file khác vào một file đuôi .asp trước khi ASP xử lí file đuôi .asp. Để đưa nội dung của một file khác vào một file đuôi .asp trước khi xử lý file .asp ta sử dụng cú pháp sau: <! #include virtual | file=”tênfile” > Ví dụ: <! include file =”khaibao.asp” > Phải khai báo Virtual hoặc File, là những từ khóa chỉ đến kiểu đường dẫn mà ta sử dụng để kết hợp file, trong đó quy định các file kết nối phải có đuôi là .inc hoặc .asp, phần tên file bao gồm cả đường dẫn và tên file. • Sử dụng từ khóa Vitual: Sử dụng từ khóa này để chỉ đến đường dẫn bắt đầu với thư mục ảo(virtual directory) Ví dụ: Nếu một file tên là ketnoi.inc nằm trong thư mục Myapp, thì được kết hợp bởi dòng sau: <! #INCLUDE VIRTUAL="/myapp/ketnoi.inc" > Sẽ kết nối bất kỳ tập tin trong thư mục web của bạn, nhưng phải cung cấp tên tập tin với một đường dẫn đầy đủ. • Sử dụng từ khóa file:Sử dụng từ khóa này để chỉ đến một đường dẫn quan hệ. Một đường dẫn quan hệ bắt đầu với thư mục chứa file kết hợp. Ví dụ: Có một file trong thư mục Myapp, và một file Header1.inc trong Myapp\Headers, dòng sau sẽ chèn Header1.inc vào file của bạn: <! #INCLUDE FILE="headers/header1.inc" > 9. Tập tin Global.asa - Ứng dụng Web là một tập các trang Web, .asp và htm trong một thư mục Web và các thư mục con. - Tập tin Global.asa xác định khởi đầu và kết thúc của một ứng dụng web cũng như các phiên làm việc thuộc từng người dùng đối với ứng dụng . - ASP cung cấp cho bạn file cấu hình Global.asa, nơi bạn có thể đặt các đoạn mã kịch bản để xử lý sự kiện hay triệu gọi các hàm, thủ tục, biến mang tính toàn cục. Lưu ý: Tập tin Global.asa phải được nằm trong thư mục gốc của ứng dụng. Mỗi ứng dụng chỉ có duy nhất một file Global.asa. Khi lần đầu tiên trang asp Active Server Pages Trung tâm phát triển phần mềm - ĐHĐN - 28 - của ứng dụng được yêu cầu, trình chủ IIS sẽ đọc và nạp thông tin trong file Global.asa. Tập tin này cho phép đặt 4 thủ tục vào: Session_OnStart, Session_OnEnd, Application_OnStart, Application_OnEnd. § Application_OnStart: Sự kiện này phát sinh khi người dùng lần đầu tiên triệu gọi bất kỳ trang nào trong ứng dụng Web. Sau khi sự kiện này kết thúc quá trình xử lý, trình chủ IIS sẽ thực thi đến sự kiện Session_OnStart. § Session_OnStart: sự kiện này phát sinh mỗi khi có một người dùng mới yêu cầu trang ASP của ứng dụng Web lần đầu tiên. § Session_OnEnd: sự kiện này được gọi khi phiên làm việc Session của người dùng chấm dứt, nghĩa là người dùng thoát khỏi ứng dụng hoặc timeout. § Application_OnEnd: sự kiện này phát sinh khi không còn người dùng nào tương tác với ứng dụng web của bạn nữa. Thông thường sự hiện này được gọi khi trình chủ IIS ngừng hoạt động hoặc khi tất các các phiên làm việc đã đóng. Thủ tục xử lý các sự kiện này trong file Global.asa theo mẫu sau: <SCRIPT LANGUAGE=”vbscript” RUNAT=”Server ”> sub Application_OnStart Code End sub sub Session_OnStart Code End sub sub Session_OnEnd Code End sub sub Application_OnEnd Code End sub </script> Active Server Pages Trung tâm phát triển phần mềm - ĐHĐN - 29 - CHƯƠNG 4 THAM CHIẾU THÀNH PHẦN Ngoài các đối tượng có sẵn trong môi trường ASP, việc tạo các Web động bằng ASP còn được trợ giúp nhờ một số thư viện các đối tượng (ActiveX Component) của ActiveX Server. Các thành phần được thiết kế để chạy trên Web Server như một ứng dụng Web cơ sở hợp thành các gói nhỏ đặc trưng là động. Mỗi thành phần được sử dụng cho một công việc chuyên biệt, được thiết kế ở dạng tự động, thực hiện một nhóm công việc chung nhất cho một thao tác nào đó, chẳng hạn như truy xuất cơ sở dữ liệu, truy xuất file , vì thế người phát triển ứng dụng Web bằng ASP không cần phải tạo lại các đặc tính này. 1. Thành phần Ad Rotator Đối tượng AdRotator cho phép hiển thị các ảnh quảng cáo trên Web site một cách ngẫu nhiên. Mỗi khi một user mở hoặc nạp lại một trang Web, thành phần AdRotator hiển thị một thông báo mới dựa trên thông tin bạn chỉ định trong Rotator Schdule File. Cú pháp Set AdRotator =Server.CreateObject(“MSWC.AdRotator”) AdRotator: là tên của đối tượng AdRotator a. Thuộc tính: ð Border: Chỉ định kích thước đường viền của quảng cáo Banner Ví dụ: <% dim Adrot Adrot=Server.CreateObject("MSWC.AdRotator") Adrot.Border="2" %> ð Clickable: Cho biết quảng cáo banner có chức năng là một siêu liên kết. Nó có hai giá trị True hoặc False. Ví dụ: <% dim Adrot Set Adrot=Server.CreateObject("MSWC.AdRotator") Adrot.ClickAble=faulse %> ð TargetFrame: Chỉ định tên frame hiển thị thông báo đó. Có thể thiết lập tham số này là: _blank, _child, _new, _parent, _self hoặc _top Ví dụ: <% dim Adrot Adrot=Server.CreateObject("MSWC.AdRotator") Adrot.TargetFrame=_top %> Active Server Pages Trung tâm phát triển phần mềm - ĐHĐN - 30 - b. Phương thức ð GetAdvertisement: Lấy chi tiết thông tin về quảng cáo banner Ví dụ: <% dim Adrot %> <%=Adrot.GetAdvertisement(“/giaotrinh/adrot.txt”)%> Ví dụ: Ví dụ đầy đủ về Ad Rotator • Trang được yêu cầu đầu tiên chứa thành phần quảng cáo (Giả sử: default.asp) <html> <head> <title>Home Page</title> </head> <body> <% set adrotator=Server.CreateObject("MSWC.AdRotator") response.write(adrotator.GetAdvertisement("qcao.txt")) %> </body> </html> • qcao.txt là file chứa cấu hình thông tin và danh sách ảnh quảng cáo. Nội dung như sau: REDIRECT chuyen.asp width 440 height 80 border 1 * /giaotrinh/image1.gif http://www.google.com Quang cao 1 60 /giaotrinh/image2.gif http://mail.yahoo.com Quang cao 2 20 Nội dung file .txt được chia làm 2 phần: Phần mô tả thông tin vùng quảng cáo và phần chứa danh sách các ảnh cũng như địa chỉ trang Web sẽ liên kết đến khi người dùng kích chuột vào quảng cáo. + Chỉ định Redirect cho biết trang .asp sẽ được gọi khi người dùng kích chọn vào hình ảnh quảng cáo. Trong ví dụ trên, trang chuyen.asp là trang sẽ được gọi. + Chỉ định width, height, boder cho biết chiều rộng, chiều cao và viền khung cho vùng không gian chứa quảng cáo. Mỗi mục thông tin gồm 4 dòng: - Tên hình ảnh cần hiển thị - Địa chỉ của trang quảng cáo - Thông tin mô tả vắn tắt cho mẫu quảng cáo - Độ ưu tiên tương đối giữa các ảnh quảng cáo sẽ được lựa chọn. . giúp nhờ một số thư viện các đối tượng (ActiveX Component) của ActiveX Server. Các thành phần được thiết kế để chạy trên Web Server như một ứng dụng Web cơ sở hợp thành các gói nhỏ đặc trưng. việc hiện thời Active Server Pages Trung tâm phát triển phần mềm - ĐHĐN - 26 - c. Phương thức(Method ) ð Abandon: hủy bỏ một session và giải phóng tài nguyên. Web Server sẽ tự động thực. Application Trong ASP, ứng dụng (application) được định nghĩa là một tập hợp các file và tài nguyên (như .asp, .html, .gif ) kết hợp với nhau để xử lý hoặc phục vụ cho một mục đích nào đó. ASP sử dụng