2
エラーページが指定されたJSPページがあります。RequestDispatcherを使用してJSPページで例外を検出します。
RequestDispatcher rd = ctx.getRequestDispatcher(jspPage);
rd.include(req, res);
jspページがエラーページに転送されたかどうかを検出するにはどうすればよいですか?例外を異なる方法で処理したいが、例外はスローされない。残念ながら、JSPページ自体やエラーページを変更することはできません。
編集:
私はこのようなものは、()ライン、任意の考えの後に働くかもしれないと思っていますか?
Object errorServletName = req.getAttribute("javax.servlet.error.servlet_name");
if (errorServletName != null)
{ there was an error in the JSP... }
正確にこれを検出しますか?与えられた例の 'include()'行の後ろに?なぜあなたのJSPは例外をスローしますか?これは[scriptlets ...]の使用を示しています(http://stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files)エラーページ?私。応答がすでにコミットされている間に例外をスローします。とにかく、 'web.xml'の' 'エントリを変更することが許されていますか?もしそうなら、それが答えです。 –
BalusC
この例では、include()行の後に検出したいと考えています。 JSPページにはerrorPageが指定されているため、例外が発生したときにerror.jspにキックオーバされます(通常は問題ありません)。しかし、include()行の後にres.getContents()を実行して、出力で他の処理を行う必要があります。エラーページの出力を特殊なケースとして処理する必要があるので、それがエラーページに転送されたかどうかを検出します。希望を明確にすること... –