プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

JSPでCookieを設定する方法を3ステップでわかりやすく解説

JSPでCookieを設定する基本の流れ

JSPでCookieを扱う場合、基本的には次の3つのステップで設定を行います。

  1. Cookieオブジェクトを作成する
  2. 有効期限(最大生存期間)を設定する
  3. HTTPレスポンスヘッダーにCookieを追加して送信する

それぞれの手順を順番に見ていきましょう。

ステップ1:Cookieオブジェクトの作成

Cookieクラスのコンストラクタに、Cookieの名前と値(どちらも文字列)を引数として渡してオブジェクトを生成します。

Cookie cookie = new Cookie("key","value");

注意点として、名前と値には空白文字や、以下の記号を含めることはできません。

[ ] ( ) = , " / ? @ : ;

ステップ2:有効期限の設定

setMaxAgeメソッドを使用すると、Cookieが有効である期間を秒単位で指定できます。次のコードは、24時間有効なCookieを設定する例です。

cookie.setMaxAge(60*60*24);

setMaxAgeに負の値を指定するとブラウザ終了時に削除され、0を指定すると即座に削除されます。用途に応じて使い分けましょう。

ステップ3:HTTPレスポンスヘッダーへのCookie追加

response.addCookieメソッドを使うことで、生成したCookieをHTTPレスポンスヘッダーに追加し、ブラウザへ送信できます。

response.addCookie(cookie);

実装例:フォーム入力値をCookieに保存する

ここまでの手順を組み合わせた、実際に動作するJSPのサンプルコードがこちらです。リクエストパラメータから取得した姓名を、それぞれCookieとして保存しています。

<%
    // 名前と姓のCookieを作成
    Cookie firstName = new Cookie("first_name", request.getParameter("first_name"));
    Cookie lastName = new Cookie("last_name", request.getParameter("last_name"));

    // 両方のCookieに24時間の有効期限を設定
    firstName.setMaxAge(60*60*24);
    lastName.setMaxAge(60*60*24);

    // レスポンスヘッダーに両方のCookieを追加
    response.addCookie(firstName);
    response.addCookie(lastName);
%>
<html>
    <head>
        <title>Cookieの設定</title>
    </head>
    <body>
        <center>
            <h1>Cookieの設定</h1>
        </center>
        <ul>
            <li><p><b>名前:</b>
                <%= request.getParameter("first_name")%>
            </p></li>
            <li><p><b>姓:</b>
                <%= request.getParameter("last_name")%>
            </p></li>
        </ul>
    </body>
</html>

上記のコードをmain.jspというファイル名で保存し、次のHTMLページから呼び出します。

<html>
    <body>
        <form action="main.jsp" method="GET">
            名前:<input type="text" name="first_name">
            <br />
            姓:<input type="text" name="last_name" />
            <input type="submit" value="送信" />
        </form>
    </body>
</html>

HTML側のコードはhello.jspというファイルに保存し、hello.jspmain.jspの両方を<Tomcatインストールディレクトリ>/webapps/ROOT配下に配置してください。その後、ブラウザでhttps://localhost:8080/hello.jspにアクセスすると、フォームが表示されます。

動作確認

JSPでCookieを設定する方法を3ステップでわかりやすく解説

First Name(名前)とLast Name(姓)を入力して送信ボタンをクリックしてみてください。入力した姓名が画面に表示されると同時に、firstNamelastNameという2つのCookieがブラウザに保存されます。これらのCookieは、次回フォームを送信したときに自動的にサーバーへ送り返されます。

補足:サーバー側でCookieを取得する方法

ブラウザから送られてきたCookieは、request.getCookies()メソッドで取得できます。戻り値はCookieオブジェクトの配列なので、getName()とgetValue()を使って各Cookieの名前と値を取り出します。

Cookie[] cookies = request.getCookies();
if (cookies != null) {
    for (Cookie c : cookies) {
        if ("first_name".equals(c.getName())) {
            String firstName = c.getValue(); // Cookieの値を取得
        }
    }
}

このように、Cookieの設定と取得を組み合わせることで、ユーザーの再訪問時に前回の入力内容を復元するなど、さまざまな用途に活用できます。

  1. Skypeの名前を変更する方法を徹底解説!表示名とユーザー名の違いとは

    Skypeは、仕事や日常のコミュニケーションのためのプラットフォームとして、特にビジネスシーンで広く利用されるようになりました。Skypeユーザーの中には、Skypeの名前を変更したいと考えている方も多いのではないでしょうか。実は、Skypeの名前にはSkype表示名(ディスプレイネーム)とSkypeユーザー名の2種類があることをご存知でしょうか。目次:Skypeのユーザー名と表示名の違いは?Skypeの表示名を変更する方法Windows 10でSkypeのユーザー名を変更する方法Skypeのユーザー名と表示名の違いは?Skypeにはユーザー名と表示名の2種類があると知っていても、その違いや、

  2. iPhoneでボイスメールを設定する方法!キャリア別の手順とトラブル対処法を徹底解説

    ボイスメールは現代のスマートフォンに欠かせない機能ですが、普段はあまり意識しないものです。しかし、携帯キャリアを乗り換えたときなど、改めてボイスメールの設定が必要になる場面に直面して初めて、「そういえば設定しなければいけないんだ」と気づくこともあるでしょう。 iPhoneでのボイスメール設定はとても簡単です。ただし、利用しているキャリアによって手順が異なる場合がある点には注意が必要です。この記事では、iPhoneでボイスメールを使うために知っておきたい情報をすべてまとめました。 iPhoneでボイスメールを設定する基本手順 基本的に、ボイスメールの設定方法はどのキャリアでも大きく変わりません。