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 %>

TomcatでつくるWebアプリ