程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> 親密接觸ASP.Net(15)

親密接觸ASP.Net(15)

編輯:ASP技巧
ASP.Net中狀態保存

在ASP保存一些共享、個人狀態,使用的是application、session、CookIE這三種。呵呵。在ASP.Net中M$除了繼承Application等外,又給我們新的一種狀態變量信息State,它是用來保存WEB控件的狀態的變量,很新鮮吧,一定要快點知道啦:)

不好意思,飛刀還是從原始一步步來說吧。先從Application講起。(台下一片吼聲),沒有辦法,為了有個階梯性,還是不應當過早接觸新東東啦:)

Application

在ASP.Net中Application用法與ASP是一樣的,幾乎是沒有什麼說的,但是它多了兩個特別有用的事件,Application_OnBeginRequest和Application_OnEndRequest。他們的和原來的Application_OnStart和Application_OnEnd一樣是放在global文件中的(注意這個文件在ASP中名字是global.asa,在ASP.Net中是global.asax)。

注:這個事件,寫不寫On是一樣的。如Application_End與Application_OnEnd是一樣的

Application_OnStart是在整個ASP.Net應用首先被觸發的事件,也就是在一個虛擬目錄中第一個ASP.Net程序執行時觸發,Application_OnEnd就正好相反,在整個應用停止時被觸發(通常發生在服務器被重啟/關機時)。Application_OnRequestStart和Application_OnRequestEnd則是在每一個ASP.Net程序被請求時就發生,也就是說客戶訪問一次一個ASP.Net程序,這兩個事件就會被觸發。我們可以從下面的程序看到他的應用.我們先建立一個global.asax,內容如下:

<script language="C#" runat="server">

    void Application_OnBeginRequest(Object sender, EventArgs E)
    {
        Response.Write("Request is Starting...<br>");
    }

    void Application_OnEndRequest(Object sender, EventArgs E)
    {
        Response.Write("Request is Ending...<br>");
    }

</script>

然後將其放到本虛擬目錄的根目錄下,然後我們隨便打開一個什麼aspx文件,這裡我們打開named.ASPx文件,看看:



圖19-1

看到沒有,這個頁面的上面和下面出現了我們在global.asax中定義的語句Request is Starting...和Request is Ending...這個不是我們在這個文件中獨加的,我們將會再任何一個ASP.Net文件中看到它的影子。

Session

ASP.Net中的Session是我見過最好的處理,是其它動態網頁技術不能比擬的。ASP.Net中的Session再也不需要Cookies的支持,也就是說如果用戶關閉了CookIE,Session的值一樣也可以被保存。

不過,我們需要對config.web文件進行一些配制,因為在其中找到關於Session的設置文本,如:

<sessionstate 
cookIEless="false" 
/>

把cookieless="false" 改成cookieless="true" ,那麼以後Session就不儲存在cookIEs中了,而在儲存在URL中。



圖15-2

上面的黑圈中的東東就是儲存的Session值,當然這是被編碼的,我們無法知道它的直實值。

其實,我發現,不用改config.web文件,關掉cookIEs後,不用URL也照樣能傳遞session值,這種情況下Session是如何保值的,這個就不太清楚了:)

Session還可保持不死之術,就是當服務器重啟,還是能保證Session中的值不變,不過這又要改動config.web文件。也是通過下面的語句設定.

<sessionstate 
inPRoc="false" 
server="localhost" 
port="42424" 
/>
是不是發現這裡的Session是不是很強大啊:),把localhost改成您要的主機,Session還能在另外一台主機上保持。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved