0

フォームを持つ JSP ページが 1 つあります。このフォームのボタンが押されると、id が私の MainServlet を呼び出します。これは私のサーブレットの例です

/***** MainServlet *****/    

/* Call the servlet that comunicate with database */  
request.getRequestDispatcher("Servlet1").forward(request,response)

/* Return on the same JSP that have invoke MainServlet */
request.getRequestDispatcher("myJsp.jsp").forward(request,response);

return;

フォームのボタンを押すと、サーバーが 「応答がコミットされた後に転送できません」というエラーを返すため、これは間違っています。

どうすればこの問題を解決できますか?

ありがとう。

4

2 に答える 2

1

同時に 2 つの異なるリソースに転送することはできません。

Servlet1からmyJsp.jsp使用するために再度転送する必要がありますrequest.getRequestDispatcher("myJsp.jsp").forward(request,response);

2 回だけ直接転送することはできません。1 回転送すると、応答がすでにコミットされており、クライアントに最初のリソースが提供されるからです。

適切なリクエストに応じて適切なリソースに転送する条件ステートメントを使用できます。

于 2013-10-03T10:03:50.207 に答える
0

リクエストが転送されると、残りのコードは実行されません。メソッドで return ステートメントを 2 回続けて呼び出すのと同じです。両方の転送を機能させたい場合。forward ステートメントの 1 つが実行される条件に応じて、条件を使用する必要があります。

于 2013-10-03T10:04:56.563 に答える