カテゴリ: jsp 更新日: 2026/01/09

JSPでCSSやJSを読み込む基本!外部ファイルのパス指定に注意しよう

JSPでCSSやJSを読み込む基本!外部ファイルのパス指定に注意しよう
JSPでCSSやJSを読み込む基本!外部ファイルのパス指定に注意しよう

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

生徒

「JSPでCSSファイルとかJavaScriptファイルを読み込むにはどうすればいいんですか?」

先生

「JSPでもHTMLと同じように<link>タグや<script>タグで外部ファイルを読み込めます。ただし、JSPの場合はパスの指定にちょっと注意が必要なんですよ。」

生徒

「パスってそんなに大事なんですか?どこかに置いておけば読み込まれると思ってました…」

先生

「そこが初心者がよくつまずくポイントです!今回はJSPでCSSやJSを正しく読み込む方法と、パス指定の基本をしっかり覚えていきましょう。」

1. JSPでも基本はHTMLと同じ!

1. JSPでも基本はHTMLと同じ!
1. JSPでも基本はHTMLと同じ!

まずおさえておきたいのは、JSP(JavaServer Pages)は「見た目の部分だけを見るとHTMLとほぼ同じ」ということです。画面のレイアウトや色を決めるCSSファイル、ボタンを押したときの動きをつけるJavaScriptファイルも、HTMLと同じ書き方で読み込みます。

外部CSSファイルを読み込むには<link>タグ、JavaScriptファイルを読み込むには<script>タグを使います。プログラミング未経験の方は、まず「画面のデザイン用がCSS」「動きをつけるのがJavaScript」とイメージしておくと理解しやすくなります。


<link rel="stylesheet" href="css/style.css">
<script src="js/script.js"></script>

<link>タグのrel="stylesheet"は「これはスタイルシートですよ」という意味で、hrefにCSSファイルの場所を書きます。<script>タグではsrcにJavaScriptファイルの場所を書きます。

このように書くと、ブラウザは画面を表示するときにcss/style.cssjs/script.jsというファイルをサーバーから探して読み込み、「文字の色」「余白」「ボタンの動き」などを反映してくれます。

実際のJSPでも、HTMLの<head>内にCSSの読み込みを、<body>の最後のほうにJavaScriptの読み込みを書くことが多いです。基本の形はHTMLと同じなので、「まずはHTMLと同じつもりで書いてみる」ことから始めると、JSPでのCSS・JSの読み込みもスムーズに理解できます。

2. JSPではWebアプリケーションのルートを意識する

2. JSPではWebアプリケーションのルートを意識する
2. JSPではWebアプリケーションのルートを意識する

JSPでよくある失敗は、外部ファイルのパス指定がずれていて、CSSやJavaScriptが読み込まれないケースです。JSPはサーブレットとして動作するため、ファイルの置き場所やURLパスに注意が必要です。

例えば、次のようなフォルダ構成を考えてみましょう:

  • WebContent/
    • index.jsp
    • css/style.css
    • js/script.js

このとき、JSPファイルからCSSやJSを読み込むには、ルートパスを意識して指定する必要があります。


<link rel="stylesheet" href="css/style.css">
<script src="js/script.js"></script>

ただし、JSPファイルがサブフォルダにある場合やURLルーティングが影響する場合、相対パスではうまく読み込めないことがあります。

3. <c:url>タグでパスを安全に指定しよう

3. <code><c:url></code>タグでパスを安全に指定しよう
3. <c:url>タグでパスを安全に指定しよう

JSPではJSTL(JSP Standard Tag Library)を使うことで、パス指定をより安全に行うことができます。特に<c:url>タグは、Webアプリケーションのコンテキストパスを自動で補完してくれる便利なタグです。


<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<link rel="stylesheet" href="<c:url value='/css/style.css' />">
<script src="<c:url value='/js/script.js' />"></script>

このように記述すれば、どのJSPファイルからでも正しいパスで読み込むことができるようになります。

4. <base>タグでベースパスを指定する方法

4. <code><base></code>タグでベースパスを指定する方法
4. <base>タグでベースパスを指定する方法

もう一つの方法として、HTMLの<base>タグを使ってベースパスを指定する方法もあります。これにより、全ての相対パスが指定したURLを基準に解釈されます。


<base href="${pageContext.request.contextPath}/">
<link rel="stylesheet" href="css/style.css">
<script src="js/script.js"></script>

この方法も便利ですが、他のURLにも影響を与えるため、使う際は慎重に検討しましょう。

5. 静的ファイルはどこに置けばいい?配置場所の基本

5. 静的ファイルはどこに置けばいい?配置場所の基本
5. 静的ファイルはどこに置けばいい?配置場所の基本

JSPプロジェクトにおいて、CSSファイルやJavaScriptファイルは通常、以下のようなフォルダに分けて整理します。

  • /css:スタイルシート(CSS)を格納
  • /js:JavaScriptファイルを格納
  • /images:画像ファイルを格納

これらのフォルダはWebContent直下に配置するのが一般的です。サーバーはこの場所をルートとして扱うため、パスの指定がしやすくなります。

6. JSPでの読み込み確認とブラウザのキャッシュ対策

6. JSPでの読み込み確認とブラウザのキャッシュ対策
6. JSPでの読み込み確認とブラウザのキャッシュ対策

CSSやJSを更新しても変更が反映されない場合、ブラウザのキャッシュが原因になっていることがあります。その対策として、読み込みURLにパラメータを付けてキャッシュを無効化する方法があります。


