現在、Linux 上の JRun の評価をしているのですが、JSP の動きで悩んでいる部分があります。
PHP や、perl などでは、
exit;
とすれば、そこで処理を終えてスクリプトを抜けることができますが、JSP ではどういった方法で処理を終えればよいのでしょう?

System.exit(1);
では、JRun の対象サーバごと(!) exit してしまいますし、いきなり
return;
を書くと、抜けることができたのですが、
try {} catch (){}
では、機能してくれません。。。

みなさん、
if (flag){
exit(1);
}
のような処理はどうされているのでしょう?

A 回答 (3件)

JRunのエラーログに何か情報が出力されていませんか?



ちなみに、個人的にはWin2000+Apache+Resinで

<%
 String str = null;
 try {
  if (str.equals("")) {
  }
 } catch (Exception e) {
  return;
 }
%>

という、簡単なソースを記述してやると、問題なく表示されます。。。

# 実際は表示処理を行っていないので、何も表示されないのですが
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

先ほど、上記のソースに、<%@ page... %> を付けて実行してみたところうまくいくことを確認しました。

謎です。。 :-(

ひょっとしたらですが、

1. JRun の評価と同時に mcap という製品の評価もしています。
2. mcap は JRun のWEB アプリケーションとして動作しています。
3. mcap は特定の URI にリクエストがあった場合、wrapper のような働きをして、User-Agent ごとに違った HTML を出力します。(ターゲットは携帯電話ですので、chtml や、cdml など)
4. そのために、XHTMLBasic という言語を使用して Java, HTML, XML などが混在した jsp ファイルになります。
5. で、parse error や、別の例外が発生していたのかも。。。

と、考えました。

catch ブロックの中の return を取っただけで正常に動いたり、入れただけで error になったりする動作は本当に不可解でした。

ひとまず close して、もう少し検証してみます。

なんとも歯切れの悪い終わり方で申し訳ありません。

お礼日時:2001/09/17 10:22

上記の例で言えば、


if (flag) {
 return;
}
では、抜けられませんか?

この回答への補足

回答ありがとうございます。

上記の例でも抜けることができることを確認していたのですが、
try{}catch(){} 文で internal server error になってしまいます。

try {
// 処理
} catch (Exception e){
// 例外が発生したら抜ける
return;
}

のような場合です。

謎です。

補足日時:2001/09/15 20:36
    • good
    • 0

JSPもperlも全然わからないのですが、予測で・・・



ラベルとかつければいいのでは?

if( flag ){
break f1;
}

:f1

私は使用したことはありませんがラベルを使えばなんちゃってgoto文に
なると思うので・・・これじゃだめですかねぇ・・・
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング