はじめに
Webアプリケーション開発において、JSP(JavaServer Pages) は動的なWebページを作成するための基本技術です。Javaサーブレットと同様にサーバーサイド技術ですが、JSPはHTMLとJavaコードを組み合わせて、効率的に動的なコンテンツを生成できます。
この記事では、JSPの基本概念から使い方、簡単なサンプルコード、そして実際の開発の流れを 初心者向け に分かりやすく解説します。
1. JSPとは何か?
JSP(JavaServer Pages) とは、HTMLベースのファイル内にJavaコードを埋め込んで動的にWebページを生成する技術です。サーバーサイドで動作し、Servlet技術を基盤として動いています。
JSPの特徴
- HTMLとJavaの融合:HTMLにJavaのコードを直接埋め込める。
- サーブレットの簡略化:複雑なHTML出力をシンプルに記述可能。
- 動的ページ生成:データベース連携やユーザー入力に応じたページ生成。
- 再利用性:カスタムタグやJSPファイルのインクルードにより効率化。
2. JSPを使うための準備
必要な環境
- JDK(Java Development Kit):Java 8以上を推奨。
- 統合開発環境(IDE):EclipseやIntelliJ IDEAなど。
- Apache Tomcat:JSPとServletを実行するためのWebサーバー。
開発環境のセットアップ
- JDKインストール:bashコードをコピーする
java -version - Apache Tomcatインストール: Tomcat公式サイトからダウンロードし、設定します。
- 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>
コードの解説
<%@ page %>: JSPページの設定を行うディレクティブ。- HTMLタグ: 通常のHTMLを記述。
<%= %>: 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>
実行手順
- URLマッピングをサーブレットに設定(web.xml または
@WebServlet)。 - サーブレットを実行 → 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プログラマーになりたい人へ を参考にしながら学習を進めてみてください。また、転職サポート付きで実践力を磨くなら、サイゼントアカデミー が最適です!


コメント