<link rel="stylesheet" href="css/style.css?v=20250828">
<script src="js/script.js?v=20250828"></script>

バージョン番号や日付をパラメータとして付けることで、毎回新しいファイルとして読み込まれるようになります。

7. JavaScriptの実行タイミングにも注意

7. JavaScriptの実行タイミングにも注意
7. JavaScriptの実行タイミングにも注意

JSPでJavaScriptを使う場合、DOMの読み込みが完了してから処理を行うようにしましょう。window.onloadDOMContentLoadedイベントを使うのが一般的です。


<script>
    window.onload = function() {
        alert("ページが読み込まれました!");
    };
</script>

特にJSPでは、Javaのコードが実行された後にHTMLとして出力されるため、<script>タグの位置や処理のタイミングに注意が必要です。

まとめ

まとめ
まとめ

JSPでCSSやJavaScriptを読み込む方法は、一見すると単純なようでいて、実際にはパス指定の仕組みやフォルダ構成、Webアプリケーション特有の動作を理解していないとつまずきやすい部分です。とくに、JSPはただのHTMLではなく、サーブレットとして処理される仕組みがあるため、外部ファイルを正しく読み込むには「どの場所からどのファイルを参照するのか」を丁寧に把握することが大切です。

今回の記事では、初心者が特につまずきやすいCSSやJSの読み込み方法を基礎から見直し、JSPでよく使われるフォルダ構成や、相対パスと絶対パスの違い、プロジェクトのコンテキストパスを意識した<c:url>タグの使い方などを詳しく紹介しました。これらはWebアプリケーションを開発する上で欠かせない基礎知識となり、今後より複雑な画面を作るときにも役立ちます。

また、ブラウザのキャッシュによってCSSやJSが更新されない問題もよくある悩みのひとつです。読み込みURLにバージョン情報や日付を付与することで、確実に最新ファイルを読み込む方法も覚えておくとトラブルを避けやすくなります。その他にも、JavaScriptの実行タイミングを意識することによって、思った通りの動作を実現しやすくなります。

以下では、今回学んだ内容を振り返るために簡単なサンプルプログラムも載せています。実際に手を動かしながら、CSSやJSが意図どおりに読み込まれるか確認してみると理解がより深まります。

JSPでの外部CSS・JS読み込みサンプル


<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
    <base href="${pageContext.request.contextPath}/">
    <link rel="stylesheet" href="<c:url value='/css/sample.css' />">
    <script src="<c:url value='/js/sample.js' />"></script>
</head>
<body>
    <h1>外部ファイル読み込み確認ページ</h1>
    <p>このページではCSSとJSが正しく読み込まれているか確認できます。</p>
</body>
</html>

実際に上記のコードを配置して動作させると、フォルダ構成やファイルパスの扱いがどれほど大切かがよく分かるはずです。 初心者のうちは「読み込めないのはファイルのせいだろう」と考えがちですが、実際にはパス指定の tiny なズレが原因ということがよくあります。 逆に言えば、このパス指定さえ丁寧に理解しておけば、JSPでのCSSやJSの取り扱いはぐっと楽になるでしょう。

先生と生徒の振り返り会話

生徒

「先生、今日の内容でCSSやJSが読み込まれない原因のほとんどが“パスの指定”ってことがわかりました…!思っていたより奥が深いんですね。」

先生

「その通りです。JSPはサーブレットとして動く以上、パスの考え方をしっかり押さえておくと、画面作りがスムーズになりますよ。特に<c:url>の扱いは今後も役に立ちます。」

生徒

「あと、キャッシュで更新が反映されないのも、今日初めて知りました。毎回何で変わらないのか不思議でした。」

先生

「Web開発では、見た目が変わらない原因がキャッシュのことはよくあります。バージョンを付けてあげれば解決することも多いですね。」

生徒

「なるほど…!今日の内容を自分のプロジェクトでも使ってみます!」

先生

「ぜひ実践してみてください。理解が深まりますよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

JSPでCSSファイルを読み込むにはどうすればいいですか?

JSPでもHTMLと同様に、linkタグを使ってCSSファイルを読み込みます。ただしJSPの場合はファイルの配置場所やパスの指定に注意が必要です。
関連記事:
カテゴリの一覧へ
新着記事
JavaのHttpServletResponseWrapperを完全解説!初心者でも理解できるレスポンス処理のしくみ
JavaのScannerクラスの使い方を徹底解説!初心者でも簡単に学べる入力処理
JavaのArrayListクラスとaddメソッドを完全解説!初心者でもわかるリスト操作
Javaの@Idアノテーションを徹底解説!初心者でもわかるデータベースとの連携方法
人気記事
No.1
Java&Spring記事人気No1
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Javaのラムダ式で配列を扱う!Arrays.streamの基本と注意点を初心者向けに解説
No.3
Java&Spring記事人気No3
JavaのRuntimeExceptionを完全解説!初心者でもわかるjava.langパッケージの基礎
No.4
Java&Spring記事人気No4
JavaのBigDecimalクラスcompareToメソッド完全ガイド!初心者でもわかる大小比較の基本
No.5
Java&Spring記事人気No5
JavaのIntegerクラスの使い方を完全ガイド!初心者でもわかる整数操作
No.6
Java&Spring記事人気No6
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.7
Java&Spring記事人気No7
Javaの@SuppressWarningsアノテーションの使い方を完全ガイド!初心者でもわかる警告の抑制方法
No.8
Java&Spring記事人気No8
JSPとは何か?初心者向けにできること・仕組み・特徴をやさしく解説