繁体   English   中英

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

[英]How a servlet request data from other servlet?

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

我怎样才能做到这一点 ?

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

此servlet您将需要从2个不同的servlet请求数据,因此您将需要在这里询问...

如果两个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请求,请查看此mini-tutorial

忽略您正在 Servlet发出请求的事实-这只是普通的Java代码。

忽略您正在 Servlet发出请求的事实-这只是一个普通的HTTP请求。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM