0

我有两个网络应用程序,挂毯应用程序和一个简单的网络应用程序(servelt)。在tapestry appli 中,我有一个表单,当它被发送时,我调用一个httpClient 来使用apache 的httpClient 向作者appli 发送一些信息。像这样

    void onSubmitFromForm() {

    try {

        HttpClient client = new DefaultHttpClient();
        HttpPost post = new HttpPost("http://localhost:8080/appli2/recep");
        post.setHeader("referer", "http://localhost:9090/app1/start");

        List<NameValuePair> param = new ArrayList<NameValuePair>();

        param.add(new BasicNameValuePair("_data", getData());

        post.setEntity(new UrlEncodedFormEntity(param));

        HttpResponse response = client.execute(post);
                    response ?????
            } catch (Exception e) {

        e.printStackTrace();

    }

}

在我的简单网络应用程序(2)的服务器接收中,我做同样的事情,如下所示

protected void doPost(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    try {
        HttpClient client = new DefaultHttpClient();
        HttpPost post = new HttpPost(request.getHeader("referer"));

        post.setHeader("p",getP());

        client.execute(post);


    } catch (Exception e) {
        e.printStackTrace();
    }

}

所以,我从我的表单中接收 reviev 数据,但它无法响应它,我希望 Tapersty 应用程序可以从简单的 Web 应用程序接收参数“P”吗?谢谢

4

1 回答 1

0

如果我是正确的,您希望您的 Tapestry 应用程序将从 Tapestry 中的表单提交接收到的一些表单数据发布到在另一个应用程序上运行的 servlet。

如果这是您想要的,那么缺少的是请求的处理和在您的 servlet 中构建响应。因为您的挂毯页面和您的 servlet 都在 POST 中,这意味着它们都不会为您的 HttpClient 构建响应来处理。

在您的 servlet 中,您可以:

public void doPost(HttpServletRequest request, 
     HttpServletResponse response)
        throws ServletException, IOException
  {
    response.setContentType("text/plain");
    PrintWriter out = response.getWriter();

    out.println(getP());
    out.close();
  }

并在您的挂毯表单处理程序中处理响应。

于 2012-06-27T18:27:45.470 回答