1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

😄 Java Webアプリ入門 Part2: JSPで動くページを作っちゃおう!

Posted at

こんにちは!「JavaでWebアプリを作りたい!」と思っている初心者のみなさん、ようこそ!🎉
前回は Eclipse + Tomcat を使って Servlet で「Hello, World!」を表示しましたね。
今回は JSP(JavaServer Pages) を使って、HTMLにJavaのコードを埋め込んで「動的なWebページ」を作ります!

この記事は コピペで動くサンプルコード超初心者向けの丁寧な解説 で、JSPの基本を楽しく学べるように作りました。


🎯 学習ゴール

この記事を読み終えると、以下ができるようになります:

  • JSPを使って動的なWebページを作成
  • URLパラメータやセッションを使ってページを動的に変化
  • フォームやリスト表示など、Webアプリでよく使う機能を試す
  • よくあるエラーと対処法を理解

1. JSPって何?

👉 JSP(JavaServer Pages) は、HTMLの中にJavaを埋め込める技術です。

  • Servlet → 裏方で処理(ロジックや計算)
  • JSP → ユーザーが見る画面(表示やデザイン)

つまり「Servlet = 頭脳」「JSP = 顔」のような役割分担です!


JSPの処理の流れ

  1. ブラウザが http://localhost:8080/アプリ名/greet.jsp にアクセス
  2. Tomcat が JSP を Servlet に変換して実行
  3. 生成された HTML がブラウザに返る

👉 URLには「.jsp」と見えるけど、裏では Servlet が動いています!


2. JSPを置く場所

JSPファイルは Eclipseプロジェクトの src/main/webapp に置きます。

  • src/main/webapp → 公開フォルダ(ブラウザからアクセスOK)
  • WEB-INF → 非公開フォルダ(設定ファイルや隠したいJSPを置く)

⚠️ src/main/webapp に置かないと表示されません!


3. URLパラメータの仕組み

URLに ?name=Hanako と書くと…

request.getParameter("name")

Hanako を取得できます。
→ ページ内容を入力に応じて変えられる!


4. サンプルコード集(コピペOK!)

ここからは 動くJSPサンプル5つ を紹介します。


(1) 挨拶JSP

📌 名前をURLパラメータ(?name=〇〇)で受け取り、「こんにちは、〇〇さん!」と表示。

<!-- greet.jsp -->
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<body>
<%! 
    private String greeting(String name) { 
        return "こんにちは、" + name + "さん!"; 
    } 
%>
<% 
    String user = request.getParameter("name"); 
    if (user == null || user.isEmpty()) user = "ゲスト"; 
%>
<h1><%= greeting(user) %></h1>
</body>
</html>

🔎 確認:

  • http://localhost:8080/WebStarterApp/greet.jsp?name=Hanako → こんにちは、Hanakoさん!
  • http://localhost:8080/WebStarterApp/greet.jsp → こんにちは、ゲストさん!

(2) 現在日時JSP

📌 Date クラスで現在の日時を表示。

<!-- datetime.jsp -->
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.util.Date" %>
<!DOCTYPE html>
<html>
<body>
<% Date now = new Date(); %>
<p>今は <%= now %> です!</p>
</body>
</html>

(3) 訪問者カウンターJSP

📌 セッションを使ってアクセス回数をカウント。

<!-- visitor.jsp -->
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<body>
<% 
    Integer count = (Integer) session.getAttribute("visitCount"); 
    if (count == null) count = 1; else count++;
    session.setAttribute("visitCount", count); 
%>
<h1>ようこそ!</h1>
<p>あなたは <strong><%= count %></strong> 回目の訪問です!</p>
</body>
</html>

(4) シンプル計算機JSP

📌 URLパラメータ ?num1=5&num2=3 で足し算。

<!-- calculator.jsp -->
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<body>
<%! private int add(int a, int b) { return a + b; } %>
<% 
    String n1 = request.getParameter("num1"); 
    String n2 = request.getParameter("num2"); 
    String result = "数字を入力してください"; 
    if (n1 != null && n2 != null) {
        try { result = "結果: " + add(Integer.parseInt(n1), Integer.parseInt(n2)); }
        catch (NumberFormatException e) { result = "エラー: 数字を入れてね!"; }
    }
%>
<h1>シンプル計算機</h1>
<p><%= result %></p>
</body>
</html>

(5) シンプルなフォームJSP

📌 フォームで名前を入力して挨拶。

<!-- form.jsp -->
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<body>
<% 
    String username = request.getParameter("username"); 
    String message = ""; 
    if (username != null && !username.isEmpty()) { 
        message = "こんにちは、" + username + "さん!"; 
    }
%>
<h1>名前を教えてね!</h1>
<form method="GET" action="form.jsp">
    <label>名前: </label>
    <input type="text" name="username">
    <input type="submit" value="送信">
</form>
<% if (!message.isEmpty()) { %>
    <p><%= message %></p>
<% } %>
</body>
</html>

5. エラーが出たときのヒント

  • コンパイルエラー → Java文法や <% %> の閉じ忘れを確認
  • 文字化け → ファイル先頭に charset=UTF-8 を必ず書く
  • 404エラー → JSPを src/main/webapp に置いたか確認
  • 表示されない → Tomcatを再起動(Clean/Publishも試す)

6. まとめ

お疲れさまでした!🎉

  • JSPは裏でServletに変換されて動いている
  • URLパラメータやセッションでページを動的に変化
  • フォーム入力・リスト表示の基本を学習

👉 次は「ServletとJSPの連携」や「DB接続(MySQL)」に進むと、さらに本格的なWebアプリが作れます!


1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?