カテゴリ: Servlet 更新日: 2025/06/18
PR
独学でJavaを学んでいる方向け
「実務レベルに到達できるか不安」「1人だと詰まることが多い」場合は、 実践重視で学べる環境を一度確認しておくのも一つの手です。
EBAエデュケーション |学習内容・サポートを見る

JavaのCookieにドメインを設定する方法!setDomainメソッドの使い方を初心者向けに解説

CookieのsetDomainメソッド
CookieのsetDomainメソッド

先生と生徒の会話形式で理解しよう

生徒

「先生、JavaのWebアプリでCookieを使うときに、他のサブドメインでも共有したいんですけど、できますか?」

先生

「はい、できます。CookieクラスのsetDomainメソッドを使えば、Cookieを特定のドメインやサブドメインに設定できますよ。」

生徒

「それって具体的にはどんなコードになるんですか?」

先生

「それでは、javax.servlet.http.CookieクラスのsetDomainメソッドについて詳しく見ていきましょう!」

1. JavaのCookieクラスとは?

1. JavaのCookieクラスとは?
1. JavaのCookieクラスとは?

Javaのjavax.servlet.http.Cookieクラスは、HTTP通信で使われるCookieをJava Servlet内で扱うためのクラスです。Webアプリケーションでセッション管理やユーザー情報の一時保存などに使われます。

このクラスを使えば、Cookieの作成、取得、設定が簡単に行えます。Cookieには名前と値だけでなく、有効期限、パス、セキュア属性、ドメインなども設定できます。

2. setDomainメソッドとは?

2. <code>setDomain</code>メソッドとは?
2. setDomainメソッドとは?

setDomainメソッドは、Cookieの対象ドメインを指定するためのメソッドです。このメソッドを使うことで、Cookieをサブドメイン間で共有することが可能になります。

例えば、example.comというドメインがあり、www.example.comshop.example.comでCookieを共有したい場合、setDomain(".example.com")と設定することで、両方のサブドメインで同じCookieが使えるようになります。

PR

将来を見据えて、+αのスキルを身につけたい方へ

JavaやLinuxを学んでいても、「このままで市場価値は上がるのか」 「キャリアの選択肢を広げたい」と感じる方は少なくありません。

AIを学ぶならアイデミープレミアム

3. setDomainメソッドの構文と使い方

3. <code>setDomain</code>メソッドの構文と使い方
3. setDomainメソッドの構文と使い方

基本的な構文は次のとおりです。


Cookie cookie = new Cookie("userId", "abc123");
cookie.setDomain(".example.com");

このようにsetDomainにドメイン名を文字列で渡します。先頭にドット.を付けることで、そのドメインとすべてのサブドメインでCookieが有効になります。

4. Cookieを使ってドメイン共有するサンプルコード

4. Cookieを使ってドメイン共有するサンプルコード
4. Cookieを使ってドメイン共有するサンプルコード

ここでは、実際のJava ServletでCookieを設定して、ドメインを指定するサンプルを紹介します。


import java.io.IOException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DomainCookieServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        Cookie cookie = new Cookie("username", "taro");
        cookie.setDomain(".example.com"); // サブドメイン全体で有効
        cookie.setPath("/"); // 全パスで有効
        response.addCookie(cookie);

        response.getWriter().println("Cookieが設定されました。");
    }
}

このコードは、クライアントに対してusernameという名前のCookieを送信し、それが.example.comというドメインで有効になるように設定しています。

5. setDomainを使う際の注意点

5. <code>setDomain</code>を使う際の注意点
5. setDomainを使う際の注意点

setDomainを使用するときには、いくつかの注意点があります。

  • クロスドメイン(異なるドメイン間)では使えません。ドメインが共通している必要があります。
  • ドメインの先頭に「.(ドット)」をつけない場合、指定した完全一致のドメインにしかCookieが送信されません。
  • ブラウザのセキュリティ制限によって、setDomainの設定が無視されることがあります。

6. Cookieのドメインとパスの関係

6. Cookieのドメインとパスの関係
6. Cookieのドメインとパスの関係

setDomainと同様に、CookieにはsetPathメソッドで有効なパスを設定できます。ドメインが広ければ広いほどCookieは多くの場所で使えますが、必要最小限にすることでセキュリティやパフォーマンスの観点からも適切です。

例えば、setDomain(".example.com")かつsetPath("/shop")とすれば、shop.example.com以下の/shopディレクトリ内でのみCookieが有効になります。

7. Cookieの確認方法(開発者ツール)

