無狀態性是指,當瀏覽器發送請求給服務器的時候,服務器響應客戶端請求,但是當同一個瀏覽器再次發送請求給服務器的時候,服務器並不知道他就是剛纔的那個瀏覽器。
簡單的說,就是服務器不會去記得你,所以就是無狀態協議
保存用戶狀態的兩大機制:Cookie和Session
Cookie:中文名稱爲“小甜點”,是web服務器保存在客戶端的一系列文本信息。
作用:
1.對特定對象的追蹤;
2.保存用戶網頁瀏覽記錄與習慣;
3.簡化登錄;
4.容易泄露用戶信息;
典型應用一:判斷註冊用戶是否已登錄網站。
典型應用二:“購物車”的處理。
jsp中創建與使用Cookie:
1、創建Cookie對象:
Cookie cookie=new Cookie(String key,Object value);
2、寫入Cookie:
response.addCookie(cookie);
3、讀取Cookie:
Cookie[] cookies=request.getCookies();
例:
使用cookie保存用戶信息
清除用戶保存在cookie中的信息:
注意:關於Cookie保存中文亂碼的問題,可以在jsp中導入java.net.*,然後先設置request.setCharacterEncoding("utf-8");再之後利用URLEncoder.encode(request.getParameter("username"),"utf-8");設置編碼。之後,在使用時,同樣的在相應的頁面,先設置request.setCharacterEncoding("utf-8");再利用URLDecoder.decode(cookie.getValue(),"utf-8");
Cookie和Session的對比