はじめに
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の設定:
- 新しい「Dynamic Web Project」を作成。
- Apache Tomcatをサーバーに追加。
3. JSPの基本構文
JSPファイルの拡張子は .jsp
です。HTMLとJavaコードが組み合わさることで動的なページを作成できます。
JSPの基本構文
1 |
<%@ page contentType="text/html" %><br><html><br><head><br> <title>JSP 入門</title><br></head><br><body><br> <h1>こんにちは、JSP!</h1><br> <p>現在時刻: <%= new java.util.Date() %></p><br></body><br></html><br> |
コードの解説
<%@ page %>
: JSPページの設定を行うディレクティブ。contentType
はレスポンスの形式(例: HTML)。
- HTMLタグ: 通常のHTMLを記述。
<%= %>
: Javaコードを評価して出力するスクリプトレット。
4. JSPの基本要素
4.1 スクリプトレット
Javaコードを記述するための領域です。<% %>
の中にJavaコードを書きます。
1 |
<%<br> int sum = 0;<br> for (int i = 1; i <= 10; i++) {<br> sum += i;<br> }<br>%><br><p>1から10の合計: <%= sum %></p><br> |
4.2 式(Expression)
Javaの変数やメソッドを出力する場合は <%= %>
を使用します。
1 |
<p>今日の日付: <%= new java.util.Date() %></p><br> |
4.3 宣言(Declaration)
JSPファイル内でメソッドや変数を宣言する際は <%! %>
を使用します。
1 |
<%! <br> int add(int a, int b) {<br> return a + b;<br> }<br>%><br><p>1 + 2 = <%= add(1, 2) %></p><br> |
4.4 コメント
JSPにはHTMLコメントとJavaコメントがあります。
- HTMLコメント:
<!-- -->
(ブラウザ側に表示される) - JSPコメント:
<%-- --%>
(サーバー側のみ)
1 |
<!-- HTMLコメント --><br><%-- JSPコメント --%><br> |
5. JSPとサーブレットの連携
JSP単体でも動的なページを生成できますが、サーブレットと連携することでさらに強力なアプリケーションを構築できます。
サンプル: サーブレットからJSPへデータを渡す
サーブレットコード
1 |
import java.io.*;<br>import javax.servlet.*;<br>import javax.servlet.http.*;<br><br>public class WelcomeServlet extends HttpServlet {<br> protected void doGet(HttpServletRequest request, HttpServletResponse response)<br> throws ServletException, IOException {<br> request.setAttribute("message", "サーブレットからJSPへデータを渡します!");<br> RequestDispatcher dispatcher = request.getRequestDispatcher("welcome.jsp");<br> dispatcher.forward(request, response);<br> }<br>}<br> |
JSPコード(welcome.jsp)
1 |
<html><br><body><br> <h1>サーブレットとJSPの連携</h1><br> <p><%= request.getAttribute("message") %></p><br></body><br></html><br> |
実行手順
- URLマッピングをサーブレットに設定(web.xml または
@WebServlet
)。 - サーブレットを実行 → JSPにデータが表示される。
6. JSPのディレクティブとアクションタグ
ディレクティブ
ディレクティブはJSPファイルの設定やコンパイル時の情報を指定します。
<%@ page %>
: ページ設定。<%@ include %>
: JSPファイルをインクルード。<%@ taglib %>
: カスタムタグライブラリの設定。
1 |
<%@ include file="header.jsp" %><br> |
アクションタグ
JSPアクションタグは、JSP内でサーブレット機能を実行するためのタグです。
<jsp:include>
: 他のJSPをインクルード。<jsp:forward>
: リクエストを別のJSP/サーブレットに転送。
1 |
<jsp:include page="footer.jsp" /><br> |
7. JSPとデータベース連携
JSPからデータベースに接続
JDBCを使用してデータベースと連携します。
1 |
<%@ page import="java.sql.*" %><br><%<br> String url = "jdbc:mysql://localhost:3306/testdb";<br> String user = "root";<br> String password = "password";<br><br> Connection conn = DriverManager.getConnection(url, user, password);<br> Statement stmt = conn.createStatement();<br> ResultSet rs = stmt.executeQuery("SELECT * FROM users");<br><br> while (rs.next()) {<br>%><br> <p><%= rs.getString("username") %></p><br><%<br> }<br> conn.close();<br>%><br> |
8. JSPの注意点とベストプラクティス
- ビジネスロジックの分離: JSPにはロジックを詰め込みすぎず、サーブレットやバックエンドで処理する。
- MVCアーキテクチャ: JSPは「ビュー」、サーブレットは「コントローラー」として役割分担を行う。
- セキュリティ対策: SQLインジェクション防止のため、プリペアドステートメントを使用する。
9. まとめ
JSPはJavaサーバーサイド開発における基本技術であり、サーブレットと組み合わせることで強力なWebアプリケーションを構築できます。HTMLとJavaをシームレスに統合することで、動的コンテンツを簡単に生成できるのがJSPの魅力です。
次のステップ
JSPやサーブレットの知識を深めたい方は、絶対にJavaプログラマーになりたい人へ を参考にしながら学習を進めてみてください。また、転職サポート付きで実践力を磨くなら、サイゼントアカデミー が最適です!
コメント