android客户端通过JSP访问数据库
1.android客户端代码,这里只需把EditText的用户输入的内容获取到,再传入到Login方法就行。这里是做用户名和密码验证。
package com.client.impl;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import android.util.Log;
public class HttpClientImpl {
public static String Login(String loginName,String passWord){
String res = "";
try{ //通过请求直接访问jsp,服务器ip:10.0.2.2:8080或是自己服务器的ip地址,两个都行。
String httpUrl = "http://10.0.2.2:8080/StudentCard/androidJsp/login.jsp";
HttpPost request = new HttpPost(httpUrl);
request.addHeader("Content-Type", "application/json; charset=utf-8");
HttpClient httpClient = new DefaultHttpClient();
String loginParams=loginName+","+passWord;//可以是字符串,也可以是json对象
HttpEntity bodyEntity =new StringEntity(loginParams, "UTF8");
request.setEntity(bodyEntity);
HttpResponse response;
response = httpClient.execute(request);
if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
//从响应中获取消息实体
String str = EntityUtils.toString(response.getEntity());
res = str;
}
}catch (Exception e) {
System.out.println("http:" + e.getMessage());
}
return res;
}
}
2.在login.jsp中处理请求:
<%@ page language="java" contentType="text/xml; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page language="java" import="java.util.*"%>
<%@ page language="java" import="java.lang.*"%>
<jsp:useBean id="basicDao"
class="com.xwd.studentCard.dao.BasicDao_Android" scope="page"></jsp:useBean>
<%
//验证一下访问过来没有
System.out.println("android端已经访问进来 ");
byte[] bytes = new byte[1024];
request.getInputStream().read(bytes);
String params = new String(bytes, "utf-8");
//因为我传入的是一个字符串,直接把它变成一个数组
String[] strArr = params.split(",");
//调用DAO的方法进行处理,通过DAO的方法访问数据库,并返回数据
String res = basicDao.login(strArr[0], strArr[1]);
//把数据写入流响应请求
response.getWriter().write(res);
%>
3.再通过DAO访问数据库,我是用JDBC实现的,这里代码就省略了。