親密接觸ASP.Net(15) 狀態儲存

來源:互聯網
上載者:User

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還能在另外一台主機上保持。



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。