您的位置:首页 > 数据库

Android手机客户端通过JSP实现与Tomcat服务器端通信(Msql数据库,Json作为载体)--服务端代码

2012-10-16 20:45 961 查看
服务器端主要代码:

1.首先构建一个Person类,用来保存用户信息

public class Person
private String name;
private String address;
private Integer age;
public Person() {
super();
}

public Person(String name, String address, Integer age) {
super();
this.name = name;
this.address = address;
this.age = age;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getAddress() {
return address;
}

public void setAddress(String address) {
this.address = address;
}

public Integer getAge() {
return age;
}

public void setAge(Integer age) {
this.age = age;
}

}


2.服务器端的service类

import java.io.PrintWriter;
import java.sql.*;
import java.util.*;
public class JsonService {
public static List<Person> getListPerson(){

String a,b,allString = "";
int c = 0;
List<Person> mLists = new ArrayList<Person>();
//		List<Person> mLists = new ArrayList<Person>();
//		mLists.add(new Person("临风", "北京", 20));
System.out.println(mLists);
try {
Class.forName("com.mysql.jdbc.Driver");//链接数据库
Connection conn = DriverManager.getConnection(
"jdbc:mysql://127.0.0.1:3306/json", "root" , "123456");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from people");//遍历数据库

Person p = null;

while(rs.next())
{

System.out.println(rs.getString(1) + "\t"
+ rs.getString(2) + "\t"
+ rs.getInt(3));
a = rs.getString(1);
b = rs.getString(2);
c = rs.getInt(3);

mLists.add(new Person(a, b, c));//添加到List中
}
System.out.println(mLists);

}catch(Exception e){
System.out.println(e);
e.printStackTrace();
return mLists;
}
//		finally{
//			return mLists;
//		}
System.out.println(mLists);
return mLists;

}
//测试用主函数
public static void main(String[] args) throws Exception
{
String str[] = null;

JsonService con = new JsonService();
List<Person> temp = con.getListPerson();

//		System.out.println(temp.);

//		str = temp.split(" ");
//		for(int i = 0 ; i < str.length ; i++){
//			System.out.println(str[i]);
//		}
//		System.out.println(str.length);
}

}


3.服务器端servlet类,接受android端的请求,并且将List中的Person数据转换为Json的格式,实现Json的数据传输

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jiangqq.bean.Person;
import com.jiangqq.csdn.JsonService;

public class JsonServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");

try{
PrintWriter out = response.getWriter();
List<Person> persons = JsonService.getListPerson();//返回JsonService的数据

StringBuffer sb = new StringBuffer();//数据缓存
sb.append('[');

for (Person person : persons) {//person.getName(),person.getAddress()获得姓名,地址,一些符号转换为char
//锁定输出=> {"name":"姓名","address":"地址","age":年龄},
sb.append('{').append("\"name\":").append("\""+person.getName()+"\"").append(",");
sb.append("\"address\":").append("\""+person.getAddress()+"\"").append(",");
sb.append("\"age\":").append(person.getAge());
sb.append('}').append(",");
}
sb.deleteCharAt(sb.length() - 1);
sb.append(']');
out.write(new String(sb));
out.flush();
out.close();//关闭
}catch(Exception e){
System.out.println(e);
e.printStackTrace();
}
}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}

}


环境搭建:

1.在Tomcat 7.0\webapps\JsonWeb\WEB-INF\lib 目录中加入了mysql-connector-java-5.0.8-bin.jar以及servlet-api.jar

2.然后在主目Tomcat 7.0\webapps\JsonWeb录的index.jsp中加入引用包的代码

<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>


结果测试:在浏览器输入http://localhost:8080/JsonWeb/JsonServlet,返回格式化好的json数据
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