自動要求エンコード (autoRequestEncoding) および 自動応答エンコード (autoResponseEncoding)
WebSphere® Application Server バージョン 5 以降、Web コンテナーは、要求と応答のエンコード、および応答のコンテンツ・タイプを自動的に設定しなくなっています。これらの値は、プログラマーがサーブレット 2.3 仕様以降で使用可能なメソッドを用いて設定することになっています。 プログラマーが文字エンコード方式を使用しないことを選択した場合、 自動要求エンコード (autoRequestEncoding) および 自動応答エンコード (autoResponseEncoding) 拡張機能を指定できます。 この拡張機能を使用すると、アプリケーション・サーバーはエンコード値とコンテンツ・タイプを設定することができます。
自動要求エンコード (autoRequestEncoding) および 自動応答エンコード (autoResponseEncoding) 拡張機能の値は、true または false です。どちらの拡張機能でも、 デフォルト値は false です。 autoRequestEncoding および autoResponseEncoding のいずれの値も false の場合、 要求と応答の文字エンコードは、サーブレット仕様のデフォルト (ISO-8859-1) に設定されます。 さらに、応答の値が false に設定されている場合、Web コンテナーは応答のコンテンツ・タイプを設定できません。クライアントが要求ヘッダーで文字エンコード方式を定義する場合や、 コードに setCharacterEncoding(String encoding) メソッドが含まれている場合には、さまざまな文字エンコード方式を使用できます。
自動要求エンコード (autoRequestEncoding) 値が true に設定され、クライアントにより要求ヘッダーで文字エンコード方式が指定されず、コードに setCharacterEncoding(String encoding) メソッドが含まれていない場合には、Web コンテナーは要求パラメーターとデータ用の正しい文字エンコード方式を判別しようとします。
アセンブリー・ツールを使用して autoRequestEncoding および autoResponseEncoding 拡張のデフォルト値を変更します。
Web コンテナーは、一致するものが見つかるまで、以下のリストの各ステップを実行します。
- Content-Type ヘッダー内の文字セットを見る。
- 定義されたプロパティーを使用してサーバーのロケールを文字セットにマップしようとする。
- DEFAULT_CLIENT_ENCODING システム・プロパティーを使用しようとする (設定されている場合)。
- ISO-8859-1 文字エンコード方式をデフォルトとして使用する。
autoResponseEncoding 値が true に設定され、クライアントにより要求ヘッダーで文字エンコード方式が指定されず、コードに setCharacterEncoding(String encoding) メソッドが含まれていない場合には、Web コンテナーは以下を実行します。
- 要求ヘッダー内の情報から、応答のコンテンツ・タイプと文字エンコード方式を判別しようとする。
- ISO-8859-1 文字エンコード方式をデフォルトとして使用する。