―Servlet/JSPリファレンス―

@ITハイブックス編
2003/11/13
Javaプログラミング
ワンポイントレクチャーについて

  pageディレクティブタグの活用


本記事は、@ITハイブックスシリーズ『サン・マイクロシステムズ技術者認定試験「J2EEラーニングブック Web Component Developer for J2EE Platform編」』(技術評論社)から、許可を得て一部を転載したものです。同書籍に関する詳しい情報については、本記事の最後に掲載しています。
   ワンポイントQuestion

 定義済み(暗黙)オブジェクトであるexceptionオブジェクトを利用するためには、pageディレクティブでどの属性をtrueにする必要がありますか?(単一選択)

A session
B throwable
C isThreadSafe
D errorPage
E isErrorPage

   解説

 「pageディレクティブタグとは」で解説していないpageディレクティブタブの属性、errorPage属性からpageEncoding属性を解説します。

●errorPage属性

 JSPファイルにアクセスした場合、いくつもの例外が発生する可能性があります。その中で、対応していない例外が発生したときに、指定したエラーページに転送することができます。

<%@ page errorPage="/errorpage.jsp" %>

 このerrorPage属性を持つpageディレクティブタグは、JSPファイルの始めに入れてください。autoFlash属性が“true”でバッファがフラッシュされると、その後ではエラーページに転送することができません。また、buffer属性が“none”の場合に、例外が発生する前にJSPの出力があると、エラーページに転送することができません。

●isErrorPage属性

 このJSPファイルが、別のJSPファイルのpageディレクティブタグのerrorPage属性で指定されているエラーページかどうか示します。デフォルトは、falseです。

 trueの場合、そのエラーページとなり、定義済みオブジェクトのexceptionオブジェクトを利用することができ、これはエラーの発生したJSPファイルからのThrowableオブジェクトの参照になります。falseの場合、定義済みオブジェクトのexceptionオブジェクトを利用することはできません。

 以下は、errorPage属性とisErrorPage属性の組み合わせの例です。

source.jspファイルの例
<HTML>
  …
<%@ page errorPage="/errorpage.jsp" %>
  …
  <HTML>

errorpage.jspファイルの例
<HTML>
  …
<%@ page isErrorPage="true" %>
  …
</HTML>

●contentType属性

 JSPファイルのレスポンスのMIMEタイプ、エンコーディング方式を指定します。デフォルトは、MIMEタイプがtext/htmlで、エンコーディング方式が「ISO-8859-1」です。JSPファイルで日本語を表示させる場合、例えば以下のように指定します。

<%@ page contentType="text/html;charset=Shift_JIS" %>

 以下の例のようにcontentType属性を設定していない場合、日本語の部分は文字化けします。

clockxx.jsp
<HTML>
<HEAD><TITLE>時刻表示</TITLE></HEAD>
<BODY>
時刻表示: <%= new java.util.Date() %>
</BODY>
</HTML>

 以下の画面が、上記のJSPを実行した結果です。 

表示結果

 以下のようにcontentType属性を設定することで、正しく日本語が表示されます。

clockjp.jsp
<HTML>
<HEAD><TITLE>時刻表示</TITLE></HEAD>
<BODY>
<%@ page contentType="text/html;charset=Shift_JIS" %>
時刻表示: <%= new java.util.Date() %>
</BODY>
</HTML>

 以下の画面が、上記のJSPを実行した結果です。

表示結果

●pageEncoding属性

 JSPファイルのソースコードのエンコーディング方式を指定します。デフォルトは、エンコーディング方式が「ISO-8859-1」です。

 JSPファイルで日本語を表示させる場合、例えば以下のように指定します。

<%@ page pageEncoding="charset=Shift_JIS" %>

 なお、pageディレクティブはXML構文では、<jsp:directive.page>タグを使って記述することもできます。

<jsp:directive.page … />


POINT
エラーページは、JSPファイルを含むWARファイルにも定義することができます。エラーページが、WARファイルとJSPファイルの両方に定義されている場合は、JSPファイルのエラーページが優先されて表示されます。

KEYWORD
■MIMEタイプ
そのファイルが、どのような特性を持っているものなのかを設定します。

   ワンポイントQuestionの解答

正解 E

J2EEラーニングブック −Web Component Developer編−

本記事は@ITハイブックスシリーズ「J2EEラーニングブック −Web Component Developer編−」(技術評論社)から、一部の内容を編集し転載したものです。本書の詳細は「@ITハイブックス」サイトでご覧いただけます。

 

Javaプログラミング・ワンポイントレクチャー INDEX





Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間