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

JSPで文字を出力する方法まとめ!HTMLとの違いと<%= %>の使い方

JSPで文字を出力する方法まとめ!HTMLとの違いと<%= %>の使い方
JSPで文字を出力する方法まとめ!HTMLとの違いと<%= %>の使い方

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

生徒

「先生、JSPってどうやって文字を出力するんですか?HTMLとは違うんですよね?」

先生

「その通りです。JSPではJavaコードを埋め込んで文字を出力する方法があるので、HTMLと少し使い方が異なります。」

生徒

「なるほど…。たとえば<%= %>っていうのを見たことがありますが、あれって何ですか?」

先生

「良いところに気づきましたね。それでは、JSPで文字を出力する基本と<%= %>の使い方を詳しく見ていきましょう。」

1. JSPで文字を出力する基本

1. JSPで文字を出力する基本
1. JSPで文字を出力する基本

JSP(JavaServer Pages)は、サーバーサイドで動作するJavaベースのテンプレートエンジンです。JSPを使うと、HTMLの中にJavaコードを埋め込んで、動的なWebページを作成できます。文字を出力する際は、通常のHTMLタグで書く方法と、JSP独自の構文で出力する方法の2種類があります。

まず、HTMLの中で直接テキストを書く方法は、次のように記述します。


<!DOCTYPE html>
<html>
<head>
    <title>JSP出力例</title>
</head>
<body>
    <p>こんにちは、世界!</p>
</body>
</html>

このように記述すれば、ブラウザ上には「こんにちは、世界!」と表示されます。これは通常のHTMLの扱いと変わりません。

2. JSPの<%= %>でJavaの値を出力する方法

2. JSPの<code><%= %></code>でJavaの値を出力する方法
2. JSPの<%= %>でJavaの値を出力する方法

JSPでJavaの変数や計算結果などを出力したい場合、<%= %>という構文を使います。これは「式(Expression)」と呼ばれ、out.print()と同じ動きをします。

例えば、次のようなJSPコードを書いた場合:


<!DOCTYPE html>
<html>
<head>
    <title>JSP出力</title>
</head>
<body>
    <% 
        String name = "太郎";
    %>
    <p>こんにちは、<%= name %>さん!</p>
</body>
</html>

このコードを実行すると、ブラウザには次のように表示されます。


こんにちは、太郎さん!

このように、Javaで定義した変数nameの値が、HTMLに組み込まれて表示されます。

3. <%= %><% %>の違いとは?

3. <code><%= %></code>と<code><% %></code>の違いとは?
3. <%= %><% %>の違いとは?

JSPではJavaコードを埋め込む方法がいくつかありますが、特に混乱しやすいのが<%= %><% %>の違いです。

  • <%= %>:Javaの「値」をその場で出力したいときに使う
  • <% %>:Javaの「処理(if文・変数定義など)」を行うときに使う

たとえば、次のような例では:


<%
    int num = 10;
    int doubled = num * 2;
%>
<p>2倍の値は <%= doubled %> です。</p>

このように、処理部分は<% %>で書き、出力部分は<%= %>で書くという役割分担があります。

4. HTMLとの違い:JSPは動的、HTMLは静的

4. HTMLとの違い:JSPは動的、HTMLは静的
4. HTMLとの違い:JSPは動的、HTMLは静的

JSPとHTMLの最も大きな違いは、「動的に処理できるかどうか」です。HTMLはあくまで静的な表示しかできませんが、JSPはJavaのロジックを組み込むことで、ページの内容を動的に変えることが可能です。

たとえば、時間帯によって表示内容を変えるような処理も、JSPなら簡単にできます。


<%
    int hour = java.time.LocalTime.now().getHour();
    String greeting;
    if (hour < 12) {
        greeting = "おはようございます";
    } else {
        greeting = "こんにちは";
    }
%>
<p><%= greeting %></p>

このように、JSPではJavaの条件分岐を使って、表示内容を動的に変えることができます。

5. JSPでHTMLエスケープに注意しよう

5. JSPでHTMLエスケープに注意しよう
5. JSPでHTMLエスケープに注意しよう

