ServletContext.getRequestDispatcher()でIllegalArgumentExceptionが発生する - JSP

ServletContext.getRequestDispatcher()でIllegalArgumentExceptionが発生することがあります。

具体的なエラーとしては、
description:The server encountered an internal error () that prevented it from fulfilling this request.
Exception: java.lang.IllegalArgumentException: PWC1222: Path ./index.jsp does not start with '/' and is not empty
といったエラーメッセージが表示されます。

ServletContext.getRequestDispatcher()メソッドで与えるパスは絶対パスである必要があります。そのため以下のコードはエラーとなります。

エラーとなるコード

rd = context.getRequestDispatcher("./index.jsp");
rd.forward(req,res);
エラーを回避するには次のように絶対パスで指定します。

正常に動作するコード

rd = context.getRequestDispatcher("/index.jsp");
rd.forward(req,res);
著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
最終更新日: 2024-01-06
作成日: 2011-02-14
iPentec all rights reserverd.