自我理解:cookie是往客戶端存數據 session是在服務器存數據 。session通常藉助於cookie和客戶端完成一個完整的回話(多次請求 用相同的數據)所以作用域是一次繪畫
Cookie cookie = new Cookie(String cookieName,String cookieValue);
Cookie cookie = new Cookie("username","zhangsan");
cookie.setMaxAge(int seconds); ---時間秒
注意:如果不設置持久化時間,cookie會存儲在瀏覽器的內存中,瀏覽器關閉 cookie信息銷燬(會話級別的cookie),如果設置持久化時間,cookie信息會 被持久化到瀏覽器的磁盤文件裏
設置cookie信息在瀏覽器的磁盤文件中存儲的時間是10分鐘,過期瀏覽器 自動刪除該cookie信息
注意:如果不設置攜帶路徑,那麼該cookie信息會在訪問產生該cookie的 web資源所在的路徑都攜帶cookie信息
cookie.setPath("/WEB16/cookieServlet");
代表訪問WEB16中的cookieServlet時才攜帶cookie信息
response.addCookie(Cookie cookie);
如果想刪除客戶端的已經存儲的cookie信息,那麼就使用同名同路徑的持久化時 間爲0的cookie進行覆蓋即可
Cookie[] cookies = request.getCookies();
2)遍歷Cookie數組,通過Cookie的名稱獲得我們想要的Cookie
if(cookie.getName().equal(cookieName)){
String cookieValue = cookie.getValue();
Session技術是將數據存儲在服務器端的技術,會爲每個客戶端都創建一塊內存空間 存儲客戶的數據,但客戶端需要每次都攜帶一個標識ID去服務器中尋找屬於自己的內 存空間。所以說Session的實現是基於Cookie,Session需要藉助於Cookie存儲客 戶的唯一性標識JSESSIONID
HttpSession session = request.getSession();
此方法會獲得專屬於當前會話的Session對象,如果服務器端沒有該會話的Session 對象會創建一個新的Session返回,如果已經有了屬於該會話的Session直接將已有 的Session返回(實質就是根據JSESSIONID判斷該客戶端是否在服務器上已經存在 session了)
2.怎樣向session中存取數據(session也是一個域對象)
Session也是存儲數據的區域對象,所以session對象也具有如下三個方法:
session.setAttribute(String name,Object obj);
session.getAttribute(String name);
session.removeAttribute(String name);
創建:第一次執行request.getSession()時創建
<session-timeout>30</session-timeout>