4. クッキーとセッション
サーブレット 4章 クッキーとセッション
4.1. クッキーこの節ではクッキーの取り扱いについて説明します。サーブレットではクッキーの情報を「javax.servlet.http.Cookie」クラスで管理しています。このクラスで管理されている情報は、クッキーをサーバから送る際に、HTTPヘッダーに追加される行と対応しています。追加される行は以下のような形式をしています。 Set-Cookie: NAME=VALUE; Max-Age=DATE; path=PATH; domain=DOMAIN_NAME; version=VERSION; comment=COMMENT; secure それぞれの意味は以下の通りです。
クッキーの作成方法はCookieオブジェクトを使用しますが、クッキーの送信と取得はどう行うのでしょうか。クッキーの送信にはHttpServletResponseの「addCookie」メソッド、取得にはHttpServletRequestの「getCookies」メソッドを使用します。以下はブラウザから送られてきた「id」の値をクッキーに設定するサンプルプログラムです。残存時間は5分で、サーバの全てのディレクトリでクッキーが可視になるよう設定しています。 public final class CookieSetServlet extends HttpServlet{
protected void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletRequest,IOException{
String id=request.getParameter("id");
Cookie cookie=new Cookie("id",id);
cookie.setMaxAge(60*5);
cookie.setPath("/");
response.addCookie(cookie);
....
}
}
以下は、設定されたクッキーを読み出すサーブレットです。
public final class CookieGetServlet extends HttpServlet{
protected void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletRequest,IOException{
String id=null;
Cookie cookies[]=request.getCookies();
if(cookies!=null){
for(int i=0;i<cookies.length;i++){
if(cookies[i].getName().equals("id")){
id=cookies[i].getValue();
break;
}
}
}
...
}
}
(実習課題1)以下のサーブレットプログラムを作成しなさい。
|
![]()
![]()
|