前提
name=test
というCookieを操作する
Java
Cookieの取得
public Response get(@CookieValue(value="test", required=false) String cookieValue){
String value = cookieValue; //SpringBootならこれでOK。簡単。
}
Cookieの設定
public void set(HttpServletRequest request, HttpServletResponse response){
Cookie cookie = new Cookie("test", "value");
cookie.setSecure(true);
cookie.setHttpOnly(true);
cookie.setPath("/cookie");
response.addCookie(cookie); //生成したCookieをレスポンスに追加する。
}
Cookieの削除
public void delete(HttpServletRequest request, HttpServletResponse response) {
Cookie[] cookies = request.getCookies();
for (Cookie cookie : cookies) {
if ("test".equals(cookie.getName())) {
cookie.setMaxAge(0); //Cookieの最大有効期間を0秒に設定する。(=無効にする)
response.addCookie(cookie);
}
}
}
JavaScript
Cookieの取得
var value = "";
for(var cookie of document.cookie.split(';')){
if( cookie.split('=')[0] == 'test'){
value = cookie.split('=')[1];
break;
}
}
Cookieの設定
document.cookie = 'test=value; path=/cookie;
Cookieの削除
document.cookie = "test=; max-age=0";
おまけ
Session idの取得方法
public SessionResponse getSession(HttpServletRequest request){
HttpSession session = request.getSession();
String sessionId = session.getId();
}