第3回 JSPを理解する最短コースを試そう
この連載は、Javaを利用したWebアプリケーションの開発に必要な知識を、ツールを用いて手軽に自分の手を動かしながら覚えていただくことを目的としています。ツールを使うと面倒な設定をすることなく、自分でアプリケーションを試してみることができます。いままでサーブレットのが難しいと感じていた方も、この記事を読んで自分で試すことで、本格的な学習の良いきっかけをつかんでください。(編集局) |
ボーランド
新井正広
2004/6/19
前回「第2回 サーブレットアプリケーションを実行しよう」は、Javaを利用したWebアプリケーションの最も簡単な例として、サーブレットを使ったアプリケーションの作成例をご紹介しました。今回からは、簡単なサンプルを作りながらJSP(JavaServer Pages)について学習します(JSPの詳しい説明は、連載:Tomcatを使う「JSPプログラミング」を参考にしてください)。
前回学習したように、サーブレットはHTMLコンテンツ(文字列)を生成するJavaクラスです。これに対し、JSPでは、HTMLの中に必要に応じてJavaコードを入力することができます。
今回以降作成するサンプルは、以下の3つです。
第3回 (今回) |
HTMLの中にJavaコードを含める書き方(5行1列の表を
for 文で作成する) |
第4回 | 第2回に作成した「○○さん、こんにちは」というサーブレットのJSP版 |
第5回 | サーブレットとJSPを組み合わせたログインページ |
今回のサンプルでは、JSPの基本的な説明に加え、その基本的な扱い方として、HTMLの中にJavaコードを含める最も簡単な例を示します。第4回のサンプルでは、文字列を受け取ってその結果を表示する方法を示します。最後の第5回では、ちょっと高度ですが、ここまでで紹介した2つの技術を組み合わせてログイン機能を作成してみましょう。
本連載では「開発作業を支援するツール」として、Borland
JBuilder Xトライアル版を利用します。製品をインストールするだけで、アプリケーションの開発に必要なすべてのコンポーネントが自動的にインストール/設定されます。そのため、追加で何らかの作業を行うことなく、Webアプリケーションを試すことができます。
Borland JBuilder Xトライアル版の入手はボーランドのWebサイトから申し込みが可能です。ここでトライアル版CD-ROMを申し込むと、無償でCD-ROMが郵送されてきますので、インストールガイドに従ってインストールしてください。 |
|
5行1列の表を表示するJSPを作成する |
最初のサンプルは、5行1列の表を表示するものです。ブラウザ画面上でのイメージは画面1のようになります。
画面1 作成するサンプルJSPアプリケーション(5行1列の表)を実行したところ |
また、ブラウザに送信されるHTML文字列はリスト1のようになります。
リスト1 作成するHTML(青色の部分が繰り返し処理にできる) |
<html> |
この表は、静的なHTMLだけでも表現できますが、ここではfor文を利用して繰り返しを実装します。
|
JSP (JavaServer Pages) とは |
前回学習したように、サーブレットはHTMLコンテンツ(文字列)を生成するJavaクラスです。これに対し、JSPでは、HTMLの中に必要に応じてJavaコードを入力することができます。リスト1の水色の部分をfor文で表現する場合、サーブレットとJSPでは、それぞれ以下のようなコードが利用できます。
リスト2 サーブレットを使用して表を作成する場合のコード(Javaコード内にHTML文字列が含まれる) |
public void doGet(HttpServletRequest request, |
リスト3 JSPを使用して表を作成する場合のコード(HTML内にJavaコードが含まれる) |
<%@ page contentType="text/html; charset=Shift_JIS" %> |
|
JSPタグの種類 |
JSPには、通常のHTMLでは見られないいくつかの特殊なコードが見られます。このサンプルでは、3種類あるので、それぞれ確認してみましょう。
ディレクティブ |
<%@ page contentType="text/html;
charset=Shift_JIS" %> |
<%@ XXXXXX %> という表記を利用することによって、JSPを処理するWebコンテナへの指示を記述できます。ここでは、作成するJSPページが
contentTypeがHTMLであり日本語Shift JISを使用することをWebコンテナに指示されています。
スクリプトレット |
<% |
および、
<% |
JSPでは、<% %> という特殊なタグの中に任意のJavaコードを挿入することが可能です。ここでは、for文を利用して、5回の繰り返し処理を定義しています。
式 |
<%= i %> |
任意の式を評価した結果を文字列として HTML 中に挿入するときは、その式を <%= %> で囲みます。このサンプルの場合は、for 文で使用する変数 i の内容が文字列として出力されます。
このような要素を含んだJSPページは、実行時にはサーブレットに変換され、サーブレットと同じように振る舞います。サーブレットとの違いは、これらの作業はTomcatなどのWebコンテナで自動的に実行されることだといえるでしょう。具体的には、Webコンテナは、図1のようにJSPファイルを処理します。JSPは、自動的にサーブレットに変換されて、クラスファイルにコンパイルされた後、実行されます。
図1 JSPが実行される順序 |
これらの作業は、少し時間がかかりますが、2度目以降のアクセスに対しては、サーブレットと同じように動作しますので、パフォーマンス上の心配をする必要はありません。
訂正のお知らせ 読者からの「表が表示されない」、という貴重なご指摘によりリスト1〜3において、TABLEタグに「border="1"」を追加させていただきました。 内容について正確を期せなかった点、読者の皆様にお詫び申し上げます。 |
1/2 |
INDEX |
||
第3回 JSPを理解する最短コースを試そう | ||
Page1 5行1列の表を表示するJSPを作成する JSPとは JSPタグの種類 |
||
Page2 JSPの作成 Webアプリケーションのデバッグ |
「ツールでトライ!初めてのWebアプリケーション」記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|