JavaWeb_day05cookie_session_HttpSession

本文爲博主辛苦總結,但願本身之後返回來看的時候理解更深入,也但願能夠起到幫助初學者的做用.

轉載請註明 出自 : luogg的博客園 謝謝配合!

兩個會話的技術cookie session

會話概念 : 打開瀏覽器,屢次訪問WEB資源,關閉瀏覽器,整個過程稱爲一次會話.
cookie 客戶端技術 不是很安全
session 服務器端技術web

session 技術

建立以後,訪問
關閉瀏覽器以後.session銷燬,瀏覽器

同一個名字,不一樣的value,最後的會覆蓋以前的安全

  • cookie基於客戶端,不安全,而且大小和個數的限制。
  • void setAttribute(String name, Object value)
  • Object getAttribute(String name)
  • String getId() 獲取seesion的惟一的ID
  • void invalidate() 銷燬的seesion
  • void removeAttribute(String name) 從會話中刪除name的屬性值,若不存在不會執行
  • void setMaxInactiveInterval(int seconds) 容許客戶請求的最長時間

====服務器

session的建立和銷燬

  • 第一次訪問資源,調用request.getSession(),建立session
  • 銷燬
    • 非正常關閉服務器()
    • session的過時,Tomcat默認是30分鐘。(用戶的發呆時間)
    • 調用session.invalidate()手動銷燬sessioncookie

      session屬性的默認保存時間爲30min,若是要修改,能夠在web.xml和程序中進行修改以Tomcat爲例,Tomcat --> conf --> web.xml --> <session-fonfig> --> <session-timeout> 在程序中修改用 : setMaxInactiveInterval(int val)單位:秒session

session 能夠用來作什麼

1.網上商城中的購物車。
2.保存登陸的用戶信息。
3.將某些數據放入到session中,供同一用戶的各個頁面使用。
4.防止用戶非法登陸到某個頁面code

HttpSession 生命週期

一、客戶端向服務器第一次發送請求的時候,request中並沒有SessionID
二、此時服務器會建立一個Session對象,並分配一個SessionID。Session對象保存在服務器端,此時爲新建狀態,調用session.isNew()返回true。
三、當服務器端處理完畢後,會將SessionID經過response對象傳回到客戶端,瀏覽器負責保存到當前進程中。
四、當客戶端再次發送請求時,會同時將SessionID發送給服務器。
五、服務器根據傳遞過來的SessionID將此次請求(request)解析
六、循環執行過程3-5,直到Session超時或銷燬xml

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息