目次へ

4. ディレクティブ

4.1. ディレクティブとは

1.3節の繰り返しになりますが、ディレクティブとはコンテナに対して、JSPページをどのように処理するか指示をするものです。この章では以下の3つのディレクティブについて説明します。

  • page
  • taglib
  • include

ディレクティブは基本的に

<%@ (ディレクティブ名) ... %>

の形式で囲んで定義します。以下のような形式で定義しても構いません。

<jsp:directive.(ディレクティブ名) ... />

4.2. pageディレクティブ

pageディレクティブは、主にJSPページの出力関係の制御を行います。指定できる属性は以下の通りです。

autoFlush 自動的に出力バッファをフラッシュします。「true」「false」で指定し、デフォルト値は「true」です。
buffer

JSPページの出力の際に使用するバッファのサイズを指定します。KB単位で指定し、「none」を指定するとバッファリングを行いません。

<%@ page buffer="16KB" %>
contentType 出力データのMIMEタイプを指定します。デフォルトは「text/html; charset=8859_1」です。「charset」で指定した文字コードで出力されるようになります。
errorPage

JSPページ内で捕捉できなかった例外を処理させるページを相対パスで指定します。処理させるページがJSPの場合には「isErrorPage」属性を「true」に設定する必要があります。

<%@ page errorPage="error.jsp" %>
extends JSPページの規定クラスを指定します。デフォルトは、「javax.servlet.jsp.HttpJspPage」です。他のものを指定する場合は、パッケージ名を含めたクラス名を指定する必要があります。
import

JSPページでインポートするクラスを指定します。複数インポートする場合には「,」で区切ります。

<%@ page import="java.util.*, java.sql.*" %>
info JSPページの情報をセットします。この値は、「javax.servlet.Servlet」の「getServletInfo」で返される値になります。
isErrorPage JSPページがエラー処理用のページである場合に、「true」に設定します。暗黙オブジェクト「exception」が使用可能になります。
isThreadSafe スレッドモードを「true」「false」で指定します。「false」に指定すると「javax.servlet.SingleThreadModel」が使用されます。「SingleThreadModel」を使用すると1スレッド1インスタンスになりますが、共有資源の競合問題が発生します。
language JSPページで使用する言語を指定します。JSP1.2の時点で「java」以外ありません。
session セッションを有効にするか無効にするか指定します。デフォルトは「true」です。「true」にすると暗黙オブジェクト「session」が使用可能になります。

頻繁に使用する属性は「contentType」「import」「session」の3つです。この3つを覚えておくと良いでしょう。

(実習課題1)

以下のJSPページを作成し、どのようなエラーが出るか確かめなさい。

  • 「autoFlush」属性で「false」を指定し、「buffer」属性で「none」を指定する。

解答例はこちら

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp