Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)
アプリケーションサーバでは,リクエストのデコード,レスポンスのエンコード,およびJSPファイルで使用するデフォルトの文字エンコーディングを,J2EEサーバ単位,Webアプリケーション単位で設定できます。
ここでは,デフォルトの文字エンコーディングの設定について説明します。なお,デフォルトの文字エンコーディングは,JSP事前コンパイル実行時に適用することもできます。JSP事前コンパイル実行時のデフォルトの文字エンコーディング設定については,「2.6.3 JSP事前コンパイル実行時の文字エンコーディングの適用」を参照してください。
J2EEサーバごとにデフォルトの文字エンコーディングを設定します。J2EEサーバごとにデフォルトの文字エンコーディングを設定すると,J2EEサーバにデプロイされているすべてのJ2EEアプリケーションのサーブレットおよびJSPファイルに対して,設定した文字エンコーディングを適用します。これによって,J2EEサーバ単位で,文字エンコーディングを統一できます。
J2EEサーバ単位の場合,デフォルトの文字エンコーディングは,J2EEサーバの動作設定をカスタマイズする際に設定します。設定の詳細については,「2.6.7 実行環境での設定」を参照してください。
WARファイルごとに,デフォルトの文字エンコーディングを設定します。WARファイルごとにデフォルトの文字エンコーディングを設定すると,WARファイルに含まれるサーブレットおよびJSPファイルに対して,設定した文字エンコーディングを適用します。これによって,Webアプリケーション単位で,文字エンコーディングを統一できます。
Webアプリケーション単位での設定の場合,デフォルトの文字エンコーディングは,J2EEアプリケーションのプロパティを定義する際に設定します。設定の詳細については,「2.6.7 実行環境での設定」を参照してください。
文字エンコーディングの設定は,J2EEサーバ単位またはWebアプリケーション単位での設定のほかに,Servlet仕様での文字エンコーディングの設定もできます。Servlet仕様での文字エンコーディング設定の場合,設定範囲は,サーブレットまたはJSPファイル単位になります。
それぞれの設定範囲を次の図に示します。
デフォルトの文字エンコーディングは複数範囲で設定することもできます。複数の範囲で設定されている場合,次の順序で適用されます。
例えば,図2-10で,サーブレット2とJ2EEサーバに文字エンコーディングが設定されているとします。この場合,J2EEサーバ内のアプリケーション全体に,J2EEサーバ単位で設定したデフォルトの文字エンコーディングが適用されますが,サーブレット2だけは,サーブレット内に設定した文字エンコーディングが適用されます。
次の表に,文字エンコーディング設定の組み合わせごとに,有効になる設定を示します。
表2-18 文字エンコーディング設定の組み合わせと有効になる設定
設定の組み合わせ | 有効になる設定 | ||
---|---|---|---|
サーブレット/JSPファイルでの設定(Servlet仕様)※ | Webアプリケーション単位での設定 | J2EEサーバ単位での設定 | |
○ | × | × | サーブレット/JSPファイルでの設定 |
○ | ○ | × | |
○ | × | ○ | |
○ | ○ | ○ | |
× | ○ | × | Webアプリケーション単位での設定 |
× | ○ | ○ | |
× | × | ○ | J2EEサーバ単位での設定 |
× | × | × | Servlet仕様で規定されている文字エンコーディング |
(凡例)○:設定あり ×:設定なし
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.