Cosminexus 機能解説

[目次][用語][索引][前へ][次へ]

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

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

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

<この項の構成>
(1) J2EEサーバ単位の設定
(2) Webアプリケーション単位の設定
(3) 複数の範囲で文字エンコーディングを設定している場合の動作

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

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

J2EEサーバ単位の場合,デフォルトの文字エンコーディングは,J2EEサーバの動作設定をカスタマイズする際に設定します。設定の詳細については,マニュアル「Cosminexus システム構築ガイド」のJ2EEサーバの動作設定のカスタマイズに関する説明を参照してください。

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

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

Webアプリケーション単位での設定の場合,デフォルトの文字エンコーディングは,J2EEアプリケーションのプロパティを定義する際に設定します。設定の詳細については,マニュアル「Cosminexus システム構築ガイド」のJ2EEアプリケーションのプロパティ定義で設定できることに関する説明を参照してください。

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

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

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

図4-12 文字エンコーディングの設定範囲

[図データ]

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

  1. サーブレット/JSPファイル単位での設定(Servlet仕様)
  2. Webアプリケーション単位での設定
  3. J2EEサーバ単位での設定

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

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

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

設定の組み合わせ 有効になる設定
サーブレット/JSPファイルでの設定(Servlet仕様) Webアプリケーション単位での設定 J2EEサーバ単位での設定
× × サーブレット/JSPファイルでの設定
×
×
× × Webアプリケーション単位での設定
×
× × J2EEサーバ単位での設定
× × × Servlet仕様で規定されている文字エンコーディング

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

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