Spring MVC 中使用 @CookieValue 輕鬆獲取 Cookie
@CookieValue 可將 HTTP 請求中的 Cookie 直接綁定到 Controller 方法參數,省去手動解析 HttpServletRequest.getCookies() 的樣板代碼。
基本用法
@RequestMapping("/testCookieValue")
public String testCookieValue(@CookieValue("JSESSIONID") String sessionId) {
System.out.println("JSESSIONID = " + sessionId);
return null;
}
進階屬性
| 屬性 | 說明 | 預設 |
| value / name | Cookie 名稱 | 必填 |
| required | 是否必須存在;false 時缺失不報錯,參數為 null | true |
| defaultValue | 缺失時的預設值(隱含 required=false) | 無 |
範例:可選 Cookie 與預設值
@GetMapping("/pref")
public String preference(
@CookieValue(value = "theme", required = false, defaultValue = "light") String theme,
@CookieValue(value = "lang", defaultValue = "zh_TW") String lang) {
// theme 若無 Cookie 則為 "light";lang 無 Cookie 則為 "zh_TW"
return "prefView";
}
注意事項
- Cookie 名稱區分大小寫,需與前端寫入時一致。
- 僅適用於
@RequestMapping 系列註解修飾的方法參數。
- 若需操作 Cookie(新增/刪除/修改),仍需使用
HttpServletResponse.addCookie()。
@CookieValue 與 @RequestParam、@PathVariable、@RequestHeader 同屬 Spring MVC 參數綁定家族,善用它們能大幅簡化 Controller 代碼。
- 上一篇文章: Java 代碼開發規範手冊:命名、排版、註釋、日誌統一標準
- 下一篇文章: Hibernate 核心機制深度解析:實體三態、一級緩存、快照、關聯映射全攻略
Copyright ©
程式碼之家 All Rights Reserved