簡體   English   中英

使用JSP與MySql進行Android連接

[英]Android connectivity with MySql using jsp

我正在用JSP開發一個Web應用程序。 對於同一項目,我正在開發一個Android應用程序。 該Web應用程序使用Apache Tomcat和MySQL。 現在,我想制作與相同的MySQL數據庫連接的Android應用程序的注冊表單和登錄表單。 但是如何?

我確實找到了很多教程,但是都使用PHP腳本。 我正在使用Eclipse進行網絡開發,並使用Android Studio進行android應用。

這將涉及至少4個步驟

  1. 創建一個將代表您的數據的POJO。

     public class LoginData implements Serializable{ public String loginName; public String loginPassword; //all other attributes that you need to send over HTTP } 
  2. 創建一個簡單的HTTP客戶端(使用Java API,Apache HTTP客戶端或某些其他庫)。 我的例子是使用Apache

    //您只需要1個客戶端,因此使其靜態

     public static DefaultHttpClient getHttpClient(int timeout) { DefaultHttpClient client = null; SchemeRegistry Current_Scheme = new SchemeRegistry(); Current_Scheme.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80)); HttpParams Current_Params = new BasicHttpParams(); //set initial params HttpConnectionParams.setConnectionTimeout(Current_Params, timeout); HttpConnectionParams.setSoTimeout(Current_Params, timeout); ThreadSafeClientConnManager Current_Manager = new ThreadSafeClientConnManager(Current_Params, Current_Scheme); client = new DefaultHttpClient(Current_Manager, Current_Params); return client; } 
  3. 為了發送您的POJO,您應該首先對其進行序列化(第一個參數是Object,以便它可以接受任何類型,而不僅僅是LoginData)//以這種方式將數據格式化為application / x-www-form(BTW ,則網絡應用默認會使用此設置)

     HttpEntity serializePOJO(Object o,String encoding) List<NameValuePair> postParams = new ArrayList<NameValuePair>(); Map<String, Object> maps=objectMapper.convertValue(o, Map.class); Set<String> keys=maps.keySet(); Iterator<String> itr=keys.iterator(); while(itr.hasNext()){ String key=itr.next(); Object value=maps.get(key); if(value!=null){ postParams.add(new BasicNameValuePair(key, value.toString())); } } UrlEncodedFormEntity data=null; try { data = new UrlEncodedFormEntity(postParams,encoding);//egUTF-8 } catch (UnsupportedEncodingException e) { throw e; } return data; 

    }

  4. 發出HTTP請求

     public void checkLogin(LoginData data)throws Exception { String url = "localhost:8080/myApp/login"; HttpPost request=null; try{ request=new HttpPost(url); request.setEntity(serializePOJO(data)); HttpResponse response=getHttpClient(10000).execute(hg); if(response.getStatusLine().getStatusCode()!=200){ //handle exception } }finally{ if(request!=null){ request.releaseConnection(); } } } 

您可以將objectMapper初始化為

    objectMapper=new ObjectMapper();
    objectMapper.configure(Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);

您的servlet應該連接到數據庫並執行所有處理,而不是JSP頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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