今、私は単一のjspページで単一のサーブレットフォームアクションを呼び出しました。同じ JSP ページで複数のサーブレット フォーム アクションを呼び出したい。
2 に答える
サーブレットがどのように機能し、何のために使用されるかを誤解していると思います。サーブレットは、クライアントの要求を処理し、応答を返すために使用されることに注意してください。最初のサーブレットでユーザーのリクエストを処理するとします。
同じリクエストで別のサーブレットを呼び出す必要があるのはなぜですか? 応答に何も追加しない追加機能を実行することですか? この場合、おそらく別のサーブレットは必要ありません。最初のサーブレットの機能を拡張するだけです。
別のサーブレットを呼び出して応答オブジェクトに何かを追加する場合は、最初のサーブレットの動作を修正し、2 番目のサーブレットの機能を最初のサーブレットに統合することをお勧めします。
最初のサーブレットの応答を気にせずにユーザーを別の jsp/サーブレットにリダイレクトしたい場合は、 または のオプションがあります。request.sebdRedirect("yourJsp.jsp")
ここにそれらの違いがあります。request.getRequestDispatcher("yourJsp.jsp").forward(request, response);
したがって、すべてを閉じるかどうかは、ビジネス ロジックによって異なります。ニーズに合ったオプションを選択する必要があります。
form の action 属性は 1 つの URL しか受け付けないため、1 つの jsp フォームで複数のサーブレットを呼び出すことはできません。
<form method="get" action="/yourservlet">
<!-- action only accepts a single url! -->