2007年10月17日水曜日

TeedaでCookie処理

スズキです。

TeedaでCookie処理をしたので、そのメモです。
といっても、"Java Servlet API"そのまんまです。
http://www.nethands.net/~takashi/program/jsp_servlet/servlet_basic05.html

適宜、DIされた、
HttpServletRequest request
HttpServletResponse response
Map cookie
も必要になるので、そのあたりはこちら。
http://s2container.seasar.org/2.4/ja/DIContainer.html#ImplicitComponent

※下記、Cookie名は"token"を使用。

----Cookieの設定
@Binding
private HttpServletRequest request;
@Binding
private HttpServletResponse response;
....
Cookie cookie = new Cookie("token", "Cookieの値");
cookie.setMaxAge(-1);
cookie.setPath(this.request.getContextPath());
this.response.addCookie(cookie);
----
※Cookieをセッションのみ有効にするため、
MaxAgeには"-1"をセット。
※Pathにはコンテキストパスをセット

----Cookieの取得
@Binding
private Map cookie;
...
Cookie cookie = (Cookie)this.cookie.get("token");
String value = cookie.getValue();
// valueを使った処理
----
※Cookieの取得は"Map cookie"から取得すると便利。
※"Map cookie"でCookieの設定はできなかった。(例外発生)

----Cookieの消去
@Binding
private HttpServletRequest request;
@Binding
private HttpServletResponse response;
....
Cookie cookie = new Cookie("token", null);
cookie.setMaxAge(0);
cookie.setPath(this.request.getContextPath());
this.response.addCookie(cookie);
----
※Cookieの設定とほぼ同じだが、
消去の場合はMaxAgeを"0"にセット。

JavaでのCookie処理は久しぶりだったので、
全部忘れてた…(自分でもビックリ!)

--
blog: http://suz-lab.blogspot.com/

0 コメント: