servlet如何从其他servlet请求数据?

时间:2011-04-01 15:48:39

标签: java servlets

好吧我只使用response.sendRedirect并转发使用已购买的servlet,但现在我需要一个servlet请求答案而不是将客户端发送到另一个servlet。

我该怎么做?

让我举一个例子:想象一下,servlet可以在一页中为您提供时间和温度。

在这个servlet中你需要从两个不同的servlet请求数据,所以你需要我在这里要求的...

2 个答案:

答案 0 :(得分:3)

如果两个servlet在同一服务器上的相同上下文中运行,则只需使用RequestDispatcher#include()

request.getRequestDispatcher("/otherservleturl").include(request, response);

您甚至可以在由第一个servlet转发的JSP中执行此操作。

request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response);

<jsp:include page="/otherservleturl" />

如果它们不在相同的上下文中运行,那么您需要以编程方式在其上触发HTTP请求并将其HTTP响应输出传递给当前响应输出。

InputStream input = new URL("http://other.com/servlet").openStream();
OutputStream output = response.getOutputStream();
IOUtils.copy(input, output);

要获得更高级的HTTP请求,请检查this mini-tutorial

答案 1 :(得分:1)

忽略你从 servlet发出请求的事实 - 它只是普通的Java代码。

忽略你正在向发送一个servlet请求的事实 - 这只是一个普通的HTTP请求。

使用您通常用于处理HTTP的任何内容 - 例如Apache HttpClient或内置URLConnection类。获取数据,将其与任何其他数据相结合,将其作为响应提供。