セッションの有効期限
HttpSession.setMaxInactiveInterval()で設定する有効期限はサーバでの有効期限。
CookieでセッションIDを管理している場合、ブラウザが閉じられるとCookieは破棄されるので、セッションは継続しない。
自動ログインのように、ブラウザが一度閉じられてもセッションを継続させたい場合は、Cookieの有効期限を設定する必要がある。
HttpSession session = request.getSession(true);//この時点でCookieにセッションIDが設定される session.setMaxInactiveInterval(60 * 60 * 24 * 10);//セッション有効期限10日 Cookie cookie = new Cookie("JSESSIONID", session.getId());//自前でセットするCookieを作る cookie.setMaxAge(60 * 60 * 24 * 10);//Cookie有効期限10日 cookie.setPath("/"); response.addCookie(cookie);//Cookieの設定を上書き
こんな感じ〜
ちなみに、試すときはブラウザの設定をよく確かめよう・・・ハマッタ。