サーブレットをアクション パラメータとして定義した form.html があります。サーブレットはモデル(データベースにアクセスするための単純なJavaクラスDAO)と会話し、レコードが見つからない場合、クラスからサーブレットに委任されたrecordnotfound例外をスローします。そこで、この例外(RecordNotFound)をweb.xmlで定義されたjspページに転送したい
これを達成する方法についてのアイデア。
ありがとう
そのため、<error-page>
エントリをweb.xml
使用できます。
<error-page>
<exception-type>com.exampl.RecordNotFound</exception-type>
<location>/WEB-INF/errorpages/recordnotfound.jsp</location>
</error-page>
サーブレットで行う必要があるのは、スローされた例外をそのままにするか、それがチェックされている場合はServletException
.
} catch (RecordNotFound e) {
throw new ServletException(e);
}
に過度に一般的なエラー ページjava.lang.Throwable
または のスーパークラスをServletException
設定しないでください。つまり、コンテナーはエラー ページの場所を 2 回通過します。1 つ目は正確な例外を使用し、2 つ目は例外が実際に である場合、ServletException
代わりにラップされた例外を使用してエラー ページを特定します。
使用する
request.getRequestDispatcher("/yourJSPFile.jsp").forward(request,response);