[英]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.