簡述session


1.Session概述

* session是服務器端技術

* 服務器在運行時可以為每一個用戶的瀏覽器創建一個其獨享的session對象

* 由於session為用戶瀏覽器獨享,所以用戶在訪問服務器的web資源時,可以把各自的數據放在各自的session中

* 當用戶再去訪問服務器中的其它web資源時,其它web資源再從用戶各自的session中取出數據為用戶服務

* session也是基於cookie技術的,傳遞是session的id值

2.Session對象的API

* void setAttribute(String name, Object value)
* Object getAttribute(String name)
* void removeAttribute(String name)
* String getId()                                        -- session的空間有唯一的id值,獲取該id值的。
* void invalidate()                                     -- 銷毀session對象
* ServletContext getServletContext()                    -- 獲取ServletContext域對象

 3.使用request對象來獲取到session的對象

* request.getSession()                                  -- 返回HttpSession對象,第一次調用,為你創建session對象(空間)

4.Session的創建和銷毀

session對象的創建

* 針對是每個用戶的瀏覽器,為每一個瀏覽器都創建一個獨享的session的對象。

* request.getSession()      -- 該方法可以創建session的對象,但是也可以來獲取到session對象

* 根據cookie對象中是否有jsessionid的cookie,如果有,通過id值查找,找到了不用創建了,返回。如果沒有找到,創建一個新的session對象。

session對象的銷毀

* 關閉服務器銷毀session

* 非正常的原因關閉服務器,銷毀session

* 如果正常關閉服務器,session會被序列化到磁盤上。
* 配置session的默認銷毀時間,默認值是30分鍾

* 在tomcat/conf/web.xml文件中設置了session默認超時時間 <session-config> <session-timeout>30</session-timeout> </session-config> 
* 設置session最大的存活的時間
* void setMaxInactiveInterval(int interval)
* 直接使用方法,銷毀session * invalidate();

5.Session域對象

5.1.session的域對象

* 作用:用來傳遞數據
* 區別:每個域對象的存活時間不同!!

5.2.方法

* void setAttribute(String name, Object value)
* Object getAttribute(String name)
* void removeAttribute(String name)

5.3.域對象(3個域對象最重要的)

* request               -- 真實對象HttpServletRequest

        * 代表的是一次請求的范圍

        * 在服務器端給客戶度傳遞一些提示的信息和查詢的數據

 * session               -- 真實對象HttpSession

        * 代表的是一次會話的范圍(可以發送多次請求和得到多次響應)

        * 保存的都是和每個用戶相關的數據(登錄后需要把用戶的信息,購買商品需要保存起來)


* application -- 真實對象ServletContext * 代表的是一個WEB應用 * 保存全局共享的數據

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM