2

私はJavaとアプレットに精通していないので、次の私の探求の可能性を教えてください.

  1. アプレットからサーブレットを呼び出したいのですが、可能ですか?

  2. 最初のものが可能であれば、アプレット変数に XML データや文字列などのサーブレット出力を格納できますか?

  3. 2番目のものが可能であれば、JavaScriptまたはJ Queryを使用してその変数値を取得できますか?

できれば簡単な例を教えてください。

前もって感謝します。

4

3 に答える 3

1

1つ:はい、http呼び出しを行うアプレットからサーブレットを呼び出すことができます

ステップ 1 : サーブレットに http 呼び出しを行う

ステップ 2: サーブレットが XML 応答を返すようにする

ステップ 3: xml 応答を解析する

このプログラムを使用して、サーブレットを呼び出すことができます

package com.hussain;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URI;
import java.util.ArrayList;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;


public class callServlet {

    public static void main(String[] args) 
    {
        String servletResponse = callServlet.sendRequest("http://gdata.youtube.com/feeds/base/videos?max-results=10&start-//index=1&alt=json&orderby=published&author=astrobixweb");
        callServlet.parseFromXMLResponse(servletResponse);
    }
    public static String sendRequest(String url) {
        String result = "";
        try {
            HttpClient client = new DefaultHttpClient();
            HttpParams httpParameters = client.getParams();
            HttpConnectionParams.setConnectionTimeout(httpParameters, 5000);
            HttpConnectionParams.setSoTimeout(httpParameters, 5000);
            HttpConnectionParams.setTcpNoDelay(httpParameters, true);
            HttpGet request = new HttpGet();
            request.setURI(new URI(url));
            HttpResponse response = client.execute(request);
            InputStream ips = response.getEntity().getContent();
            BufferedReader buf = new BufferedReader(new InputStreamReader(ips,"UTF-8"));
            StringBuilder sb = new StringBuilder();
            String s;
            while (true) {
                s = buf.readLine();
                if (s == null || s.length() == 0)
                    break;
                sb.append(s);
            }
            buf.close();
            ips.close();
            result = sb.toString();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }
    public static void parseFromXMLResponse(String respo) 
    {
        // parse your XML response here
    }   
}
于 2013-10-11T07:24:28.457 に答える
1
  1. はい、できます。サーブレットは、 URLConnectionクラスを使用して取得できる URL を公開します。
  2. URL 接続の使用方法については、こちらを参照してください。
  3. これも実行できます。アプレットを作成してアプレット フィールドを取得し、ここでメソッドを呼び出す方法を確認してください。

しかし、これらはすべて非常に複雑に聞こえます。達成しようとしていることを教えてください。もっと簡単な方法があるかもしれません。

于 2013-10-11T07:24:36.333 に答える