おれのIT日記

2002/09/26 (木)

JSP

まだまだわかってないなー


簡単なWebアプリを作る仕事があり、最近では珍しく独りで黙々と作っている。サーブレットとJSPを使って、EJBは使わない、という仕事だ。しかしなめてかかったので、ある点でハマり、2時間ほど久々に独りでうなってしまった。

それは、JSPのエラーページ機能である。実は、これ使いこなしたことがなかった。
別にどうってことないじゃん、となめてたから。

なぜはまったかというと、サーブレット側でエラーが起きた際にこのエラーページにforwardするようにしたからだ。そうすれば、JSPでのエラーと、サーブレットでのエラーで、エラー画面が共用できるな、と思った。で、コメントに
共通エラー画面
などと書き込んで、むふふんと悦に入る間もなく、エラーが連発して悩んでしまった。

これ、どうもまずいみたい。errorPage="true"で、デフォルト変数exceptionを使用してる場合、どうも何か前処理をしているらしくて、ここにforwardしようとすると、
alreadyなんとかかんとか
と文句を言ってくるのだ。そこに気づかず、しばらくうなってしまった。
今度、生成されたJSPのソースを眺めて謎解きをしてみよう。

結局、JSPのエラーと、サーブレットのエラーと、二つ別に用意することにしたんだが、これなら、errorPage機能を使わないで、全部自力でcatchして、自前のエラーページで捕捉するようにした方が、一本化できていいんじゃないかなぁ。仕事で関ってる、他人の作ったあるフレームワークは、実際そうなってる。以前から「なんでだ?」と思っていた。今回自分で試してみて、同じことを考えたのかな?と思った。