7. Cookieの確認方法(開発者ツール)
7. Cookieの確認方法(開発者ツール)

Cookieが正しくドメインに設定されているかを確認するには、ブラウザの開発者ツールを使用します。

Google Chromeでは、ページを開いた状態でF12を押し、「Application」タブ →「Cookies」から確認できます。設定されたドメインが正しいかどうかをここでチェックできます。

8. 実行結果の例

8. 実行結果の例
8. 実行結果の例

上記のServletを実行すると、以下のようなHTTPレスポンスヘッダーがブラウザに送信されます。


Set-Cookie: username=taro; Domain=.example.com; Path=/

このように、Cookieのドメインとパスが指定された形でクライアントに送信されることが確認できます。

9. こんなときにsetDomainが役立つ

9. こんなときに<code>setDomain</code>が役立つ
9. こんなときにsetDomainが役立つ

以下のようなケースでsetDomainは非常に便利です。

  • 本サイト(www.example.com)とショップサイト(shop.example.com)でユーザーログイン情報を共有したい
  • 広告配信のため、サブドメイン間でユーザー情報を一元管理したい
  • 言語や地域によってサブドメインを分けているWebサービスで、共通Cookieを利用したい

こういったユースケースでは、setDomainを使ってCookieの有効範囲を広げることで、ユーザーにとってスムーズな体験を提供できます。

サーブレットやJSPの基礎を体系的に理解したい人には、 定番の入門書がこちらです。

スッキリわかるサーブレット&JSP入門をAmazonで見る

※ Amazonアソシエイト・プログラムを利用しています

カテゴリの一覧へ
新着記事
PR

JavaやLinuxの検証環境に
低コストで使えるVPS

Thymeleafのth:blockの使い方を完全ガイド!初心者でもわかるテンプレートブロック管理
Thymeleafのth:selected属性の使い方を完全解説!初心者でもわかるセレクトボックス選択状態の指定方法
Spring MVCのルーティング設計をマスター!初心者向け@GetMappingと@PostMappingの基本と命名ルール
JSPのコメントタグとHTMLコメントの違いを徹底解説!初心者向けわかりやすい使い分け講座
PR 未経験からITエンジニアを目指す方へ

Javaを学んでいるけど、「このまま未経験で就職できるか不安」という20代向け。 学歴不問・無料サポートの就職支援という選択肢があります。

Tamesy |無料で面談予約
人気記事
No.1
Java&Spring記事人気No1
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
JavaのArrayListクラスとgetメソッドを完全解説!初心者でもわかるリストの要素取得
No.3
Java&Spring記事人気No3
JavaのIntegerクラスparseIntメソッド完全ガイド!初心者でもわかる文字列から数値変換
No.4
Java&Spring記事人気No4
Spring BootのJakarta移行ガイド!初心者向けjavax→jakarta変更ポイント徹底解説
No.5
Java&Spring記事人気No5
Thymeleafのth:classappend属性の使い方を完全ガイド!初心者でもわかる動的クラス追加
No.6
Java&Spring記事人気No6
JavaのIntegerクラスの使い方を完全ガイド!初心者でもわかる整数操作
No.7
Java&Spring記事人気No7
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.8
Java&Spring記事人気No8
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門
PR

ローカルPCに依存しない開発環境という選択肢

Java・Linuxの検証や学習環境を、クラウド上ですぐに用意できます。

Java入門

Javaの基礎を体系的に学びたい場合は、文法だけでなく 「なぜそう書くのか」まで丁寧に解説されているため、 初心者でも理解しやすい定番の1冊です。

スッキリわかるJava入門 第4版

※ 紙の書籍・電子書籍どちらでも購入できます

Java実践

ジェネリクス、enum、シールクラスなどの型設計から、 関数型プログラミング(ラムダ式・Stream API)、 JVM制御やリフレクション、外部ライブラリの活用までを扱っており、 「Javaを使えるレベル」へ進むための内容が網羅されています。

スッキリわかるJava入門 実践編 第4版

※ 紙の書籍・電子書籍どちらでも購入できます

Spring入門

Spring Frameworkの全体像から、 Webアプリ開発で必要となる主要機能までを 体系的に解説している定番の入門書です。

Spring徹底入門 第2版 Spring FrameworkによるJavaアプリケーション開発

※ 紙の書籍・電子書籍どちらでも購入できます

PR 実務経験のあるエンジニア向け

Javaなどの実務経験があり、次のキャリアを検討している方向け。 IT・ゲーム業界に特化した転職支援サービスという選択肢もあります。

転職ボックス |IT・ゲーム業界専門