简述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應用* 保存全局共享的數據
?
總結
- 上一篇: Linux下让进程在后台可靠运行的几种方
- 下一篇: ansile(3)playbook 使用