2011-04-01 70 views
0

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

我该怎么做?

让我举个例子:想象一下,一个servlet可以给你一个页面的时间和温度。

INT这个servletü会需要从2个diferent servlet的请求数据,所以你需要什么即时通讯,询问在这里...

回答

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

忽略,你正在做的请求一个servlet的事实 - 它只是普通的Java代码。

忽略你提出请求这个事实,它只是一个普通的HTTP请求。

使用你通常用来处理HTTP的任何东西 - 例如Apache HttpClient,或内置URLConnection类。获取数据,将其与任何其他数据结合起来,作为响应。