あるサーブレットから別のサーブレットにデータを渡すためにも使用できます。articleを参照してください。クッキーを作成するCookieクラスは、javax.servlet.httpパッケージで定義されています。responseを実行する必要があります。"red");response.addCookie(uiColorCookie);ただし、そのAPIははるかに広いので、調べてみましょう。クッキーの有効期限を設定する特定のCookieが有効である秒数を定義する最大経過時間(メソッドmaxAge(int)を使用)を設定できます。uiColorCookie.setMaxAge(60*60);最大年齢を1時間に設定します。この時間を過ぎると、クライアント(ブラウザ)はリクエストを送信するときにCookieを使用できなくなり、ブラウザのキャッシュからも削除する必要があります。APIのもう1つの便利なメソッドは、setDomain(String)です。これにより、クライアントが配信するドメイン名を指定できます。ドメイン名を明示的に指定するかどうかにも依存します。Cookieのドメインを設定しましょう。uiColorCookie.setDomain("example.com");Cookieは、example.comとそのサブドメインによって行われた各リクエストに配信されます。example.comからCookieを作成し、ドメイン名を空のままにすると、www.example.comに(サブドメインなしで)配信されます。ドメイン名とともに、パスも指定できます。次にそれを見てみましょう。Cookieパスを設定するパスは、Cookieが配信される場所を指定します。パスを明示的に指定すると、Cookieが指定されたURLとそのすべてのサブディレクトリに配信されます。uiColorCookie.setPath("/welcomeUser");暗黙的に、Cookieとそのすべてのサブディレクトリを作成したURLに設定されます。次に、Servlet内の値を取得する方法に焦点を当てましょう。サーブレットでCookieを読み取るCookieは、クライアントによってリクエストに追加されます。クライアントはパラメータをチェックし、現在のURLに配信できるかどうかを判断します。Servletに渡されたリクエスト(HttpServletRequest)でgetCookies()を呼び出すことにより、すべてのCookieを取得できます。この配列を反復処理して、たとえば名前を比較することで、必要な配列を検索できます。"");userNameCookieRemove.setMaxAge(0);response.addCookie(userNameCookieRemove);Cookieを削除するためのサンプルユースケースは、ユーザーログアウトアクションです。アクティブなユーザーセッション用に保存されたデータを削除する必要がある場合があります。これで、Servlet内のCookieを処理する方法がわかりました。次に、Servletから頻繁にアクセスするもう1つの重要なオブジェクトであるSessionオブジェクトについて説明します。HttpSessionオブジェクトHttpSessionは、さまざまな要求にわたってユーザー関連データを保存するためのもう1つのオプションです。セッションは、コンテキストデータを保持するサーバー側のストレージです。データは異なるセッションオブジェクト間で共有されません(クライアントはそのセッションからのみデータにアクセスできます)。キーと値のペアも含まれますが、Cookieと比較して、セッションには値としてオブジェクトを含めることができます。ストレージ実装メカニズムはサーバーに依存しています。セッションは、Cookieまたは要求パラメーターによってクライアントと照合されます。詳細については、hereを参照してください。セッションの取得リクエストから直接HttpSessionを取得できます。request.getSession();上記のコードは、セッションが存在しない場合に備えて、新しいセッションを作成します。以下を呼び出して同じことを実現できます。request.getSession(true)既存のセッションを取得するだけで、新しいセッションを作成したくない場合は、次を使用する必要があります。request.getSession(false)初めてJSPページにアクセスすると、デフォルトで新しいセッションが作成されます。session属性をfalse:に設定することで、この動作を無効にできます。ほとんどの場合、Webサーバーはセッション管理にCookieを使用します。セッションオブジェクトが作成されると、サーバーはセッションを識別するJSESSIONIDキーと値を使用してCookieを作成します。Session属性セッションオブジェクトは、特定のユーザーセッション用に作成された属性にアクセス(作成、読み取り、変更、削除)するための一連のメソッドを提供します。Object)は、セッション属性を作成するか、キーと新しい値に置き換えます。指定された名前(キー)の属性値を読み取るgetAttribute(String)指定された名前の属性を削除するremoveAttribute(String)getAttributeNames()を呼び出すことで、既存のセッション属性を簡単に確認することもできます。述べたように、リクエストからセッションオブジェクトを取得できます。それがあれば、上記のメソッドをすばやく実行できます。Value");属性値は、そのキー(名前)によって取得できます。session.getAttribute("attributeKey");属性が不要になったときに削除できます。session.removeAttribute("attributeKey");ユーザーセッションのよく知られた使用例は、ユーザーがWebサイトからログアウトしたときに、保存されているデータ全体を無効にすることです。セッションオブジェクトは、そのためのソリューションを提供します。session.invalidate();このメソッドは、Webサーバーからセッション全体を削除するため、Webサーバーから属性にアクセスできなくなります。HttpSessionオブジェクトにはより多くのメソッドがありますが、前述したものが最も一般的です。結論この記事では、サーバーへの後続のリクエスト間でユーザーデータを保存できる2つのメカニズム、Cookieとセッションについて説明しました。HTTPプロトコルはステートレスであるため、リクエスト間で状態を維持することは必須です。Githubで利用できます。