Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)


2.6.1 デフォルトの文字エンコーディングの設定単位

アプリケーションサーバでは,リクエストのデコード,レスポンスのエンコード,およびJSPファイルで使用するデフォルトの文字エンコーディングを,J2EEサーバ単位,Webアプリケーション単位で設定できます。

ここでは,デフォルトの文字エンコーディングの設定について説明します。なお,デフォルトの文字エンコーディングは,JSP事前コンパイル実行時に適用することもできます。JSP事前コンパイル実行時のデフォルトの文字エンコーディング設定については,「2.6.3 JSP事前コンパイル実行時の文字エンコーディングの適用」を参照してください。

〈この項の構成〉

(1) J2EEサーバ単位の設定

J2EEサーバごとにデフォルトの文字エンコーディングを設定します。J2EEサーバごとにデフォルトの文字エンコーディングを設定すると,J2EEサーバにデプロイされているすべてのJ2EEアプリケーションのサーブレットおよびJSPファイルに対して,設定した文字エンコーディングを適用します。これによって,J2EEサーバ単位で,文字エンコーディングを統一できます。

J2EEサーバ単位の場合,デフォルトの文字エンコーディングは,J2EEサーバの動作設定をカスタマイズする際に設定します。設定の詳細については,「2.6.7 実行環境での設定」を参照してください。

(2) Webアプリケーション単位の設定

WARファイルごとに,デフォルトの文字エンコーディングを設定します。WARファイルごとにデフォルトの文字エンコーディングを設定すると,WARファイルに含まれるサーブレットおよびJSPファイルに対して,設定した文字エンコーディングを適用します。これによって,Webアプリケーション単位で,文字エンコーディングを統一できます。

Webアプリケーション単位での設定の場合,デフォルトの文字エンコーディングは,J2EEアプリケーションのプロパティを定義する際に設定します。設定の詳細については,「2.6.7 実行環境での設定」を参照してください。

(3) 複数の範囲で文字エンコーディングを設定している場合の動作

文字エンコーディングの設定は,J2EEサーバ単位またはWebアプリケーション単位での設定のほかに,Servlet仕様での文字エンコーディングの設定もできます。Servlet仕様での文字エンコーディング設定の場合,設定範囲は,サーブレットまたはJSPファイル単位になります。

それぞれの設定範囲を次の図に示します。

図2‒10 文字エンコーディングの設定範囲

[図データ]

デフォルトの文字エンコーディングは複数範囲で設定することもできます。複数の範囲で設定されている場合,次の順序で適用されます。

  1. サーブレット/JSPファイル単位での設定(Servlet仕様)

  2. Webアプリケーション単位での設定

  3. J2EEサーバ単位での設定

例えば,図2-10で,サーブレット2とJ2EEサーバに文字エンコーディングが設定されているとします。この場合,J2EEサーバ内のアプリケーション全体に,J2EEサーバ単位で設定したデフォルトの文字エンコーディングが適用されますが,サーブレット2だけは,サーブレット内に設定した文字エンコーディングが適用されます。

次の表に,文字エンコーディング設定の組み合わせごとに,有効になる設定を示します。

表2‒18 文字エンコーディング設定の組み合わせと有効になる設定

設定の組み合わせ

有効になる設定

サーブレット/JSPファイルでの設定(Servlet仕様)

Webアプリケーション単位での設定

J2EEサーバ単位での設定

×

×

サーブレット/JSPファイルでの設定

×

×

×

×

Webアプリケーション単位での設定

×

×

×

J2EEサーバ単位での設定

×

×

×

Servlet仕様で規定されている文字エンコーディング

(凡例)○:設定あり ×:設定なし

文字エンコーディングの設定がない場合は,Servlet仕様で規定されている文字エンコーディングが適用されます。詳細については,「2.6.5(2) Servlet仕様で規定されている文字エンコーディング」を参照してください。

注※

XMLシンタックスのJSPファイルまたはタグファイルでは,XML宣言でencoding属性を指定していない場合はデフォルトエンコーディング設定機能が有効となります。