1 / 32

第 8 章 Application、Session 物件與 Cookies 的處理

第 8 章 Application、Session 物件與 Cookies 的處理. 8-1 Web 應用程式 8-2 網頁間的資料分享 8-3 Application 物件的使用 8-4 Session 物件的使用 8-5 Global.asa 檔案的使用 8-6 Cookies 的處理 8-7 Cookies 的應用. 8-1 Web 應用程式. 8-1-1 Web 應用程式的基礎 8-1-2 PWS 建立 Web 應用程式 8-1-3 IIS 5 建立 Web 應用程式. 8-1-1 Web 應用程式的基礎 -1.

olisa
Download Presentation

第 8 章 Application、Session 物件與 Cookies 的處理

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第8章 Application、Session物件與Cookies的處理 • 8-1 Web應用程式 • 8-2 網頁間的資料分享 • 8-3 Application物件的使用 • 8-4 Session物件的使用 • 8-5 Global.asa檔案的使用 • 8-6 Cookies的處理 • 8-7 Cookies的應用

  2. 8-1 Web應用程式 • 8-1-1 Web應用程式的基礎 • 8-1-2 PWS建立Web應用程式 • 8-1-3 IIS 5建立Web應用程式

  3. 8-1-1 Web應用程式的基礎-1 • Web應用程式是指網站目錄和其子目錄執行檔案的能力。 • IIS支援ASP、ISAPI、CGI、IDC與SSI應用程式,Web應用程式能夠設定應用程式的執行權限,也就是檔案所在目錄的權限,以應用程式來說就是指令和執行權限。

  4. 8-1-1 Web應用程式的基礎-2

  5. 8-1-2 PWS建立Web應用程式 • PWS為IIS 4的簡化版本,預設PWS的主目錄就是一個Web應用程式。 • PWS如果需要在同一個網站建立多個Web應用程式,只需建立虛擬目錄,並且為擁有指令權限的虛擬目錄,這個虛擬目錄就是一個Web應用程式。

  6. 8-1-3 IIS 5建立Web應用程式-1 • IIS 5的Web應用程式依使用記憶體方式的不同,可以分為兩種應用程式,如下表所示:

  7. 8-1-3 IIS 5建立Web應用程式-2 • IIS 5建立Web應用程式的方法,因網站不同的目錄而擁有不同的建立方法,如下所示: • 在IIS 5新增一個網站時,主目錄預設就是一個Web應用程式。 • 對於網站的虛擬目錄,只需使用新增精靈建立時,設定執行指令檔權限,預設就是一個Web應用程式。 • 如果為主目錄下的實際子目錄,預設與上一層主目錄屬於同一個Web應用程式。

  8. 8-2 網頁間的資料分享 • 8-2-1 在網頁間分享資料 • 8-2-2 網頁間資料分享的方法

  9. 8-2-1 在網頁間分享資料 • 網站同時允許多位使用者進入網站,所以網站需要考慮分享的資料有兩種,如下所示: • 分享給網站所有的使用者:在ASP程式就是第8-3節的Application變數,例如:目前上線的使用者數。 • 每位使用者的專屬資料:在ASP程式就是第8-4節的Session變數,例如:登入網站的使用者資料。

  10. 8-2-2 網頁間資料分享的方法 • ASP程式間傳遞資料方法有幾種,筆者將它整理,如下所示: • 在第七章使用表單或網址URL參數傳到下一頁ASP程式。 • 第8-3和8-4節的Application和Session物件。 • 第8-6節的Cookies直接保留在客戶端電腦,以便ASP程式取得所需的資訊。

  11. 8-3 Application物件的使用 • 8-3-1 Application物件的基礎 • 8-3-2 Application變數的使用

  12. 8-3-1 Application物件的基礎-1 • Application物件最主要的目的是建立Application變數,這和一般的程式變數並不相同,它是一個資料集合。 • 每一個Web應用程式都擁有一個Application物件,能夠允許客戶端不同的使用者存取Application物件的變數,以達到資料分享的目的。 • Application物件存在的期間是在第一個Session物件建立後建立,直到Web伺服器關機或所有的使用者都離線後Web應用程式結束後才會關閉。

  13. 8-3-1 Application物件的基礎-2

  14. 8-3-2 Application變數的使用 • 不論網站的Web應用程式同時有多少位使用者進入,對於每一個Application變數,伺服端都只會在記憶體保留一份,變數的格式如下: Application("Page_Counter")=0 • Application的Lock和Unlock兩個方法可以保障同一時間內只允許一位使用者存取Application變數,其程式碼如下所示: Application.Lock Application("Page_Counter")=Application("Page_Counter")+1 Application.Unlock

  15. 8-4 Session物件的使用 • 8-4-1 Session物件的基礎 • 8-4-2 Session變數的使用 • 8-4-3 使用Session變數傳遞資料 • 8-4-4 Session變數的使用限制

  16. 8-4-1 Session物件的基礎 • 如果同時有多位使用者進入網站,每位使用者都會指定一個不同的Session ID編號,建立不同的Session物件。 • Session物件可以建立Session變數,Session變數和Application變數的差別只在允許使用者存取的範圍,對比程式語言來說,Session變數為區域變數,Application變數為全域變數。

  17. 8-4-2 Session變數的使用 • 在ASP程式設定Session變數的程式碼,將Session變數User_Pages加一,如下所示: Session("User_Pages")=Session("User_Pages")+1 • Session變數並不需要考慮資料衝突的問題,因為它是附屬於使用者的Session期間,使用下列屬性可以取得使用者目前的Session ID,如下所示: <%=Session.SessionID%>

  18. 8-4-3 使用Session變數傳遞資料 • Session變數主要的用途是用來在網頁間分享資料,可以使用Session變數儲存使用者的資訊,如下所示: Session("UserName") = "hueyan" Session("UserPassword") = "1234” • 在Session期間內執行其它的ASP程式時,都可以使用ASP程式碼取得上述Session變數的值,如下所示: strUserName = Session("UserName") strUserPassword = Session("UserPassword")

  19. 8-4-4 Session變數的使用限制 • 在Session變數使用上的一些限制,如下所示: • 如果瀏覽程式為Internet Explorer 4.0x前的版本,需要開啟Cookies功能。 • ASP程式執行轉向指令,只限同一個Web應用程式,不能轉向到其它的Web伺服器。 • 如果是十分龐大的Web應用程式,擁有多個子目錄,子目錄ASP程式所建立的Session變數是無法在其它子目錄中存取。 • Session變數的使用上比較浪費記憶體。

  20. 8-5 Global.asa檔案的使用 • 8-5-1 Global.asa檔案的架構 • 8-5-2 Application與Session物件的事件處理程序 • 8-5-3 Global.asa檔案的使用

  21. 8-5-1 Global.asa檔案的架構 • Global.asa檔案的架構,主要部分是<script>標籤的四個事件處理程序,如下所示: <script language="VBScript" runat="Server"> Sub Application_OnStart ……. End Sub Sub Application_OnEnd .…… End Sub Sub Session_OnStart ……. End Sub Sub Session_OnEnd ……. End Sub </script>

  22. 8-5-2 Application與Session物件的事件處理程序 • Application和Session物件四個事件處理程序的說明,筆者整理如下所示: • Application_OnStart:當Web應用程式第一位使用者執行第一個ASP程式時,Application_OnStart事件就會觸發。 • Application_OnEnd:當Web伺服器關機,此事件就會觸發。 • Session_OnStart:每一位使用者在執行ASP程式前,就會觸發此事件。 • Session_OnEnd:任何使用者在TimeOut屬性預設的20分鐘內沒有進入其它的ASP程式,就會觸發此事件。

  23. 8-5-3 Global.asa檔案的使用 • 在Web伺服器正確的使用Global.asa檔案,請注意是否為Web應用程式和存放的位置,如下所示: • IIS 5的Web伺服器:每一個Web應用程式啟動點的根目錄都可以擁有一個Global.asa檔案。 • PWS:主目錄可以擁有一個Global.asa檔案,建立的虛擬目錄如同IIS的Web應用程式,也可以擁有Global.asa檔案。

  24. 8-6 Cookies的處理 • 8-6-1 Cookies的基礎 • 8-6-2 新增Cookie • 8-6-3 取得Cookie的內容 • 8-6-4 刪除Cookie • 8-6-5 多鍵Cookie的使用

  25. 8-6-1 Cookies的基礎 • Cookies的英文是小餅乾的意義,源於這些儲存在客戶端電腦的檔案尺寸都很小。 • Cookies儲存在瀏覽程式所在的電腦,並不會浪費伺服器資源。 • ASP程式在進入Web應用程式時,可以檢查客戶端是否已經儲存Cookie,在取得Cookie保留的資訊後,就可以建立複雜的Web應用程式。

  26. 8-6-2 新增Cookie • Cookie為Response物件的資料集合,可以使用Response物件的Cookies資料集合新增Cookie,其程式碼如下所示: Response.Cookies("UserName") = "陳會安" • 在新增Cookie後,需要設定Cookie的Expires屬性,以決定Cookie檔案存在客戶端電腦的期限,如下所示: Response.Cookies("UserName").Expires = Date + 10

  27. 8-6-3 取得Cookie的內容 • 如果在客戶端的電腦擁有Cookie,我們可以使用Request物件的Cookies資料集合取得Cookie值,其程式碼如下所示: strUserName = Request.Cookies("UserName")

  28. 8-6-4 刪除Cookie • 刪除Cookie,只需將Expires屬性設定為已經過期即可刪除Cookie,其程式碼如下所示: Response.Cookies("UserName").Expires=Date-365 • 程式碼將有效限期限設定為一年前,因為Cookie已經過期,就是刪除Cookie。

  29. 8-6-5 多鍵Cookie的使用 • Cookie屬於一種目錄結構的資料集合,在同一個名稱下還允許擁有不同Key鍵名,能夠儲存多個不同的值,如下所示: Response.Cookies("User")("UserName") = "陳會安" Response.Cookies("User")("Password") = "1234" Response.Cookies("User").Expires = Date + 10 • 多鍵Cookie如同陣列,在取得Cookie值時不只需要指定名稱,還需要指定鍵名,如下所示: strUserName = Request.Cookies("User")("UserName") strPassword = Request.Cookies("User")("Password")

  30. 8-7 Cookies的應用 • 8-7-1 Cookies的基本應用 • 8-7-2 儲存使用者的瀏覽記錄

  31. 8-7-1 Cookies的基本應用 • Cookies在網站實作上的應用相當多,通常使用Cookies保留的資料,大都屬於下列幾個方面,如下所示: • 個人資訊:使用Cookies保留個人的資訊,例如:姓名、地址、時區、帳號和是否曾經進過此網站。 • 個人化的內容:活用Cookies可以定製個人化的網站外觀和個人偏好的網站內容,或者只提供使用者有興趣的資訊。 • 網站購物車:線上購物車需要保留使用者選擇的商品,Cookies就可以用來記錄這些選購的商品。

  32. 8-7-2 儲存使用者的瀏覽記錄 • ASP程式檢查客戶端的電腦是否曾留下使用者名稱的Cookie,其程式碼如下所示: strUserName = Request.Cookies("UserName") • 程式碼在取出UserName的Cookie,處理方式如下所示: • 如果變數strUserName有內容,表示已經建立Cookies 。 • 否則顯示表單輸入使用者名稱,並且建立Cookie儲存使用者名稱。

More Related