Cookie 技術誕生於 HTML 早期,用於在無狀態的 HTTP 協議中識別不同使用者。當使用者瀏覽網頁時,伺服器可在客戶端機器建立一個文字檔(Cookie)記錄識別資訊;下次造訪時瀏覽器自動攜帶該 Cookie,伺服器即可辨識使用者身分。雖然現代 Web 技術已大幅發展,Cookie 仍是許多場景的實用工具。
JSP 操作 Cookie 非常簡單,核心程式碼如下:
Cookie cookie = new Cookie(cookieName, "Test_Content");
cookie.setMaxAge(10); // 存活 10 秒
response.addCookie(cookie);
new Cookie(name, value):建立 Cookie 物件,兩個參數皆為字串,分別為 Cookie 名稱與內容。setMaxAge(seconds):設定 Cookie 在客戶端硬碟的存活秒數。過期後瀏覽器自動刪除。若需長期有效(如一年),可設 365*24*60*60。response.addCookie(cookie):將 Cookie 加入 HTTP 回應標頭,送往客戶端。Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie c : cookies) {
String name = c.getName();
String value = c.getValue();
// 處理 name/value,例如顯示於表格
}
}
request.getCookies() 取得所有有效(未過期)Cookie 陣列。getName()、getValue() 取得名稱與內容。javax.servlet.http.Cookie 目前僅支援 Version 0 操作,為確保相容性,建議遵循 Version 0 規範。Version 0 禁止在值中使用:空格、方括號、圓括號、等號、逗號、雙引號、斜線、問號、@、冒號、分號。範例中使用 "Test_Content" 即為避開特殊字符。雖 Version 1 放寬限制,但考慮瀏覽器支援度,實務上仍應盡量避免特殊字符。