0

私は2つのWebアプリ、タペストリーアプリとシンプルなWebアプリ(servlt)を持っています。タペストリー appli では、フォームがあり、それが送信されるときに、apache の httpClient を使用してオーサリング アプリにいくつかの情報を送信するために httpClient を呼び出します。このような

    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();

    }

}

そして、単純なWeb appli(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();
    }

}

それで、私のレセプトは私のフォームからデータを受け取りますが、それはそれに応答できません。ありがとう

4

1 に答える 1

0

私が正しければ、Tapestry アプリケーションで、Tapestry 内のフォーム送信から受け取ったフォーム データを、別のアプリケーションで実行されているサーブレットに POST する必要があります。

これが必要な場合、欠けているのは、サーブレットで要求を処理し、応答を構築することです。タペストリー ページとサーブレットの両方が POST を実行しているため、どちらも HttpClient が処理する応答を構築しません。

サーブレットでは、次のことができます。

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 に答える