Servlets-exception-handling
サーブレット-例外処理
サーブレットが例外をスローすると、Webコンテナーは、スローされた例外タイプと一致する例外タイプ要素を使用する web.xml 内の構成を検索します。
web.xmlの error-page 要素を使用して、特定の*例外*またはHTTP *ステータスコード*に応じてサーブレットの呼び出しを指定する必要があります。
web.xmlの構成
定義された例外またはエラーがあるたびに呼び出される_ErrorHandler_サーブレットがあるとします。 web.xmlで作成されるエントリは次のとおりです。
すべての例外に対して汎用エラーハンドラを使用する場合は、例外ごとに個別のエラーページ要素を定義するのではなく、次のエラーページを定義する必要があります-
以下は、例外処理のための上記のweb.xmlに関する注意点です-
- サーブレットErrorHandlerは、他のサーブレットと同様に通常の方法で定義され、web.xmlで構成されます。
- ステータスコードに404(Not Found)または403(Forbidden)のエラーがある場合、ErrorHandlerサーブレットが呼び出されます。
- WebアプリケーションがServletExceptionまたはIOExceptionをスローすると、Webコンテナは/ErrorHandlerサーブレットを呼び出します。 *さまざまなタイプのエラーまたは例外を処理するために、さまざまなエラーハンドラを定義できます。 上記の例は非常に一般的であり、基本概念を説明する目的に役立つことを願っています。
リクエスト属性-エラー/例外
以下は、エラー/例外の性質を分析するためにエラー処理サーブレットがアクセスできるリクエスト属性のリストです。
Sr.No. | Attribute & Description |
---|---|
1 |
この属性は、java.lang.Integerデータ型に格納した後に格納および分析できるステータスコードを提供します。 |
2 |
javax.servlet.error.exception_type この属性は、java.lang.Classデータ型に格納した後に格納および分析できる例外タイプに関する情報を提供します。 |
3 |
javax.servlet.error.message この属性は、java.lang.Stringデータ型に保存した後に保存および分析できる正確なエラーメッセージを提供します。 |
4 |
javax.servlet.error.request_uri この属性は、サーブレットを呼び出すURLに関する情報を提供し、java.lang.Stringデータ型に格納した後に格納および分析できます。 |
5 |
javax.servlet.error.exception この属性は、発生した例外に関する情報を提供し、保存および分析できます。 |
6 |
javax.servlet.error.servlet_name この属性は、java.lang.Stringデータ型に格納した後に格納および分析できるサーブレット名を提供します。 |
エラーハンドラサーブレットの例
この例では、サーブレットでの例外処理の基本的な理解が得られますが、同じ概念を使用してより高度なフィルタアプリケーションを作成できます-
通常の方法で ErrorHandler.java をコンパイルし、クラスファイルを/webapps/ROOT/WEB-INF/classesに配置します。
例外を処理するためにweb.xmlに次の構成を追加しましょう-
次に、例外を発生させるか、間違ったURLを入力するサーブレットを使用してみてください。これにより、Webコンテナが ErrorHandler サーブレットを呼び出し、プログラムに従って適切なメッセージを表示します。 たとえば、間違ったURLを入力すると、次の結果が表示されます-
上記のコードは、一部のWebブラウザーでは機能しない場合があります。 したがって、MozillaとSafariを試してみてください。