dポイントプレゼントキャンペーン実施中!

Java初心者です。宜しくお願いします。
現在、ServletからJSPに対してIncludeまたはForward
した後にServlet側にて処理を継続させる方法が
ないか調べています。
Forwardは×かなというところ
まではわかったのですがIncludeで行った場合
Servlet → JSPに遷移させた後に呼び出し元の
Servletに制御を戻す事は可能でしょうか。
また、一般的な方法がありましたらご教授お願いします。

宜しくお願いします。

A 回答 (2件)

なぜそうしたいか?


というのがわからないので、適切な回答になっているか分かりませんが、

サーブレット
リクエストを受け取る

(継続させたい)処理を行う

JSPを返す

となっているんですよね?(今は)

サーブレット         スレッド
リクエストを受け取る

スレッドを生成して開始させる→処理を行う
↓              ↓
JSPを返す         処理を継続して行う

とすれば、サーブレットはスレッドを起動・開始すればすぐ処理が戻ってきますので、JSPを返した後も処理が継続できるのでは?

ただし、サーバーのリソースなどを考慮して下さいね。
    • good
    • 0
この回答へのお礼

pcbeginnerさん、
早速のご意見有難うございます。
サーブレットにてログを出力しますが、処理中に
ログ出力を行ってしまうと性能が落ちてしまう。
そこで、Servletから画面表示(JSP)に遷移した
後に、ログを出力するという事を考えました。

pcbeginnerさんのおっしゃる通りリソースに注意
して検討進めてみます。
有難うございました。

お礼日時:2005/04/20 17:31

 Forward というのは、全ての処理が終了したあとで呼び出すもので、一度呼び出したらもう戻ってこれません。


 なので、そういう場合は Servlet 内で、

PrintWriter out = response.getWriter();
out.println("<html><body>あいうえお</body>");

 といった具合に、PrintWriter クラスに対してHTMLの出力を自分で制御して行います。
 この方法ならば、中途半端にHTMLを出力した状態でも、Servlet の動作は止まりません。

 なお、この方法を用いたあとで Forward を呼ぼうとすると例外が発生します。
    • good
    • 0
この回答へのお礼

deagleさん、
早速のご意見有難うございます。
可能は可能でしょうが、HTMLの出力は
JSPで行うという前提のもと行っております
ので今回は適用できそうにありません。
今後に活かさせて頂きます。
有難うございました。

お礼日時:2005/04/20 17:26

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