将参数从 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
查看更多
我有一个 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