05-【session、cookie】

session、cookieweb

一、HttpSession概述
>HttpSession是由JavaWeb提供的,用來會話跟蹤的類。session是服務器端對象,保存在服務器端!!!
>HttpSession是Servlet三大域對象之一(request、session、application(ServletContext)),因此它也有setAttribute()、getAttribute()、removeAttribute()方法
>HttpSession底層依賴Cookie,或是URL重寫!
session技術:保存用戶信息的技術, session是服務器端保存用戶數據的技術
使用session前先獲取session:
①Servlet中獲取session對象:HttpSession session = request.getSession();
②Jsp中獲得session對象:session是jsp內置對象之下,不用建立就能夠直接使用!
session域相關方法:
>void setAttribute(String name, Object value);存對象
>Object getAttribute(String name);取出對象
>void removeAttribute(String name);移除對象
一、session 數據存儲和獲取 (跨請求存取數據)
存數據:session.setAttribute("uname" ,"用戶名的值");
取數據:session.getAttribute("uname");
二、session做用範圍 :【一次會話】在一次會話內,全部的servlet和jsp共享 session對象中的數據 ,一次會話能夠跨請求(跨頁面)
   什麼是一次會話:打開瀏覽器(同一個瀏覽器) => 訪問web應用項目 => 瀏覽器關閉。就是一次會話【注意:不一樣的瀏覽器,屬於不一樣的會話】
三、session是不是同一個session。【經過sessionid去判斷:session.getId();】
四、session的應用:【session保存用戶信息、session 統計在線用戶數量】
五、session的過時機制:幫助咱們理解 session做用範圍,存取值問題
設定session過時機制的三種方式:
①web.xml中進行配置:tomcat -->conf-->web.xml【過時時間默認爲30, 單位是分鐘】瀏覽器

1 <session-config>
2     <session-timeout>30</session-timeout>
3 </session-config>

②程序中設置過時時間【以秒爲單位,過時時間(負值或0 永不過時)】 session.setMaxInactiveInterval(1); 
③ session.invalidate();方法 ,對session 中的對象解綁,session過時
注:若是sesssion過時 ,那麼 session.setAttibute("uname" ,"值");中存放的數據將獲取不到tomcat

二、Cookie機制:
  
Cookie技術是一個瀏覽器端保存數據的技術,保存用戶信息的機制【記住密碼功能和購物車功能 cookie技術的典型應用】

cookie工做原理:(熟悉)
①服務器端生成 cookie對象保存用戶數據,
②將cookie對象放到 response對象中,響應給瀏覽器客戶端,
③在瀏覽器客戶端保存cookie(帶有用戶數據的)信息 ,
④在用戶第二次訪問web應用的時候,會把帶有用戶信息的cookie 經過request對象將用戶名數據發送給服務器
⑤服務器解析request對象獲取cookie信息
三、session和cookie的區別:[session和cookie均可以保存用戶信息]
①存儲方式
session以對象的形式存取
session.setAttribute("uname" ,"value"); Object obj = session.getAttribute("uname");
cookie數據存取形式,內部是字符串的形式存在的
安全

②session存儲機制,在服務器端存儲用戶數據;cookie是在客戶端存儲數據(服務器端只是生成和設置cookie)
③存儲的數據量的問題
cookie存放在客戶端,只是存儲少許數據
存儲大量數據,存放在服務器端session
④安全問題
session更加安全 ,由於session存放在服務器上
cookie存放在用戶的瀏覽器客戶端
⑤效率問題:session存取效率更高
⑥有效時間問題
 理論上,若是瀏覽器一直存在,存放在cookie中數據就一直存在(永久保存)。session 是一次會話,相對較短
⑦適合的場景:一些重要的數據 存放在session中;一些不是過重要的數據存放在cookie中.

服務器

相關文章
相關標籤/搜索