ディレクティブ
このページでは、JSPのディレクティブの内、pageディレクティブとincludeディレクティブについて解説します。この他、taglibディレクティブも定義されていますが、taglibディレクティブに関しては解説要素が多いことから他のページにて解説します。
pageディレクティブ
pageディレクティブでは、エンコード方式、クラスのインポート、セッション管理などJSPプログラム全体の動作に関する定義を行います。
<@ page 属性名="属性値", 属性名="属性値", ・・・ %>
pageディレクティブの属性
属性名 | 説明 | デフォルト |
---|---|---|
import | JSPプログラムでインポートするクラス、パッケージを指定します。唯一、値を複数設定できる属性です。 | java.lang.* javax.servlet.* javax.servlet.jsp.* javax.servlet.http.* |
contentType | JSPプログラムのレスポンスの際のMIMEタイプと、文字エンコード方式を指定します。指定できるMIMEタイプはIANAのMIME Media Typeを参照してください。指定できる文字エンコード方式はIANAのCHARACTER SETSを参照してください。 | text/html; charset=ISO-8859-1 |
pageEncoding | JSPプログラムをServletプログラムに変換する際の文字エンコード方式を指定します。指定できる文字エンコード方式はIANAのCHARACTER SETSを参照してください。 | ISO-8859-1 |
session | HTTPセッションを使用するかを指定します。HTTPセッションを使用しない場合は、負荷を考慮しfalseに設定します。 trueに設定した場合は暗黙オブジェクトのsessionが利用できます。 | true |
buffer | クライアントに送信するデータをバッファする際に、そのバッファの容量を指定します。容量はkbで指定します。デフォルトのサイズは8kbです。バッファしない場合はnoneを指定します。 | - |
autoFlush | バッファにデータがたまった時に自動的にクライアントにデータを送信するかを指定します。 | true |
extends | JSPプログラムの基本となるクラスを指定します。多くの場合、「javax.servlet.jsp.HttpJspPage」が指定されています。 | - |
errorPage | JSPプログラム内でキャッチできなかった例外を処理するページを指定します。 | null |
isErrorPage | 例外を処理するページがJSPプログラムの場合、trueを指定する必要があります。HTMLの場合は、trueを指定する必要はありません。 | false |
isELIgnored | JSP2.0から利用できるようになった式言語(EL)を適用するかを指定します。trueの場合は適用しません。falseを設定すると式言語(EL)を適用します。 | - |
isThreadSafe | スレッドモードを指定します。trueを指定すると1つのオブジェクトに対し、複数のスレッドを同時に処理します。この場合、スレッドの排他制御が行われず予期せぬ処理が行われる場合があります。 | true |
info | JSPプログラムの情報を指定します。指定した値をgetServletInfoメソッドで取得できます。 | - |
language | JSPプログラムで使用する言語を指定します。JSP2.0で適宜されている言語はjavaのみです。 | java |
【使用例1】MIMEタイプに"text/html"、エンコード方式に"Windows-31J"、バッファを"16kバイト"、autoFlushを"true"に設定した例です。
<%@ page contentType="text/html; charset=Windows-31J"
pageEncoding="Windows-31J"
buffer="16kb"
autoFlush="true" %>
【使用例2】インポートするパッケージに"java.util.*, java.io.*"を指定した例です。import属性は値を複数指定できます。
<%@ page import="java.util.*, java.io.*" %>
【使用例3】pageディレクティブをimport属性ごとに分けて指定した例です。
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
includeディレクティブ
テキストファイル、JSPファイルなど外部ファイルをインクルードするときに使用します。共通の機能を外部ファイルに記述しておき、複数のファイルからインクルードするといった使い方をします。
よく似た機能に<jsp:include>タグがあります。違いはincludeディレクティブがコンパイルされるときに外部ファイルをインクルードするのに対し、<jsp:include>タグはクライアントからリクエストがあったときに外部ファイルをインクルードします。そのため、条件処理によりインクルードするファイルを変えたい場合などは<jsp:include>タグを使用します。
また、もう一つの違いとしてincludeディレクティブでは外部ファイル内で、参照元ファイル(includeディレクティブが記載されたファイル)で宣言された変数、メソッドを参照できるのに対して、<jsp:include>では外部ファイル内で、参照元ファイル(<jsp:include>が記載されたファイル)で宣言された変数、メソッドを参照できないというのがありjます。
<@ include file="属性値" %>
pageディレクティブの属性
属性名 | 説明 | デフォルト |
---|---|---|
file | インクルードする外部ファイルをコンテキストルートからの相対パスで指定します。 | - |
【使用例1】param.jspファイルをインクルードした例です。
<%@ include file="param.jsp" %>
2ディレクティブ