繁体   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