簡體   English   中英

使用Jsp的Android應用程序數據庫與Web應用程序的連接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM