Servlet 2.4仕様で追加および変更された仕様を持つweb.xmlをCosminexus上で使用する場合の注意事項を示します。Servlet 2.4仕様については,Servlet 2.4仕様書を参照してください。
Cosminexusでは,次に示すServlet 2.4仕様のweb.xmlの要素は定義できません。定義した場合,デプロイ時にエラーになります。
Servlet 2.4仕様では,web.xmlの<security-constraint>タグに特別な指定をした場合の動作について追記されています。
Cosminexusでは,Webアプリケーションのバージョンに関係なく,次の動作をします。
Servlet 2.4仕様では,web.xmlの<security-constraint>タグを複数定義した場合の動作について追記されています。
Cosminexus上で<security-constraint>タグを複数定義した場合の動作を,Servlet 2.4およびServlet 2.3に分けて示します。
Servlet 2.4仕様では,web.xmlに記述するURLパターンに改行コードを含む場合の動作について追記されています。
Cosminexusでは,Webアプリケーションのバージョンに関係なく,KDJE39304-Wの警告メッセージが出力されます。ただし,エラーにはならないでアプリケーションは開始されます。また,該当するマッピングは無視されます。
なお,web.xmlでこのような動作をするタグは,<servlet-mapping>タグ,<filter-mapping>タグ,<jsp-property-group>タグ,および<web-resource-collection>タグと各タグに含まれるサブクラスの<url-pattern>タグです。
Servlet 2.4仕様に対応したWebアプリケーションでは,web.xmlによって表示するエラーページを指定した場合でも,エラーが発生した時点のレスポンスのステータスコードがクライアントに送信されます。
また,Servlet 2.2仕様およびServlet 2.3仕様に対応したアプリケーションでは,ステータスコード200がクライアントに送信されます。
Servlet 2.4仕様に対応したアプリケーションでは,web.xmlで指定したエラーページを表示させる場合,エラーページはカスタマイズされません。また,同じステータスコードに対してカスタマイズしたエラーページを指定した場合,Webアプリケーションで問題が発生し,web.xmlで指定したエラーページの出力に失敗したときだけ,カスタマイズが有効となります。
エラーページのカスタマイズについては,マニュアル「Cosminexus 機能解説」を参照してください。
Servlet 2.4仕様に対応したアプリケーションでは,web.xmlで指定したエラーページが表示されたあとのステータスコードが,エラーページの生成を委任するエラーステータスコードと一致すると,Webサーバによって生成されるエラーページが有効となります。このとき,web.xmlで指定したエラーページの内容はリダイレクタに転送されたあとに破棄されます。
web.xmlで指定したエラーページでレスポンスのステータスコードを200に変更することで,web.xmlで指定したエラーページを有効にできます。
ステータスコードに対応するリダイレクトについては,マニュアル「Cosminexus 機能解説」を参照してください。
Servlet 2.4に対応したWebアプリケーションでは,web.xmlの<filter-mapping>タグを定義するとき,サブ要素として<dispatcher>タグを記述することで,リクエストのフォワード時,インクルード時,およびweb.xmlに記述したエラーページへの転送時にフィルタを動作させることができます。
JSPでは,pageディレクティブのerrorPage属性を使用することで,JSPでの例外発生時にエラーページを出力できます。ただし,このときに実行されるリクエストの転送はフォワードです。フィルタを適用する場合に<dispatcher>タグへ必要となる定義は「ERROR」ではなく,「FORWARD」となります。