Javaweb學習筆記7 session

session:會話瀏覽器

a。瀏覽網站:開始-關閉cookie

a。瀏覽、付款、退出session

c。電子郵件:瀏覽、寫郵件、退出jsp

  開始-結束網站

 

session機制:指針

 

第一次         對象

      客戶端第一次請求服務端時,(jsessionid和session匹配失敗)服務端會產生一個session()對象blog

                    (該session對象能夠用於保存該客戶的信息)而且每一個session對象都會有一個惟一的sessionID(用於區分)  字符串

                     服務端又會產生一個cookie,而且該cookie的key和value已肯定,爲name=JSESSIONID,value=服務端sessionID的值,而後服務端會在響應客戶端的同時將該cookie發送給客戶端,至此客戶端                       就有了一個cookie(該裏面有一個JSSENSIONID)。所以客戶端的cookie就能夠和服務端的session一一對應(JSSENSIONID-sessionID)get

第n次

      客戶端第二/n次請求服務端時:服務端會先用客戶端cookie中的JSESSIONID去服務端的session中匹配sessionid,若是匹配成功(cookie jsessionid和session sessionid),說明此用戶不是第一                          次訪問。

 

sessionID是session對象的惟一標記,在服務端中

JSESSIONID存儲在cookie中,在客戶端中,由服務端給客戶端

 

 

例子:

服務端:    顧客(客戶端)

服務端:存包處   商場(服務端)

顧客第一次存包 :商場判斷此人是否以前已經存過包(經過你手裏是否有鑰匙)

若是是新顧客(沒鑰匙),分配一個鑰匙給該顧客,鑰匙會和櫃子一一對應。

第二次/n次寸存包,商場判斷此人以前是已經存過包的(經過你手裏是否有鑰匙)

若是是老顧客(有鑰匙),則不須要分配,該顧客手裏的鑰匙會和櫃子一一對應

 

 

session小結:

a.  session 對象存儲在服務端

b.session是在同一個用戶請求時共享

c. 實現機制:第一次客戶請求時產生一個sessionid並複製給cookie的jsessionid而後發給客戶端,最終經過sessionID與JSESSIONID匹配

 

session 方法

String getId()      獲取sessionId (字符串)

boolean isNew() 判斷是不是新用戶(第一次訪問)

void invalidate() 使session失效(退出登陸,失效,至關於收回鑰匙或者鑰匙做廢)

 

session裏面能夠放東西

void setAttribute()

object getAttribute()

void setMaxInactiveInterval(秒):設置最大有效非活動時間。在這麼長的時間內沒有操做,則再次使用還需登陸驗證,若是在這麼長時 間內操做,則上次登陸有效

int getMaxInactiveInterval()獲取最大有效非活動時間

 

session實例

 

在瀏覽器內從login.jsp按照zs/abc登陸入welcome.jsp頁面後,即便在session有效期內從URL欄直接輸入welcome.jsp會致使空指針錯誤,由於request內數據只在一次內有效,從地址欄回車至關於發送第二次請求。可是,若是登陸入welcome.jsp後在頁面按F5刷新,則還會出現以前的內容,由於以下,瀏覽器會重複以前的動做。

 

session內的屬性是同一次會話共享,只要還沒結束,就一直能獲取裏面的內容。可是更換瀏覽器則不行。

相關文章
相關標籤/搜索