ASP.NET Session 模型簡述
ASP.NET Session是什么呢?簡單來說就是服務(wù)器給客戶端的一個編號。當(dāng)一臺WWW服務(wù)器運行時,可能有若干個用戶瀏覽正在運正在這臺服務(wù)器上的網(wǎng)站。當(dāng)每個用戶***與這臺WWW服務(wù)器建立連接時,他就與這個服務(wù)器建立了一個Session,同時服務(wù)器會自動為其分配一個SessionID,用以標(biāo)識這個用戶的唯一身份。這個SessionID是由WWW服務(wù)器隨機產(chǎn)生的一個由24個字符組成的字符串,我們會在下面的實驗中見到它的實際樣子。
這個唯一的SessionID是有很大的實際意義的。當(dāng)一個用戶提交了表單時,瀏覽器會將用戶的SessionID自動附加在HTTP頭信息中,(這是瀏覽器的自動功能,用戶不會察覺到),當(dāng)服務(wù)器處理完這個表單后,將結(jié)果返回給SessionID所對應(yīng)的用戶。試想,如果沒有SessionID,當(dāng)有兩個用戶同時進(jìn)行注冊時,服務(wù)器怎樣才能知道到底是哪個用戶提交了哪個表單呢。當(dāng)然,SessionID還有很多其他的作用,我們會在后面提及到。
除了SessionID,在每個Session中還包含很多其他信息。但是對于編寫asp或asp.net的程序與來說,最有用的還是可以通過訪問asp/asp.net Session對象,為每個用戶存儲各自的信息。例如我們想了解一下訪問我們網(wǎng)站的用戶瀏覽了幾個頁面,我們可能在用戶可能訪問到每個的頁面中加入:
- < %
- If Session("PageViewed") = ""Then
- Session("PageViewed") = 1
- Else
- Session("PageViewed") = Session("PageViewed") + 1
- End If
- %>
通過以下這句話可以讓用戶得知自己瀏覽了幾個頁面:
- < %
- Response.Write("You have viewed " & Session("PageViewed") & " pages")
- %>
可能有些有些讀者會問:這個看似像是數(shù)組的Session(“..”)是哪里來的?需要我定義嗎?實際上,這個Session對象是具有asp解釋能力的的WWW服務(wù)器的內(nèi)建對象。也就是說asp的系統(tǒng)中已經(jīng)給你定義好了這個對象,你只需要使用就行了。其中Session(“..”)中的..就好像變量名稱,Session(“..”)=$$$中的$$$就是變量的值了。你只需要寫上句話,在這個用戶的每個頁面中都可以訪問..變量中的值了。
其實asp一共內(nèi)建了7個對象,有Session、Application、Cookie、Response、Request、Server等。在其他的服務(wù)器端腳本語言如JSP、PHP等中也有其類似的對象,只是叫法或者使用方法上不太一樣。
以上就是ASP.NET Session的一些基本概念。
【編輯推薦】
- ASP.NET數(shù)組基礎(chǔ):聲明,表示及范例
- ASP.NET編程中的十大技巧(二)
- ASP.NET編程中的十大技巧(一)
- ASP.NET MVC教程(一):準(zhǔn)備工作
- ASP.NET MVC Beta的部署問題