HttpServletRequest と HttpServletResponse を Java クラスに渡す JSP ページがあります。この Java クラスは、"action" という名前のパラメーターに基づいてアクション クラスに要求と応答をディスパッチします。アクション クラスは何らかのアクションを実行し、同じ手順が繰り返される別の JSP に転送されることがあります。あなたがサーブレットを使うべきだと思うなら、それはあなたの権利ですが、それは長い話であり、基本的に私も権限を持っていません。
アクション クラスの 1 つで、データを検証し、有効であれば、RequestDispatcher を使用してリクエストを別の JSP に転送します。また、実行するアクションを他の JSP に伝えることができるように「アクション」属性を設定しようとしましたが、属性が要求と共に転送されないことがわかりました。実際、アクション パラメータが変更されていないために同じアクションを実行していたため、コードが無限ループを開始し、その結果、アクションと JSP の間で要求がループしていました。
新しいページの URL にパラメーターを渡すことで、アクション パラメーターをオーバーライドできることがわかりました。そのようです:
RequestDispatcher dispatcher = request.getRequestDispatcher("someUrl.jsp?action=SOME_OTHER_ACTION");
dispatcher.forward(request, response");
この解決策は私には怪しいにおいがします。これが良いアイデアかどうかについて、誰かが洞察を提供できますか?