好吧,我只使用response.sendRedirect并转发使用购买的servlet,但现在我需要一个servlet请求答案,而不是将客户端发送到另一个servlet。servlet如何从其他servlet请求数据?
我该怎么做?
让我举个例子:想象一下,一个servlet可以给你一个页面的时间和温度。
INT这个servletü会需要从2个diferent servlet的请求数据,所以你需要什么即时通讯,询问在这里...
好吧,我只使用response.sendRedirect并转发使用购买的servlet,但现在我需要一个servlet请求答案,而不是将客户端发送到另一个servlet。servlet如何从其他servlet请求数据?
我该怎么做?
让我举个例子:想象一下,一个servlet可以给你一个页面的时间和温度。
INT这个servletü会需要从2个diferent 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请求,请检查this mini-tutorial。
忽略,你正在做的请求从一个servlet的事实 - 它只是普通的Java代码。
忽略你提出请求到这个事实,它只是一个普通的HTTP请求。
使用你通常用来处理HTTP的任何东西 - 例如Apache HttpClient,或内置URLConnection
类。获取数据,将其与任何其他数据结合起来,作为响应。