doGet()
メソッドはどのようにしてRequestDispatcher
から呼び出すことができますか?RequestDispatcherを使用してサーブレットdoGet()メソッドを呼び出す
RequestDispatcher rd = sc.getRequestDispatcher("/CartServlet");
rd.forward(request, response);
このコードは、デフォルトのアクションとしてdoPost()
を呼び出します。
doGet()
メソッドはどのようにしてRequestDispatcher
から呼び出すことができますか?RequestDispatcherを使用してサーブレットdoGet()メソッドを呼び出す
RequestDispatcher rd = sc.getRequestDispatcher("/CartServlet");
rd.forward(request, response);
このコードは、デフォルトのアクションとしてdoPost()
を呼び出します。
元のリクエストでPOSTメソッドが使用されたため、doPost()
が呼び出されます。 一般に、サーブレットはお互いを「呼び出す」ことはできません。彼らは要求を転送またはリダイレクトすることができます。どちらの場合も、元の要求で使用されたものと同じHTTPメソッドが使用されます。
他のサーブレットのdoGet()
を呼び出す場合は、アプリケーションをリファクタリングする、つまりdoGet()
に実装されているロジックを分離し、それを別のクラスに置き、両方のサーブレットからこのクラスを呼び出します。
HttpURLConnectionを使用して、POSTまたはGETメソッドで内部的にリクエストを送信します。私はこれを長い間長い間必要と感じていました。