我不熟悉java和applet,所以请任何人告诉我以下我的追求的可能性。
我想从小程序调用 Servlet .. 这可能吗?
如果第一个是可能的,我们可以将 Servlet 输出(如 XML 数据或字符串)存储在 applet 变量中吗?
如果第二个是可能的,那么可以使用 JavaScript 或 J Query 获得该变量值吗?
如果可能的话,请给我一个简单的例子。
提前致谢。
我不熟悉java和applet,所以请任何人告诉我以下我的追求的可能性。
我想从小程序调用 Servlet .. 这可能吗?
如果第一个是可能的,我们可以将 Servlet 输出(如 XML 数据或字符串)存储在 applet 变量中吗?
如果第二个是可能的,那么可以使用 JavaScript 或 J Query 获得该变量值吗?
如果可能的话,请给我一个简单的例子。
提前致谢。
一:是的,您可以从applet调用servlet进行http调用
第 1 步:对您的 servlet 进行 http 调用
第 2 步:让您的 servlet 返回 XML 响应
第 3 步:解析 xml 响应
使用这个程序,您可以调用您的 servlet
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
}
}
但所有这些听起来都非常复杂。你为什么不告诉我们你想要达到的目标,也许有更简单的方法来做事。
顺着你的问题前进,
您可以从您的小程序调用 servlet:
url
将命中您的 servlet。java.net.URLConnection
对象来保持与您的小程序的连接URLConnection con = urlToServlet.openConnection()
con.getInputStream()
和con.getOutputStream()
[注意:不要忘记关闭所有连接和流]
现在,以您想要的任何形式使用您从 InputStream 获得的数据。
它非常简单,请使用以下代码:
在 Applet 中:
public String getYourString(){ return responseFromServlet;}
在 Javascript 中:
var jsResp = document.name_of_your_applet.getYourString();
希望,你有你的答案!