作爲一名JavaWeb學習的菜鳥,我今天通過網上的視頻教程,自己學習了一下Cookie。之前一直有聽到別人討論什麼Cookie啊session啊,感覺特高科,今天終於找到學習資源啦~在此將我的學習成果貼出,如果有任何建議,歡迎來噴哦~共同學習,共同進步啊~~(在此就不說是哪家的視頻了,以免有打廣告的嫌疑,如果有興趣,可以私信我哦~)
好了,言歸正傳,一起就是我今天的學習成果啦:
Cookie的基本概念:
Cookie是Servlet裏的一種用來會話跟蹤的機制,簡單直白的說就是比如當你網購時要將淘到的寶貝放入購物車吧,那怎麼保證是加入的你的購物車呢,這裏就是用Cookie來記錄的;或者當你登錄某個網站時,該網站一般會詢問你是否記住密碼,如果你選擇是,那接下來一天或幾天的時間你都可以實現自動登錄,而這也是用的Cookie技術。
在不進行設置的情況下,Cookie的生命週期一般就是一次會話(就是你下一次訪問這個網站他將可以直接登錄)。而若是想要控制它的生命週期也是非常簡單的,只用改變一個參數:setMaxAge既可。setMaxAge是用秒爲單位的,當其爲負數時就是不對Cookie存儲,爲0時就是立即刪除,若爲正數就是到時間自動刪除啦。可能現在有點暈啦,概念就是這樣,比較糾結,下面我用一段代碼來幫助一下理解啦~
一個Cookie的測試文件:
<span style="font-size:18px;"><%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" session="false"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Cookie Test</title>
</head>
<body>
<%
//Cookie的查看方式爲遍歷
Cookie [] cookies = request.getCookies();
if(cookies != null && cookies.length > 0)
{
for(Cookie c : cookies)
{
out.println(c.getName() +" : "+ c.getValue());
}
}else
{
out.println("Cookies 爲空,正在創建中。。。。");
//創建一個Cookie對象
Cookie cookie = new Cookie("name", "CookieTest");
//設置Cookie的最大保存時間,Cookie會在下次啓動30秒後自動刪除
cookie.setMaxAge(30);
//把Cookie傳給客戶端
response.addCookie(cookie);
}
%>
</body>
</html></span>
我們可以從瀏覽器中的開發者工具中查看到如下:
第一次訪問
第二次訪問
當第一次訪問時,響應頭部有set-Cookie,而第二次訪問時請求頭部直接自動將Cookie的信息帶入了請求,而這也就是Cookie的工作原理啦~因爲設置了最大保存時間,所以30s後再刷新Cookie 就被刪除了~~
至此,Cookie的基本概念就差不多講完了~