- 浏览: 22178 次
- 性别:
- 来自: 北京
最新评论
--服务端代码
服务器端主要代码:
1.首先构建一个Person类,用来保存用户信息
[java] view plaincopy
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类
[java] view plaincopy
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的数据传输
[java] view plaincopy
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中加入引用包的代码
[java] view plaincopy
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
结果测试:在浏览器输入http://localhost:8080/JsonWeb/JsonServlet,返回格式化好的json数据
--客户端代码
1.客户端文件,JsonParse,Json文件解析
[java] view plaincopy
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONObject;
import com.jiangqq.bean.Person;
public class JsonParse {
/**
* 解析Json数据
*
* @param urlPath
* @return mlists
* @throws Exception
*/
public static List<Person> getListPerson(String urlPath) throws Exception {
List<Person> mlists = new ArrayList<Person>();
byte[] data = readParse(urlPath);
JSONArray array = new JSONArray(new String(data));
for (int i = 0; i < array.length(); i++) {
JSONObject item = array.getJSONObject(i);
String name = item.getString("name");
String address = item.getString("address");
int age = item.getInt("age");
mlists.add(new Person(name, address, age));
}
return mlists;
}
/**
* 从指定的url中获取字节数组
*
* @param urlPath
* @return 字节数组
* @throws Exception
*/
public static byte[] readParse(String urlPath) throws Exception {
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] data = new byte[1024];
int len = 0;
URL url = new URL(urlPath);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
InputStream inStream = conn.getInputStream();
while ((len = inStream.read(data)) != -1) {
outStream.write(data, 0, len);
}
inStream.close();
return outStream.toByteArray();
}
}
2.客户端主要类,MainActivity,发送请求
[java] view plaincopy
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import com.jiangqq.bean.Person;
import com.jiangqq.util.JsonParse;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
public class MainActivity extends Activity {
private Button mButton;
private ListView mListView;
private static final String urlPath = "http://192.168.1.100:8080/JsonWeb/JsonServlet";
private static final String TAG = "MainActivity";
private List<Person> persons;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mButton = (Button) findViewById(R.id.button1);
mListView = (ListView) findViewById(R.id.listView1);
mButton.setOnClickListener(new MyOnClickListener());
}
private class MyOnClickListener implements OnClickListener {
@Override
public void onClick(View v) {
try {
// 得到Json解析成功之后数据
persons = JsonParse.getListPerson(urlPath);
List<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();
for (int i = 0; i < persons.size(); i++) {
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("name", persons.get(i).getName());
map.put("address", persons.get(i).getAddress());
map.put("age", persons.get(i).getAge());
data.add(map);
}
SimpleAdapter _Adapter = new SimpleAdapter(MainActivity.this,
data, R.layout.listview_item, new String[] { "name",
"address", "age" }, new int[] { R.id.textView1,
R.id.textView2, R.id.textView3 });
mListView.setAdapter(_Adapter);
} catch (Exception e) {
Toast.makeText(MainActivity.this, "解析失败", 2000);//在手机上显示提示Toast,2秒
Log.i(TAG, e.toString());//DDMS中显示提示
}
}
}
}
3.同上一篇的,Person构造的数据类
[java] view plaincopy
package com.jiangqq.bean;
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;
}
@Override
public String toString() {
return "Person [name=" + name + ", address=" + address + ", age=" + age
+ "]";
}
}
4.AndroidManifest.xml别忘记添加
[java] view plaincopy
<uses-permission android:name="android.permission.INTERNET" />
[java] view plaincopy
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.jiangqq.csdn"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
服务器端主要代码:
1.首先构建一个Person类,用来保存用户信息
[java] view plaincopy
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类
[java] view plaincopy
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的数据传输
[java] view plaincopy
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中加入引用包的代码
[java] view plaincopy
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
结果测试:在浏览器输入http://localhost:8080/JsonWeb/JsonServlet,返回格式化好的json数据
--客户端代码
1.客户端文件,JsonParse,Json文件解析
[java] view plaincopy
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONObject;
import com.jiangqq.bean.Person;
public class JsonParse {
/**
* 解析Json数据
*
* @param urlPath
* @return mlists
* @throws Exception
*/
public static List<Person> getListPerson(String urlPath) throws Exception {
List<Person> mlists = new ArrayList<Person>();
byte[] data = readParse(urlPath);
JSONArray array = new JSONArray(new String(data));
for (int i = 0; i < array.length(); i++) {
JSONObject item = array.getJSONObject(i);
String name = item.getString("name");
String address = item.getString("address");
int age = item.getInt("age");
mlists.add(new Person(name, address, age));
}
return mlists;
}
/**
* 从指定的url中获取字节数组
*
* @param urlPath
* @return 字节数组
* @throws Exception
*/
public static byte[] readParse(String urlPath) throws Exception {
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] data = new byte[1024];
int len = 0;
URL url = new URL(urlPath);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
InputStream inStream = conn.getInputStream();
while ((len = inStream.read(data)) != -1) {
outStream.write(data, 0, len);
}
inStream.close();
return outStream.toByteArray();
}
}
2.客户端主要类,MainActivity,发送请求
[java] view plaincopy
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import com.jiangqq.bean.Person;
import com.jiangqq.util.JsonParse;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
public class MainActivity extends Activity {
private Button mButton;
private ListView mListView;
private static final String urlPath = "http://192.168.1.100:8080/JsonWeb/JsonServlet";
private static final String TAG = "MainActivity";
private List<Person> persons;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mButton = (Button) findViewById(R.id.button1);
mListView = (ListView) findViewById(R.id.listView1);
mButton.setOnClickListener(new MyOnClickListener());
}
private class MyOnClickListener implements OnClickListener {
@Override
public void onClick(View v) {
try {
// 得到Json解析成功之后数据
persons = JsonParse.getListPerson(urlPath);
List<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();
for (int i = 0; i < persons.size(); i++) {
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("name", persons.get(i).getName());
map.put("address", persons.get(i).getAddress());
map.put("age", persons.get(i).getAge());
data.add(map);
}
SimpleAdapter _Adapter = new SimpleAdapter(MainActivity.this,
data, R.layout.listview_item, new String[] { "name",
"address", "age" }, new int[] { R.id.textView1,
R.id.textView2, R.id.textView3 });
mListView.setAdapter(_Adapter);
} catch (Exception e) {
Toast.makeText(MainActivity.this, "解析失败", 2000);//在手机上显示提示Toast,2秒
Log.i(TAG, e.toString());//DDMS中显示提示
}
}
}
}
3.同上一篇的,Person构造的数据类
[java] view plaincopy
package com.jiangqq.bean;
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;
}
@Override
public String toString() {
return "Person [name=" + name + ", address=" + address + ", age=" + age
+ "]";
}
}
4.AndroidManifest.xml别忘记添加
[java] view plaincopy
<uses-permission android:name="android.permission.INTERNET" />
[java] view plaincopy
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.jiangqq.csdn"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
发表评论
-
android xml界面布局常用属性概括
2014-01-23 19:54 1812布局: 在 android 中我们常用的布局方式有这么 ... -
HttpClient4.0
2014-01-18 10:20 493HttpClient程序包是一个实现了 HTTP 协议的客户端 ... -
afinal logoAndroid的快速开发框架 afinal
2014-01-13 08:49 1359Afinal简介 Afinal 是一个android的sqli ... -
Android使用Fragment嵌套Fragment的方式实现界面滑动
2014-01-11 14:23 2322// 主Activity public class HomeA ... -
Google的GSON框架解析JSON数据
2014-01-08 09:18 1034什么是JSON: JSON即JavaScript Object ... -
关于安卓应用账号退出
2014-01-04 16:21 369首先,我们将管理Activity的功能通过一个扩展的Appli ... -
安卓学习的起源
2013-12-28 12:03 433首先我先自我简单介绍下,我是一名计算机系本科专业的毕业生,目前 ...
相关推荐
这里用安卓连接Tomcat用JSP做服务器, 有如下功能:用户登录、图片上传、数据传输(JSON) 里面包含了xUtils用于安卓端图片上传 json-taglib-0.4.1 commons-dbutils-1.7jar jspsmartupload
基于Android开发的APP服务器...本文系统地介绍了基于Android平台的APP服务器端设计,讨论了服务器端的需求分析和设计、服务器交互原理和实现方法、Java编程语言、MYSQL数据库、Apache Tomcat和Struts2框架等关键技术。
web项目jsp后台_servlet入门练习demo+可返回json+说明文档+数据库。 === 可以用来做android服务端测试,也可以作为java开发入门练习。 === demo_myweb:项目目录 lxb_test.sql:数据库文件 ====== 数据库版本 mysql...
其中Myecplise作为开发工具,采用Mysql作为数据库服务器,Tomcat作为网络服务器。 (1)权限管理:对权限信息进行添加、删除、修改和查看 (2)用户管理:对用户信息进行添加、删除、修改和查看 (3)项目管理:对项目...
使用IDEA作为开发工具,并将网页部署在tomcat上运行。 mysql数据库用户名:root mysql数据库密码:root mysql数据库中使用的数据库名为:hotel 以上选项可在db(dao层)初始化时修改 初始化数据库请执行createdb...
系统开发环境: Windows + Myclipse(服务器端) + Eclipse(手机客户端) + mysql数据库 服务器也可以用Eclipse或者idea等工具,客户端也可以采用android studio工具! 系统客户端和服务器端架构技术: 界面层,业务...
学生管理系统 测试的时候要装有tomcat7.0 要是本机运行 先运行程序然后在 ie浏览器中输入...具体数据库的设计看我的工程 jsp+mysql+java实现 能使用json传输数据到客户端 要客户端的代码的找我
jdk8+tomcat8+mysql+eclipse+maven 项目技术(必填) java servlet+mysql+jquery ajax http://localhost:8080/lvyou/admin/login.html admin admin http://localhost:8080/lvyou/qianduan/login.html zuidaima 111111...
java,Tomcat,mysql,jsp常用jar包, json,jsp,servlet,jslt,standard,jquery,mysql
2)后台使用了javaweb,主要是jsp+mvc+servlet分层思想实现,每一个功能都是通过javabean获取前台页面的数据,传递给servlet,然后进一步通过service层与dao数据库层的交互进行功能数据的处理,处理结果通过bean返回...
服务器:Tomcat 9.0 开发工具:idea 采用技术:servlet 前后端数据的传输采用json方式 数据源采用定义的文件json格式获取 讲所有格式编码转化为UTF-8 > 线上访问地址:http://localhost:8080/weather/ json数据...
- AJAX、JSON、XML 5. 框架和工具: - MyBatis - Hibernate - Maven、Gradle - Git、SVN - IntelliJ IDEA、Eclipse 6. 微服务: - RESTful API - Spring Cloud Netflix - Docker、Kubernetes 7. ...
5.新技术:html,css,javascript,jquery,tomcat,servlet,jsp,json,ajax 6.开发环境: (1).jdk1.8的安装,配置,测试 (2).mysql5.5的安装,配置,测试 a.把安装压缩包下载复制到除c盘之外的其他盘中,比如d:\,路径中...
使用目前流行的中小型数据库MySQL为数据平台,采用Apache Tomcat服务器搭建运行环境,使用MyEclipse集成环境作为系统开发工具,后台使用SpringMVC框架实现前台的请求处理,使用Hibernate连接数据库进行数据操作,...
服务端环境为Tomcat服务器,Mysql数据库,Web应用主要通过Servlet技术,JSON完成业务处理层,对象模型曾层,数据访问层: 1.业务处理层:处理由移动端发送过来的各种请求。 2.对象模型层:主要设计业务逻辑所需要的...
停车费收费管理,按照临时车或包月车自动计算停车费,系统参数设置,修改用户密码及安全退出等功能,该系统采用Jsp技术,使用SSM框架,Mysql数据库,ajax技术及人工智能等相关技术实现。 项目开发技术:java,jsp,...
运行环境:myeclipse+mysql+Tomcat 使用技术: 由html、css、jsp、JavaScript、jQuery、servlet、Ajax、JSON、JDBC、JSTL、EL等技术实现。 页面的展示:HTML、CSS、JSP 页面的效果:JavaScript、jquery...
java电商网站源码带前后台 注意:不带技术支持,有帮助文件,虚拟商品,发货不退,看好再拍。 开发语言 : JAVA 数据库 : MySQL 开发工具 : MyEclipse 源码类型 : WebForm ...与客户端交互:Servlet、Ajax
使用JDBC链接MySQL数据库,实现登录注册功能,以及对信息增删改查。...项目技术:在Java开发环境下,Eclipse编写和MVC框架搭建,前端使用JSP、Layui和Json对象实现,通过JDBC链接数据库,运行在Tomcat服务器上。
本系统是运用了jsp和Ajax,另外json,数据库用的mysql,还用到了自自定义标签库服务器用的tomcat。文件夹中包含了js文件,sql脚本,以及后台处理代码。