cookie和session的學習

一.cookiehtml

1.什麼是cookiejava

當用戶訪問服務器時,服務器會給瀏覽器發送一些信息 這些信息保存在cookie中。當瀏覽器再次訪問服務器時,會在請求頭中將cookie傳給服務器,方便服務器對瀏覽器作出正確的響應瀏覽器

cookie就是這張小紙條服務器

2.cookie案例入門cookie

服務器添加cookie給瀏覽器session

public class cookie extends HttpServlet {
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        Cookie cookie = new Cookie("zhangsan","23");
        response.addCookie(cookie);
    }

    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        doGet(request, response);
    }
}

服務器獲取瀏覽器請求攜帶的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

 

1.什麼是Session

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 }
相關文章
相關標籤/搜索