将参数从 servlet 发送到 servlet

Send parameter from servlet to servlet

我有一个 servlet load_plan,它的 doPost 方法使用以下代码加载计划:

int id = Integer.parseInt(request.getParameter("id"));

我有另一个 servlet hire_new_plan,它的 doGet 方法将 id 发送到 load_plan servlet。

hire_new_plan doPost() --> load_plan doGet().

如何从 doGet 方法发送 id,以便我可以在接收方 servlet 的 doPost 方法中使用 request.getParameter() 捕获它?

据我所知,有两个问题。

首先,我无法从另一个 servlet 的 doGet 方法调用 doPost 方法。

其次,似乎 request.setAttribute("id", id)int id = Integer.parseInt(request.getParameter("id")); 不匹配。我在接收者 servlet 中执行。

我该怎么做才能解决这个问题?

您可以使用 RequestDispatcher 转发到其他 servlet。

RequestDispatcher rd = request.getRequestDispatcher("load_plan");
rd.forward(request, response);
//or rd.include(request, response);

虽然转发相同的请求对象被发送到被叫servlet.So你不需要做anything.It默认情况下在该请求对象中可用。

如果你这样做,doGet 将被另一个 servlet 调用。 如果你不能移动你的逻辑,我建议你使用 HttpURLConnection object.You can fire POST request by programmatically like this

HttpURLConnection connection = (HttpURLConnection) new URL("http://localhost:8080/WebAppName/SecondServlet").openConnection();
connection.setRequestMethod("POST");
InputStream response = connection.getInputStream();
// ... Write to OutputStream of your HttpServletResponse

查看更多