将参数从servlet发送到servlet

时间:2015-10-01 12:54:32

标签: servlets parameters attributes

我有一个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中执行。

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

1 个答案:

答案 0 :(得分:1)

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

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。所以你不需要做任何事情。默认情况下它将在该请求对象中可用。

如果你这样做,doGet会被调用另一个servlet。 如果你不能移动你的逻辑,我建议你使用HttpURLConnection对象。你可以像这样以编程方式触发POST请求

{{1}}

查看更多