Javaに関する様々な情報をご紹介します。

2ディレクティブ

Javaに関する様々な情報をご紹介します。

ディレクティブ

このページでは、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ディレクティブ