3.
JSPの基本
JSPとは
JSPとは
JSP(Java Server Page)は、HTMLファイルにJavaのコードを埋め込んだファイルです。HTMLに変数表示や繰り返しなどのプログラム記述することで、HTMLを動的に出力できます。
JSPファイルの例
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String title = "Hello";
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%= title %>
</body>
</html>
JSPとサーブレット
JSPファイルは拡張子「.jsp」で、コンテキストディレクトリに配置します。

JSPはJavaファイル
JSPファイルにリクエストすると、Javaサーブレットファイルに自動変換(ページ変換) されます。Javaサーブレットファイルは、最終的にクラスファイル(.class)にコンパイルされるので、JSPの実態はJavaファイルです。

JSPファイルの作成
「ファイル > 新規 > その他...」を選択します。
新規ファイルのショートカットキー
OS | ショートカットキー |
---|---|
Mac | Cmd + N |
Windows | Ctrl + N |
JSPファイルのフィルタリング
ウィザード欄で「jsp」で検索して「JSPファイル」に絞り込み、「JSPファイル」を選択して【次へ】をクリックします。
コンテンツフォルダ「WebContent」フォルダを選択して、ファイル名「hello.jsp」として【完了】をクリックします。
「WebContent」フォルダに「hello.jsp」ファイルが作成されました。
JSPにHTMLの追記
JSPファイルのbodyタグにHTMLを追記してみましょう。
hellojsp
...
<body>
<h2>Hello</h2>
<p>このHTMLはJSPファイルで作成しています。</p>
</body>
...
ブラウザで確認
「http://localhost:8080/SampleJSP/hello.jsp」にアクセスして、HTMLが表示されるか確認してみましょう。

JSPタグ
Javaコードの記述
JSPタグはJSPファイルの中でJavaのコードを実行できるタグで、<% %> で処理を記述します。
<% 処理 %>
変数の表示
変数の表示は、<%= %> で記述します。
<%= 変数 %>
JSPディレクティブ
JSPディレクティブは、JSPページ情報をWebコンテナに指示する設定で、<%@ %> で値を記述します。
<%@ ディレクティブ名 プロパティ1=値1, プロパティ2=値2 ... %>
ディレクティブの種類
ディレクティブにはいくつか種類があります。
ディレクティブ | 説明 |
---|---|
page | ページ情報を定義 |
include | JSPから外部ファイルを読み込む |
taglib | JSPタグライブラリを読み込む |
ページディレクティブ
EclipseでJSPファイルを作成すると自動的にページディレクティブが挿入されています。ページディレクティブはJSPページ全体の定義でき、@ pageでプロパティと値を設定します。
<%@ page プロパティ1=値1, プロパティ2=値2 ... %>
文字コードの指定
JSPファイルで自動生成されたページディレクティブです。ページディレクティブでは日本後が文字化けしないように文字コードの設定が必要で、基本は「UTF-8」に設定します。
hello.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
ページディレクティブのプロパティ
プロパティ | 説明 | 値 | 説明 |
---|---|---|---|
contentType | ファイルの種類(MIME) | text/html | HTMLファイル |
charset | ヘッダーの文字コード | UTF-8 | UTF-8 |
pageEncoding | JSPファイルの文字コード | UTF-8 | UTF-8 |
JSPタグを使う
JSPファイルで変数を定義して、HTMLで表示してみましょう。
変数の定義
変数の定義は、JSPタグの中で記述します。
hello.jsp
...
<%
String title = "こんにちは";
String message = "JSPタグで処理しました";
int price = 350;
int amount = 3;
int totalPrice = price * amount;
%>
<!DOCTYPE html>
...
変数の表示
HTMLの文字を、JSPタグを使って変数で表示します。
hello.jsp
...
<body>
<h2><%= title %></h2>
<p><%= message %></p>
<h2>合計金額</h2>
<p><%= totalPrice %>円</p>
</body>
...
結果
Javaプログラムを処理して、HTMLを表示できました。

演習
問題1
HTMLファイルにJavaのコードを埋め込んだファイルを何といいますか?
1)Servletファイル
2)JSPファイル
3)クラスファイル
4)HTMLファイル
問題2
JSPファイルで変数を表示するコードで正しいのはどれですか?
1)
<% String message = "Hello"; %>
<% message %>
2)
<%= String message = "Hello"; %>
<%= message %>
3)
<% String message = "Hello"; %>
<%= message %>
4)
<%@ String message = "Hello"; %>
<%@ message %>