會話可簡單理解爲:用戶開一個瀏覽器,點擊多個超連接,訪問服務器多個web資源,而後關閉瀏覽器,整個過程稱之爲一個會話。 java
有狀態會話:一個同窗來過教室,下次再來教室,咱們會知道這個同窗曾經來過,這稱之爲有狀態會話。web
每一個用戶在使用瀏覽器與服務器進行會話的過程當中,不可避免各自會產生一些數據,程序要想辦法爲每一個用戶保存這些數據。數組
Cookie是客戶端技術,程序把每一個用戶的數據以cookie的形式寫給用戶各自的瀏覽器。當用戶使用瀏覽器再去訪問服務器中的web資源時,就會帶着各自的數據去。這樣,web資源處理的就是用戶各自的數據了。瀏覽器
Session是服務器端技術,利用這個技術,服務器在運行時能夠爲每個用戶的瀏覽器建立一個其獨享的session對象,因爲session爲用戶瀏覽器獨享,因此用戶在訪問服務器的web資源時,能夠把各自的數據放在各自的session中,當用戶再去訪問服務器中的其它web資源時,其它web資源再從用戶各自的session中取出數據爲用戶服務。服務器
Java中的javax.servlet.http.Cookie類用於建立一個Cookiecookie
從request中獲取瀏覽器訪問服務器時傳遞過來的cookie數組:Cookie[] request.getCookies()session
服務器發送cookie到瀏覽器端:response.addCookie(Cookie cookie)spa
一個Cookie只能標識一種信息,它至少含有一個標識該信息的名稱(NAME)和設置值(VALUE)。code
一個WEB站點能夠給一個WEB瀏覽器發送多個Cookie,一個WEB瀏覽器也能夠存儲多個WEB站點提供的Cookie。對象
瀏覽器通常只容許存放300個Cookie,每一個站點最多存放20個Cookie,每一個Cookie的大小限制爲4KB。
若是建立了一個cookie,並將他發送到瀏覽器,默認狀況下它是一個會話級別的cookie(即存儲在瀏覽器的內存中),用戶退出瀏覽器以後即被刪除。若但願瀏覽器將該cookie存儲在磁盤上,則須要使用maxAge,並給出一個以秒爲單位的時間。將最大時效設爲0則是命令瀏覽器刪除該cookie。
轉碼:要想在cookie中存儲中文,那麼必須使用URLEncoder類裏面的encode(String s, String enc)方法進行中文轉碼
解碼:在獲取cookie中的中文數據時,再使用URLDecoder類裏面的decode(String s, String enc)進行解碼