Java初心者向け!JSP(JavaServer Pages)入門ガイド

Java

はじめに

Webアプリケーション開発において、JSP(JavaServer Pages) は動的なWebページを作成するための基本技術です。Javaサーブレットと同様にサーバーサイド技術ですが、JSPはHTMLとJavaコードを組み合わせて、効率的に動的なコンテンツを生成できます。

この記事では、JSPの基本概念から使い方、簡単なサンプルコード、そして実際の開発の流れを 初心者向け に分かりやすく解説します。


1. JSPとは何か?

JSP(JavaServer Pages) とは、HTMLベースのファイル内にJavaコードを埋め込んで動的にWebページを生成する技術です。サーバーサイドで動作し、Servlet技術を基盤として動いています。

JSPの特徴

  1. HTMLとJavaの融合:HTMLにJavaのコードを直接埋め込める。
  2. サーブレットの簡略化:複雑なHTML出力をシンプルに記述可能。
  3. 動的ページ生成:データベース連携やユーザー入力に応じたページ生成。
  4. 再利用性:カスタムタグやJSPファイルのインクルードにより効率化。

2. JSPを使うための準備

必要な環境

  1. JDK(Java Development Kit):Java 8以上を推奨。
  2. 統合開発環境(IDE):EclipseやIntelliJ IDEAなど。
  3. Apache Tomcat:JSPとServletを実行するためのWebサーバー。

開発環境のセットアップ

  1. JDKインストール:bashコードをコピーするjava -version
  2. Apache Tomcatインストール: Tomcat公式サイトからダウンロードし、設定します。
  3. Eclipseの設定:

3. JSPの基本構文

JSPファイルの拡張子は .jsp です。HTMLとJavaコードが組み合わさることで動的なページを作成できます。

JSPの基本構文

<%@ page contentType="text/html" %>
<html>
<head>
<title>JSP 入門</title>
</head>
<body>
<h1>こんにちは、JSP!</h1>
<p>現在時刻: <%= new java.util.Date() %></p>
</body>
</html>

コードの解説

  1. <%@ page %>: JSPページの設定を行うディレクティブ。
  2. HTMLタグ: 通常のHTMLを記述。
  3. <%= %>: Javaコードを評価して出力するスクリプトレット。

4. JSPの基本要素

4.1 スクリプトレット

Javaコードを記述するための領域です。<% %> の中にJavaコードを書きます。

<%
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum += i;
}
%>
<p>1から10の合計: <%= sum %></p>

4.2 式(Expression)

Javaの変数やメソッドを出力する場合は <%= %> を使用します。

<p>今日の日付: <%= new java.util.Date() %></p>

4.3 宣言(Declaration)

JSPファイル内でメソッドや変数を宣言する際は <%! %> を使用します。

<%! 
int add(int a, int b) {
return a + b;
}
%>
<p>1 + 2 = <%= add(1, 2) %></p>

4.4 コメント

JSPにはHTMLコメントとJavaコメントがあります。

  • HTMLコメント: <!-- -->(ブラウザ側に表示される)
  • JSPコメント: <%-- --%>(サーバー側のみ)
<!-- HTMLコメント -->
<%-- JSPコメント --%>

5. JSPとサーブレットの連携

JSP単体でも動的なページを生成できますが、サーブレットと連携することでさらに強力なアプリケーションを構築できます。

サンプル: サーブレットからJSPへデータを渡す

サーブレットコード

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class WelcomeServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setAttribute("message", "サーブレットからJSPへデータを渡します!");
RequestDispatcher dispatcher = request.getRequestDispatcher("welcome.jsp");
dispatcher.forward(request, response);
}
}

JSPコード(welcome.jsp)

<html>
<body>
<h1>サーブレットとJSPの連携</h1>
<p><%= request.getAttribute("message") %></p>
</body>
</html>

実行手順

  1. URLマッピングをサーブレットに設定(web.xml または @WebServlet)。
  2. サーブレットを実行 → JSPにデータが表示される。

6. JSPのディレクティブとアクションタグ

ディレクティブ

ディレクティブはJSPファイルの設定やコンパイル時の情報を指定します。

  • <%@ page %>: ページ設定。
  • <%@ include %>: JSPファイルをインクルード。
  • <%@ taglib %>: カスタムタグライブラリの設定。
<%@ include file="header.jsp" %>

アクションタグ

JSPアクションタグは、JSP内でサーブレット機能を実行するためのタグです。

  • <jsp:include>: 他のJSPをインクルード。
  • <jsp:forward>: リクエストを別のJSP/サーブレットに転送。
<jsp:include page="footer.jsp" />

7. JSPとデータベース連携

JSPからデータベースに接続

JDBCを使用してデータベースと連携します。

<%@ page import="java.sql.*" %>
<%
String url = "jdbc:mysql://localhost:3306/testdb";
String user = "root";
String password = "password";

Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM users");

while (rs.next()) {
%>
<p><%= rs.getString("username") %></p>
<%
}
conn.close();
%>

8. JSPの注意点とベストプラクティス

  • ビジネスロジックの分離: JSPにはロジックを詰め込みすぎず、サーブレットやバックエンドで処理する。
  • MVCアーキテクチャ: JSPは「ビュー」、サーブレットは「コントローラー」として役割分担を行う。
  • セキュリティ対策: SQLインジェクション防止のため、プリペアドステートメントを使用する。

9. まとめ

JSPはJavaサーバーサイド開発における基本技術であり、サーブレットと組み合わせることで強力なWebアプリケーションを構築できます。HTMLとJavaをシームレスに統合することで、動的コンテンツを簡単に生成できるのがJSPの魅力です。


次のステップ
JSPやサーブレットの知識を深めたい方は、絶対にJavaプログラマーになりたい人へ を参考にしながら学習を進めてみてください。また、転職サポート付きで実践力を磨くなら、サイゼントアカデミー が最適です!

コメント

タイトルとURLをコピーしました