[英]Android application database connectivity with web app using Jsp
我正在用JSP開發一個Web應用程序。 對於同一項目,我正在開發一個Android應用程序。 該Web應用程序使用Apache Tomcat和MySQL。 現在,我想通過從MySQL數據庫檢索數據來從Android應用程序登錄。 但是如何?
我確實找到了很多教程,但是都使用PHP腳本。 我將Eclipse用於這兩個應用程序。
客戶端 (您的Android應用)和服務器之間發生的事情是松散耦合的,這意味着它們之間沒有任何關系,除了它們與之通信的協議(對於Web服務而言,協議是HTTP)。
通常,客戶端(應用程序或Web瀏覽器)會發出HTTP請求,以POST或GET方法發送參數(例如登錄名,密碼)。 服務器采用這些參數,並根據需要對其進行處理。
這聽起來似乎很明顯,但是您說所有教程都使用php script ,所以您似乎很困惑:您在Android上遇到問題了嗎? 還是您的服務器問題?
不論服務器技術(asp,cgi,jsp,php ...)和數據庫(MySql,Oracle ...)如何,Android應用程序中所需的代碼都是完全相同的,因為HTTP協議是標准的。
這是我從此處復制的一個示例,該示例使用兩個POST參數發出了一個簡單的HTTP請求。
public void postData() {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php");
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("id", "12345"));
nameValuePairs.add(new BasicNameValuePair("stringdata", "AndDev is Cool!"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
對於android試試這個。
private static HttpClient getHttpClient() {
if (mHttpClient == null) {
mHttpClient = new DefaultHttpClient();
final HttpParams params = mHttpClient.getParams();
HttpConnectionParams.setConnectionTimeout(params, HTTP_TIMEOUT);
HttpConnectionParams.setSoTimeout(params, HTTP_TIMEOUT);
ConnManagerParams.setTimeout(params, HTTP_TIMEOUT);
}
return mHttpClient;
}
接着
public static String sendFirst(String requestString) throws Exception {
BufferedReader in = null;
try {
HttpClient client = getHttpClient();
HttpPost request = new HttpPost(universal_URL_MENU+"?request_menu="+start_menu);
HttpResponse response = client.execute(request);
System.out.println("response in class"+response);
in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
StringBuffer sb = new StringBuffer("");
String line = "";
String NL = System.getProperty("line.separator");
while ((line = in.readLine()) != null) {
sb.append(line + NL);
}
in.close();
result = sb.toString();
// }
}catch(Exception e){
e.printStackTrace();
System.out.println("catch");
}
finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return result;
}
哪里
public static String universal_URL_MENU = "http://192.***.1.@:9999/my_Project/ReqFromTabFor.do";
現在適用於Jsp或Servlet
try{
PrintWriter out=res.getWriter();
String subcategory=req.getParameter("request_menu");
System.out.println("Receive : "+subcategory);
JSONObject jobj=UserDelegate.reqFromTabForMenuBySCatg(subcategory);
}
if(jobj!=null){
out.println(jobj);
}else{
out.print("Sorry Not Available");
}
}catch(Exception e){ e.printStackTrace(); }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.