第1章: 事前準備

JSP開発環境の構築

この章で学ぶこと
  • JSP(JavaServer Pages)とは何か、その役割と重要性を理解する
  • Webアプリケーション開発におけるJSPの位置づけを把握する
  • JDK 21のインストールと設定方法を学ぶ
  • Apache Tomcatの設定とWebアプリケーション実行環境を構築する
  • 統合開発環境(IDE)の設定と効果的な使用方法を修得する
  • JSP Webアプリケーションの基本構造とディレクトリ構成を理解する

1.1 JSP(JavaServer Pages)とは

JSP(JavaServer Pages)は、動的なWebコンテンツを生成するためのJavaベースのサーバーサイド技術です。JSPを理解するためには、まずWebアプリケーションの基本的な仕組みから学んでいきましょう。

1.1.1 Webアプリケーションの基本概念

従来の静的なWebサイトは、HTMLファイルをそのままブラウザに送信するだけでした。しかし、現代のWebアプリケーションでは、ユーザーの要求に応じて動的にコンテンツを生成する必要があります。

flowchart LR A["ユーザー
(ブラウザ)"] -->|"HTTPリクエスト"| B["Webサーバー
(Apache Tomcat)"] B -->|"JSPファイル実行"| C["JSPエンジン"] C -->|"データベース
アクセス"| D[("データベース")] D -->|"データ取得"| C C -->|"動的HTML生成"| B B -->|"HTTPレスポンス
(HTML)"| A

1.1.2 JSPの特徴と利点

JSPは以下のような特徴を持つ技術です:

  • HTMLベース:従来のHTML知識を活用でき、学習コストが低い
  • Javaの機能活用:Javaの豊富なライブラリと機能を利用可能
  • サーバーサイド実行:処理がサーバー側で行われるため、セキュリティが高い
  • 動的コンテンツ生成:ユーザーやリクエストに応じた個別のコンテンツ表示
  • データベース連携:JDBCを通じてデータベースと効率的に連携

1.1.3 JSPの動作原理

JSPファイルは実行時に以下のプロセスを経て処理されます:

flowchart TD A["JSPファイル
(.jsp)"] -->|"1. 変換"| B["Javaサーブレット
(.java)"] B -->|"2. コンパイル"| C["バイトコード
(.class)"] C -->|"3. 実行"| D["HTML出力"] D --> E["クライアントへ送信"]

1.2 開発環境構築の重要性

JSP開発を行うためには、適切な開発環境の構築が不可欠です。開発環境は、効率的な開発作業とアプリケーションの品質向上に直結します。

1.2.1 必要なソフトウェア構成

JSP開発に必要な主要コンポーネント:

flowchart TB subgraph IDE["統合開発環境 (IDE)"] I1["Eclipse / IntelliJ IDEA"] I2["コード補完・デバッグ機能"] end subgraph JDK["Java開発キット"] J1["JDK 21 (推奨)"] J2["Javaコンパイラ・実行環境"] end subgraph SERVER["Webアプリケーションサーバー"] S1["Apache Tomcat 10.x"] S2["JSP・サーブレット実行環境"] end IDE --> JDK JDK --> SERVER

1.3 JDK 21のインストールと設定

JSP開発の基盤となるJava開発キット(JDK)をインストールします。JDK 21は2023年9月にリリースされた長期サポート(LTS)版で、安定した開発環境を提供します。

実習 1-1: JDK 21のインストール

この実習では、Oracle JDK 21をダウンロードしてインストールし、開発に必要な環境変数を設定します。

手順
  1. Oracle公式サイト(oracle.com/java)からJDK 21をダウンロード
  2. インストーラーを実行してJDK 21をインストール
  3. 環境変数JAVA_HOMEを設定(例:C:\Program Files\Java\jdk-21)
  4. Path環境変数にJDK binディレクトリを追加
  5. コマンドプロンプトでjava -versionコマンドを実行して確認
環境変数設定例(Windows)
# JAVA_HOME設定
JAVA_HOME = C:\Program Files\Java\jdk-21

# Path環境変数に追加
Path = %JAVA_HOME%\bin

# 確認コマンド
java -version
javac -version
期待される結果

コマンドを実行すると、以下のような出力が表示されます:

java version "21.0.x" 2023-09-19
Java(TM) SE Runtime Environment (build 21.0.x+xx-xxx)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.x+xx-xxx, mixed mode, sharing)

1.4 Apache Tomcatのセットアップ

Apache TomcatはJSPとサーブレットを実行するためのWebアプリケーションサーバーです。軽量で高性能、かつオープンソースで提供されているため、学習環境に最適です。

1.4.1 Tomcatの役割と特徴

Tomcatは以下の役割を担います:

  • サーブレットコンテナ:JSPファイルをJavaサーブレットに変換・実行
  • Webサーバー:HTTPリクエスト・レスポンスの処理
  • アプリケーション管理:Webアプリケーションのデプロイ・管理
  • セッション管理:ユーザーセッションの維持・管理
実習 1-2: Apache Tomcat 10.xのインストールと設定

Tomcatをダウンロードしてインストールし、JSP実行環境を構築します。

手順
  1. Apache Tomcat公式サイト(tomcat.apache.org)からTomcat 10.xをダウンロード
  2. ダウンロードしたファイルを適当な場所(例:C:\tomcat10)に展開
  3. 環境変数CATALINA_HOMEを設定
  4. startup.bat(Windows)またはstartup.sh(Linux/Mac)を実行
  5. ブラウザでhttp://localhost:8080にアクセスして動作確認
設定例
# 環境変数設定(Windows)
CATALINA_HOME = C:\tomcat10

# Tomcat起動(Windows)
cd C:\tomcat10\bin
startup.bat

# Tomcat停止(Windows)
shutdown.bat
期待される結果

ブラウザでlocalhost:8080にアクセスすると、Tomcatの初期画面が表示されます。この画面が表示されれば、Tomcatが正常に動作していることを意味します。

1.5 統合開発環境(IDE)の設定

効率的なJSP開発のためには、適切なIDEの選択と設定が重要です。ここではEclipseとIntelliJ IDEAの両方について説明します。

1.5.1 Eclipse IDE for Enterprise Java Developersの設定

EclipseはオープンソースのIDEで、Java開発に特化した豊富な機能を提供します。

実習 1-3: Eclipse環境の設定

Eclipse IDEをインストールし、JSP開発に必要な設定を行います。

手順
  1. Eclipse公式サイトからEclipse IDE for Enterprise Java Developersをダウンロード
  2. Eclipseをインストールして起動
  3. Window → Preferences → Java → Installed JREsでJDK 21を設定
  4. Window → Preferences → Server → Runtime EnvironmentsでTomcat 10を追加
  5. 新規プロジェクト作成(File → New → Dynamic Web Project)
プロジェクト設定例
# プロジェクト構造
MyWebApp/
├── src/
│   └── main/
│       ├── java/          # Javaソースコード
│       └── webapp/        # Web関連リソース
│           ├── WEB-INF/
│           │   └── web.xml
│           └── index.jsp
└── pom.xml               # Maven設定(使用時)
期待される結果

プロジェクト作成後、Package Explorerに新しいWebプロジェクトが表示され、JSPファイルの作成・編集が可能になります。

1.6 Webアプリケーションの基本構造

JSP Webアプリケーションは、特定のディレクトリ構造に従って構成されます。この構造を理解することで、効率的な開発が可能になります。

1.6.1 標準的なディレクトリ構造

Java EE仕様に準拠したWebアプリケーションの構造:

flowchart TD A["WebApp Root"] --> B["WEB-INF/"] A --> C["JSPファイル
(*.jsp)"] A --> D["静的リソース
(CSS, JS, 画像)"] B --> E["web.xml
(デプロイメント記述子)"] B --> F["classes/
(コンパイル済みクラス)"] B --> G["lib/
(JARライブラリ)"] B --> H["tags/
(カスタムタグ)"]
実習 1-4: 最初のJSPアプリケーション作成

基本的なディレクトリ構造を持つJSPアプリケーションを作成し、Tomcatで実行します。

手順
  1. Tomcatのwebappsディレクトリに新しいフォルダ「myfirstapp」を作成
  2. myfirstapp内にWEB-INFフォルダを作成
  3. WEB-INF内にweb.xmlファイルを作成
  4. myfirstapp直下にindex.jspファイルを作成
  5. Tomcatを再起動してhttp://localhost:8080/myfirstapp/にアクセス
web.xml の基本設定
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee
         https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
         version="5.0">
    
    <display-name>My First JSP App</display-name>
    
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>
index.jsp の基本コード
<%@ page contentType="text/html; charset=UTF-8" %>
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>初めてのJSPアプリケーション</title>
</head>
<body>
    <h1>JSP学習へようこそ!</h1>
    <p>現在の時刻: <%= new java.util.Date() %></p>
    <p>このページはJSPによって動的に生成されています。</p>
</body>
</html>
期待される結果

ブラウザにアクセスすると、タイトルと現在時刻が表示されたページが表示されます。ページを更新するたびに時刻が更新されることで、動的コンテンツ生成を確認できます。

1.7 よくある問題と解決方法

開発環境構築時によく発生する問題と、その解決方法を説明します。

よくあるエラーと対処法
1. java コマンドが認識されない

原因:環境変数PATHにJDKのbinディレクトリが含まれていない

解決方法:JAVA_HOMEとPATH変数を正しく設定する

2. Tomcatが起動しない

原因:ポート8080が他のプロセスによって使用されている

解決方法:server.xmlでポート番号を変更するか、競合プロセスを停止

3. JSPファイルが表示されない

原因:ディレクトリ構造が不正、またはweb.xmlの設定ミス

解決方法:正しいディレクトリ構造を確認し、web.xmlの構文をチェック

理解度確認クイズ
  1. JSPとは何の略称で、どのような用途に使用される技術か説明してください。
  2. JSPファイルが実行される際の3つの処理段階を順番に説明してください。
  3. Apache Tomcatの主な役割を3つ挙げてください。
  4. JSP Webアプリケーションの標準ディレクトリ構造において、WEB-INFフォルダ内に配置される主要なファイルとフォルダを説明してください。
  5. 開発環境でJavaコマンドが認識されない場合の一般的な原因と解決方法を説明してください。
解答例
  1. JSP(JavaServer Pages)は、動的なWebコンテンツを生成するためのJavaベースのサーバーサイド技術で、HTMLにJavaコードを埋め込んでデータベースやユーザー入力に応じたWebページを作成するために使用されます。
  2. ①JSPファイルをJavaサーブレットコードに変換、②Javaサーブレットコードをバイトコードにコンパイル、③バイトコードを実行してHTML出力を生成
  3. ①サーブレットコンテナとしてJSPの実行、②WebサーバーとしてHTTPリクエスト・レスポンスの処理、③Webアプリケーションのデプロイメント・管理
  4. web.xml(デプロイメント記述子)、classesフォルダ(コンパイル済みクラスファイル)、libフォルダ(JARライブラリ)、tagsフォルダ(カスタムタグファイル)
  5. 環境変数PATHにJDKのbinディレクトリが含まれていないことが原因。JAVA_HOMEを正しく設定し、PATH変数に%JAVA_HOME%\binを追加することで解決できます。

1.8 まとめ

この章では、JSP開発に必要な基本的な開発環境の構築方法を学習しました。

  • JSPの概念理解:サーバーサイドで動作する動的Webコンテンツ生成技術
  • 開発環境構築:JDK 21、Apache Tomcat、IDEの設定
  • 基本構造理解:Webアプリケーションの標準ディレクトリ構成
  • 動作確認:最初のJSPアプリケーションの作成と実行

次章では、構築した環境を使用してJSPの基本的な構文と動作原理について詳しく学習していきます。