Java Android应用程序数据库与使用Jsp的web应用程序的连接
我正在用JSP开发一个web应用程序。对于同一个项目,我正在开发一个Android应用程序。该web应用程序使用ApacheTomcat和MySQL。现在我想通过从MySQL数据库检索数据从Android应用程序登录。但是怎么做呢Java Android应用程序数据库与使用Jsp的web应用程序的连接,java,android,mysql,jsp,Java,Android,Mysql,Jsp,我正在用JSP开发一个web应用程序。对于同一个项目,我正在开发一个Android应用程序。该web应用程序使用ApacheTomcat和MySQL。现在我想通过从MySQL数据库检索数据从Android应用程序登录。但是怎么做呢 我确实找到了很多教程,但都使用PHP脚本。我对这两个应用程序都使用Eclipse。客户端(您的Android应用程序)和服务器(服务器)之间发生的事情是松散耦合的,这意味着它们除了与之通信的协议(对于web服务来说是HTTP)外,没有任何关联 通常,客户端(应用程序或
我确实找到了很多教程,但都使用PHP脚本。我对这两个应用程序都使用Eclipse。客户端(您的Android应用程序)和服务器(服务器)之间发生的事情是松散耦合的,这意味着它们除了与之通信的协议(对于web服务来说是HTTP)外,没有任何关联 通常,客户端(应用程序或web浏览器)通过POST或GET方法发出HTTP请求,发送参数(例如登录名、密码)。服务器获取这些参数并根据需要进行处理 这听起来很明显,但是你说所有的教程都使用php脚本,所以你看起来很困惑:你在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
}
}
public void postData(){
//创建一个新的HttpClient和Post头
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(“http://www.yoursite.com/script.php");
试一试{
//添加您的数据
List nameValuePairs=新的ArrayList(2);
添加(新的BasicNameValuePair(“id”,“12345”);
添加(新的BasicNameValuePair(“stringdata”,“AndDev很酷!”);
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
//执行HTTP Post请求
HttpResponse response=httpclient.execute(httppost);
}捕获(客户端协议例外e){
//TODO自动生成的捕捉块
}捕获(IOE异常){
//TODO自动生成的捕捉块
}
}
对于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;
}
在哪里
现在是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(); }
您正在使用JDBC吗?我认为大多数与数据库相关的项目都在Java中使用它们。这有一个教程:你想在Android上使用DB,还是在jsp中使用DB?是的,我正在使用JDBC,我已经用mySql在jsp上创建了整个DB,我不想只在Android应用程序中使用该DB。我不明白你的问题是什么。对我来说,您似乎有两个选择:通过JDBC()连接到mysql数据库,或者在JSP中创建接口并从android调用该接口。你在试别的吗?
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(); }