<!-- 允许客户端联网 -->
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
package com.example.coffeeclient;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONObject;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends Activity {
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.listView = new ListView(this);
// 调试地址 10.0.2.2
String url = "http://10.0.2.2:8080/coffeeServer/getCoffeeList";
ArrayAdapter<String> aa = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, getData(url));
this.listView.setAdapter(aa);
setContentView(this.listView);
}
// 获得服务端数据(服务端通过PrintWriter输出JSON数组)
private List<String> getData(String url) {
List<String> list = new ArrayList<String>();
String result = "";
HttpURLConnection conn = null;
try {
URL _url = new URL(url);
// 打开连接
conn = (HttpURLConnection) _url.openConnection();
// 创建一个字节数组
byte[] data = new byte[conn.getContentLength()];
// 读取输入流中的数据
conn.getInputStream().read(data);
result = new String(data);
JSONArray arr = new JSONArray(result);
for (int i = 0; i < arr.length(); i++) {
JSONObject o = arr.getJSONObject(i);
String s = " " + o.getString("cname") + " "
+ o.getDouble("cmoney") + " 元";
list.add(s);
}
} catch (Exception e) {
throw new RuntimeException(e);
}finally{
//关闭连接
conn.disconnect();
}
return list;
}
}
package com.web;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.struts2.interceptor.ServletResponseAware;
import com.bll.TbGoodService;
import com.bll.TbGoodServiceImpl;
import com.entity.TCoffee;
import com.opensymphony.xwork2.ActionSupport;
public class TbGoodAction extends ActionSupport implements ServletResponseAware {
private TbGoodService tbGoodService = new TbGoodServiceImpl();
private HttpServletResponse response;
public String findAll() throws Exception{
//从业务层拿到数据
List<TCoffee> list = this.tbGoodService.findAll();
this.response.setContentType("text/html;charset=UTF-8");
//使用PrintWriter对象输出JSON数组
PrintWriter out = this.response.getWriter();
//创建JSON数组
JSONArray arr = new JSONArray();
for(TCoffee t : list){
//创建JSON对象
JSONObject g=new JSONObject();
//设置属性
g.put("cid", t.getCid());
g.put("cname", t.getCname());
g.put("cmoney", t.getCmoney());
//添加JSON对象到JSON数组
arr.add(g);
}
out.print(arr);
System.out.println(arr);
return null;
}
public void setServletResponse(HttpServletResponse response) {
// TODO Auto-generated method stub
this.response = response;
}
}