一.cookiehtml
1.什麼是cookiejava
當用戶訪問服務器時,服務器會給瀏覽器發送一些信息 這些信息保存在cookie中。當瀏覽器再次訪問服務器時,會在請求頭中將cookie傳給服務器,方便服務器對瀏覽器作出正確的響應瀏覽器
cookie就是這張小紙條服務器
2.cookie案例入門cookie
服務器添加cookie給瀏覽器session
服務器獲取瀏覽器請求攜帶的cookieapp
Cookie[] cookies = request.getCookies(); for(Cookie c:cookies){ String name = c.getName(); String value = c.getValue(); System.out.println(name+": "+value); }
①瀏覽器請求時會接受到服務器傳遞的cookie。url
②瀏覽器再次請求時會將cookie傳遞給服務器spa
二.session.net
Session通常譯爲會話,是解決Http協議的無狀態問題的方案,能夠將一次會話中的數據存儲在服務器端的內存中,保證在下一次的會話中能夠使用。
在客戶端瀏覽器第一次向服務器端發送請求時,服務器端會爲這個客戶端建立獨有的Session,並具備惟一的Session ID,存儲在服務器端的內存中。在客戶端第二次訪問服務器端時,會攜帶Session ID在請求中,服務器端會根據Session ID查找對應的Session信息,進行進一步地操做。
在JavaEE中提供了javax.servlet.http.HttpSession接口,經過該接口能夠將共享的數據內容存儲在HttpSession對象中,從而解決Http協議的無狀態問題。
2.getsession的執行
第一次執行getSession方法,getSession會去請求頭中尋找Cookie信息,Cookie名字:JSESSIONID。第一次執行沒有這個cookie信息,因此直接建立一個新的Session對象,並將Session的ID,保存到Cookie中,發給瀏覽器。
第N次執行getSession方法,getSession會去請求頭中尋找Cookie信息,若是Cookie中沒找到,就建立一個新的。
若是Cookie中有Jsessionid信息,尋找內存中對應的Session對象,若是找不到,從新建立一個新的,而且寫新的JSESSIONID進入cookie;
若是Cookie中Jsessionid信息能夠對應上Session對象,就直接將這個Session對象返回並使用。
getSession() == getSession(true)
getSession(false); --à惟一區別是,若是找不到session對象,直接返回null
代碼示例:
request.getSession().setAttribute("loginUser", loginResust);
前臺獲取存入session的值
當前登陸用戶:${loginUser.name }