初めてのJSP

本章のプログラムを御覧の際には、Tomcatが必要です。
こちらからダウンロード出来ます。

ファイルはzipフォルダに納められています。
解凍ソフト(Aladdin Expander等)を使って解凍して下さい。

ページの犠牲

初めに、此のページの犠牲を指定します。
JSPでは、属性を指定するタグは以下の様に書きます。

<%@ page 属性名 = "属性"%>

属性名は、下の表の中から必要な物を指定します。
複数の属性を指定したい時には、並べて書けます。

ページの属性名一覧

属性名 説明
language 何時も「 = "Java"」と書く language = "Java"
extends サーブレットの「extends」 殆ど不使用
import ページの中で利用しているクラスが所属
パッケージを指定
サーブレットのimport
importしたいパッケージが複数有る時は、「,」で区切って並べる
以下のパッケージは指定が無くてもimport
Java.lang.*・javax.servlet.*・javax.servlet.http.*・javax.servlet.jsp.*
import = "Java.util.*・Java.text.*"
session 「true」の時session管理するが、「false」の時はsessionを作らない
デフォルトは「true」
session = "true"
buffer HTMLをクライアントを送信する際のバッファサイズをキロバイト単位で指定
デフォルトは「8KB」
buffer = "8KB"
autoFlush 「true」の時、バッファを自動的にフラッシュ
指定が無ければ「true」
autoFlush = "true"
isThreadSafe 「true」の時はマルチスレッドにし、「false」の時は「SingleThreadmodel」に
デフォルトは「true」
isThreadSafe = "true"
info 此のJSPページに関する情報(作成日や制作者等)を記録
他のページから「getServletinfo()」で読み出す文字列を指定
info = "ore_ga_tukutta"
errorPage エラー発生時に表示するページを指定 errorPage = "err.html"
contentType HTTPヘッダの「ContentType」を設定
サーブレットの「setContentType」
contentType = "text/html;charset = Shift_JIS"
isErrorPage 「true」である時、此のページがエラー発生時に呼び出されるページである事を示す isErrorPage = "true"
例: <% page language = "Java" contentType = "text/html;charset = Shift_JIS" %>

HTMLの記述

通常のHTMLは、其の侭記述します。

JSP内にJavaの構文を書く

JSP内にJavaの構文を埋め込むには、以下のタグで囲みます。

<% Javaの構文 %>

文の途中でも、Javaの命令の部分だけ此のタグで囲みます。
此のタグで囲まれた中には、Javaの命令を何でも書けます。

例: <% for(int i = 0;i < 3;i++){ %>
今晩は<BR> //「今晩は」を3回表示
<% } %>

変数の内容をHTMLとしてクライアントに送信

通常の決まった文字(上の例「今晩は」の様に)で有れば其の侭書きますが変数の内容をHTMLとしてクライアントに送信するには、以下のタグで囲みます。

<% = 送信したい内容 %>

上記のタグは、変数の内容やメソッドを実行した結果等を送信したい時に使います。

例: <% = text %>

「<%」と「%>」タグと組み合わせる事で、配列の内容を1つずつ送信出来ます。

例: <% for(int i = 0;i < kamoku.length;i++){ %>
<% = kamoku[i]+" " %>
<% } %>

クラス変数の宣言

「<%」と「%>」タグの中で、変数の宣言を行うと、ローカル変数として宣言されます。
クラス変数を宣言したい時には、以下のタグを使います。

<%! クラス変数の宣言 %>

クラス変数は、スレッドが終了しても継続して使えますが、其の反面、複数のスレッドが同時に起動されていてもクラス変数自体は1つしか存在しないので、取り扱いには注意が必要です。

例: <%! int total = 0; %>

上記の「total」は、JSPがロードされている間、最初の1回しか初期化されない為、合計値を求めようとすると履歴の全てを累積して計算されて終います。

HTMLのコメント文

HTMLにもコメントを沢山入れておきましょう。
HTMLでは、以下のタグで囲まれた部分は、無視されます。

<!-- -->

此のタグは、HTMLのタグです。
従って、此のタグで囲まれた部分はブラウザでは非表示ですが、ソースで見られる状態でクライアントに送信されます。

JSPのコメント文

JSPにもコメントを沢山入れておきましょう。
「<%」と「%>」で囲まれた部分はJavaなので、Javaのコメント記述用の「/*」「*/」と「//」記号が其の侭使えます。
其の他に、下記のタグがJSPのコメント文となり、クライアントにも送信されません。

<%-- コメント文 --%>

暗黙のオブジェクト

JSPでは、宣言せずに使える暗黙のオブジェクト名が用意されています。
以下に一覧表を示します。

ページの属性名一覧

暗黙のオブジェクト 変換後のクラス 説明
request ServletRequest サーブレットの「doGet」や「doPost」の1つ目の引数
クライアントからの要求情報を保持
<% request.getParameter(・・・); %>
response ServletResponse サーブレットの「doGet」や「doPost」の2つ目の引数
クライアントからの応答情報を保持
<% response.getWriter(); %>
pageContext PageContext PageContextクラスは、サーブレットで持っているセッションやオブジェクトの情報を管理するクラス
JSP内では、余り使われない
session HttpSession HttpSessionは、セッション情報を保持するクラス
<% session.getAttribute(); %>
application ServletContext ServletContextクラスは、サーブレットの環境情報を保持しているクラスで、APIのバージョンやファイルが実際に置かれているパス名等を取り出せるが、JSP内では、余り使われない
out JSPWriter クライアントに対する文字列の出力先
<% out.print(text); %>
config ServletConfig ServletConfigクラスは、サーブレットの設定情報を保持しているクラス
JSP内では、余り使われない
page Object サーブレットの「this」と同じ
exception Throwable 「Throwable」は、エラー情報を保持するクラス
ソース ダウンロード
helloJSP.jsp HelloJSP.zip
postServlet.jsp

戻る