- - PR -
JSPにて終了処理をしたい
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-06-24 10:07
お世話になっています。
JSPにて、ユーザ認証を行い、エラーなら メッセージを表示して、その後の処理を終了させようと しているのですが、いまいち良い方法が見つかりません。 試した方法としては、強制的に例外を発生させて終了しようと 考えたのですが、仕様上例外処理時には、エラーページを表示するように しているので、この技が使えない状態です。 PHPだと、「exit()」で終了させられたりしますが、 JSPには、同じような処理を行うものがありませんでしょうか? 参考までに、簡略化したソースを記しました。 <%@ page errorPage="error.jsp" %> <%@ page contentType="text/html; charset=Shift_JIS" %> <% // ユーザID取得 String uid = request.getParameter("uid"); if(!uid.equals("manager")){ out.print("<html>"); out.print("<body>"); out.print("権限がありません。"); out.print("</body>"); out.print("</html>"); ←ここで、処理を終了したい。 } %> <html> <body> (通常、表示処理) </body> </html> 以上、何か情報をお持ちの方がいらっしゃいましたら、 ご教授頂ければと、思います。 よろしくお願いいたします。 環境 Apache(バージョン不明) Interstage Ver.4 JDK1.3 | ||||
|
投稿日時: 2004-06-24 10:22
> ←ここで、処理を終了したい。
そこに、 return; といれればOKです。 | ||||
|
投稿日時: 2004-06-24 10:43
t-wata様、ありがとうございます。
>return; にて早速、終了することを確認いたしました。 ありがとうございました。 しかし、現状ではout.printで出力されるべきテキストが 表示されずに、真っ白な状態になってしまいます。 こちらに関しては、テキストの出力方法をいろいろ試して みたいと思います。 | ||||
|
投稿日時: 2004-06-24 10:47
その処理に失敗したときの例外を定義して、別途エラーページを設定すれば良いのではないでしょうか?
| ||||
|
投稿日時: 2004-06-24 11:13
インギ様、ありがとうございます。
>その処理に失敗したときの例外を定義して、別途エラーページを設定すれば良いのではないでしょうか? 不勉強な為、ご意見を参考に、errorPage属性以外で、 エラーページへの遷移させる方法を調査中です。 助言、ありがとうございました。 | ||||
|
投稿日時: 2004-06-24 12:02
returnする直前で、flushBuffer() すればいいような気がします。 試してないので、間違えてたらごめんなさい。 | ||||
|
投稿日時: 2004-06-24 13:54
Cluster様、ありがとうございます。
>flushBuffer というのは、 response.flushBuffer(); を指していますでしょうか? もし、それであれば、残念ながら現象は変わりませんでした。 また、returnの直前に、out.flush(); を行った場合は、 「java.io.IOException: Illegal to flush within a custom tag」 と言うような、エラーが表示されます。 最初のソースに書き忘れていたのですが、カスタムタグを使用して DBとのやりとりもしています。 上記のエラーからだと、どうも、カスタムタグ内のflushの使い方が マズイと言っているようなのですが、 カスタムタグとして、flushが定義できてしまうのでしょうか? カスタムタグの定義は、以下の通りです。 <%@ taglib prefix="sol" uri="/test_sol" %> つくづく、勉強不足を実感しております。 皆さんの助言をもとに、調査を続けたいと思います。 [ メッセージ編集済み 編集者: きよっち 編集日時 2004-06-24 14:05 ] | ||||
|
投稿日時: 2004-06-24 16:29
白い画面が表示される理由はよくわかりませんが、
認証OKのHTMLと認証NGのHTMLをセットで書いて、 認証結果で切り替える様にすればどうでしょうか? こんな感じで。
べたな方法なので、他の方法としては・・・
実はJSPはよく覚えていないので、細かいところは自信ないです(^_^;; | ||||