JSPでJavaの値を出力する際に注意すべき点のひとつが「HTMLエスケープ」です。たとえば、出力したい文字列に<>が含まれていると、ブラウザがHTMLタグと誤認してしまう可能性があります。

ユーザーが入力したデータなどを表示する場合は、StringEscapeUtils.escapeHtml4()などでエスケープ処理をしてから出力するのが安全です。


<%@ page import="org.apache.commons.text.StringEscapeUtils" %>
<%
    String userInput = "<script>alert('危険')</script>";
    String safeOutput = StringEscapeUtils.escapeHtml4(userInput);
%>

<%= safeOutput %>

上記のように、HTMLタグがそのまま出力され、ブラウザで実行されるリスクを避けることができます。

6. out.print()との違いと使い分け

6. <code>out.print()</code>との違いと使い分け
6. out.print()との違いと使い分け

JSPでは<%= %>と同様の意味を持つout.print()メソッドも使えます。たとえば以下のように書くと、同じ出力が得られます。


<%
    String name = "花子";
    out.print("こんにちは、" + name + "さん!");
%>

ただし、見た目が煩雑になるため、基本的には<%= %>を使ったほうが読みやすく、初心者にも扱いやすいです。

7. JSPの出力でよくあるミスと対策

7. JSPの出力でよくあるミスと対策
7. JSPの出力でよくあるミスと対策

JSPで初心者がつまずきやすいポイントとして、以下のようなものがあります。

  • セミコロンのつけ忘れ
  • HTMLとJavaコードの混在によるタグのミス
  • 変数のスコープを理解せずにエラーになる
  • ブラウザに反映されないキャッシュの問題

これらを防ぐには、まずコードを丁寧に書くことと、Tomcatなどの再起動やキャッシュのクリアを忘れずに行うことが大切です。

まとめ

まとめ
まとめ

JSPで文字を出力する仕組みをしっかり整理しよう

JSPで文字を出力する方法は、静的なHTMLの出力とは異なり、Javaのロジックをそのままページに組み込める点に大きな特徴があります。特に<%= %>構文を使った動的な値の出力や、<% %>構文を使った処理の記述は、Webアプリケーションの柔軟なページ生成に欠かせない基本スキルです。今回の記事では、JSPでの文字出力の基本から、動的な表示を実現する方法、HTMLとの大きな違い、さらにエスケープやよくあるミスなど実践的なポイントまで幅広く触れました。

HTMLはあくまで静的な内容を描画するために使われますが、JSPではサーバーサイドでJavaコードが動作し、画面表示を自在に変えることができます。条件分岐や計算、フォームの入力値の反映など、動的にコンテンツを変更したい場面ではJSPの特性が大きな力を発揮します。また、out.print()との違いや、HTMLエスケープの重要性もあわせて理解しておくことで、安全で保守しやすい開発が可能になります。

今回の内容を整理すると、JSPで文字を出力する方法は大きく分けて「HTMLとしてそのまま書く」「Javaの値を<%= %>で出力する」「スクリプトレットで処理を書いて動的に表示を変える」という三つに分類できます。さらに、動的表示の便利さと引き換えに気をつけるべきポイントとして、エスケープ処理やタグの混在によるミスなども理解しておく必要があります。JSPの基本構文をきちんと押さえることで、複雑なWebアプリケーションの画面でも柔軟な表現が可能になり、開発効率も大きく向上します。

最後に、記事の内容をより具体的に振り返るために、JSPで文字を出力する基本的なサンプルコードを再整理して紹介します。HTMLのような書き方とJSP独自の書き方の違いが理解できるはずです。動的コンテンツの生成という観点からも、これらのコードは日常的に利用される大切なエッセンスとなります。

JSPの出力方法を確認できるサンプルコード

まずはHTML形式でそのまま文字を出力する例です。


<!DOCTYPE html>
<html>
<head>
    <title>静的表示の例</title>
</head>
<body>
    <p>これはHTMLとして出力される文字です。</p>
</body>
</html>

次に、JSPの<%= %>でJavaの値を表示する例です。


<%
    String animal = "猫";
    int age = 3;
%>
<p>飼っている動物は <%= animal %> で、<%= age %> 歳です。</p>

処理ロジックを含めることで、動的に文章を切り替えることもできます。


<%
    int hour = java.time.LocalTime.now().getHour();
    String greet;
    if (hour < 12) {
        greet = "おはようございます";
    } else if (hour < 18) {
        greet = "こんにちは";
    } else {
        greet = "こんばんは";
    }
%>
<p>現在のあいさつ:<%= greet %></p>

このように、JSPではJavaの変数・計算・条件分岐を柔軟に埋め込むことで、HTMLだけでは実現できない豊かな表現が可能になります。フォーム入力の反映、画面遷移、データの加工など、動的Webサイトに必要な多くの処理を内部で行えるため、サーバーサイドの強みを活かした開発ができます。

ただし、文字出力の際に忘れてはならない重要ポイントがエスケープ処理です。ユーザー入力のような不確定な文字列をそのまま出力すると、意図しないタグが実行されるリスクが発生します。以下のようなエスケープ処理を取り入れておくことでセキュリティを確保できます。


<%@ page import="org.apache.commons.text.StringEscapeUtils" %>
<%
    String raw = "<script>alert('危険')</script>";
    String safe = StringEscapeUtils.escapeHtml4(raw);
%>

<%= safe %>

このような基礎をひとつずつ理解することが、JSPの実践的な活用につながります。動的な表示の仕組み、構文の使い分け、エスケープ処理など複数の観点を知っておくことで、安定したWebページ開発が可能になります。今回学んだ内容を土台に、より複雑なテンプレート構築やServletとの連携にも自然と応用できるようになるでしょう。

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

生徒:「先生、JSPで文字を出力する方法がHTMLだけのときよりたくさんあって驚きました!」

先生:「そうだね。JSPではJavaの値を扱えるから、画面を動的に作るにはとても便利なんだよ。」

生徒:「特に<%= %><% %>の使い分けが大事だと感じました。役割が違うんですね。」

先生:「その通り。処理を書くのか、値を出すのかで適切な構文を選ぶ必要があるんだ。」

生徒:「HTMLでは動かないコードがJSPだと動く理由も理解できました。サーバー側で処理しているんですね。」

先生:「よく理解できているね。それにエスケープ処理を忘れないこともとても大事だよ。」

生徒:「はい!今回のまとめのおかげでJSPのしくみがかなり整理できました!」

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

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

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

JSPで文字を出力する方法とは?HTMLとの違いは何ですか?

JSPではJavaコードを埋め込んで文字を出力する方法があり、静的なHTMLと違って動的な表示が可能です。JSPではHTMLにJavaの値や処理を埋め込むことができ、状況に応じて表示内容を変えることができます。
関連記事:
カテゴリの一覧へ
新着記事
Springの@Transactional徹底解説!トランザクションの伝播・分離レベル・タイムアウトの基本
JavaのHashMapクラスgetメソッドの使い方を完全ガイド!初心者でもわかるjava.util入門
Thymeleafのth:fragmentを使ったテンプレートの再利用方法を完全ガイド!初心者でもわかる使い方
Javaの@PathVariableアノテーションの使い方を徹底解説!初心者でもわかるパスパラメータの基本と応用
人気記事
No.1
Java&Spring記事人気No1
Javaのラムダ式で配列を扱う!Arrays.streamの基本と注意点を初心者向けに解説
No.2
Java&Spring記事人気No2
JavaのRuntimeExceptionを完全解説!初心者でもわかるjava.langパッケージの基礎
No.3
Java&Spring記事人気No3
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.4
Java&Spring記事人気No4
JavaのIntegerクラスの使い方を完全ガイド!初心者でもわかる整数操作
No.5
Java&Spring記事人気No5
JavaのBigDecimalクラスcompareToメソッド完全ガイド!初心者でもわかる大小比較の基本
No.6
Java&Spring記事人気No6
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.7
Java&Spring記事人気No7
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.8
Java&Spring記事人気No8
Javaの@SuppressWarningsアノテーションの使い方を完全ガイド!初心者でもわかる警告の抑制方法